Ubuntu 20.04 で - 以前 (一般) GNOME でこの問題を経験したことがあります。 - KDEプラズマ(いいえ、Kubuntuではありません!)を使用すると、数時間ごとに奇妙なことが発生しますが、現在では説明や解決策はありません。
どういうわけか、ecryptfsインストールの暗号化されたホームフォルダがログインしたときに突然「消えました」。主に複数のプログラム$HOME
でファイルが見つからないと報告したり、ファイルが破損していると思ったり、ファイルを開くことができないと報告するなど、奇妙な症状が現れ始めたため、主に気づきました。
最初にこれが発生した場合は、通常、を実行して/usr/bin/ecryptfs-mount-private
パスワードを入力して操作を完了します。残念ながら、一部のKDEデスクトップ要素の機能はまだ復元されません。たとえば、その時点からインストールされたプログラムを検索できないため、実行されていないすべてのプログラムはログアウトしてから再度ログインするまで使用できなくなります。
/usr/bin/ecryptfs-mount-private
その後、これが発生し、通常は次のものを使用しようとします。
$ /usr/bin/ecryptfs-mount-private
Enter your login passphrase:
Inserted auth tok with sig [2123456789012312] into the user session keyring
mount: No such file or directory
下のスクリーンショットに示すように、このような状況ではログアウトすることさえも少し悪夢になることがあります。ポップアップするダイアログは、私がログアウトを選択したという事実に基づいています!
だから私の質問は次のとおりです(はい、複数形です...現在この問題をどのように診断するのかわからないからです)。
- 自動削除の原因となる可能性がある項目は何ですか
$HOME
? ...ログアウトするとセッションが消去され、突然ScreenまたはTmuxセッションも終了するなどの奇妙な動作が考えられます(とloginctl
一緒に使用しない限りenable-linger
)。 - そのような問題を解決するためのステップは何ですか? (これが起こった場合はデスクトップが奇妙に動作することに注意してください!)出力とログを見るためにripgrepを使ってみました
journalctl
が、どの用語を見つけるべきかわかりません... - これが既知のバグであると仮定すると、解決策は何ですか?
これにより、ログアウト時にTmux / Screenが終了することを思い出させます。これは一般的に考えていないことであり、SSHにログインした後(別々のログインセッションなど)、Tmux / Screenを起動したりセッション遅延を有効にしたりすることを避けることができる状況です。
私が見つけたjournalctl
奇妙に見え、「欠けている」ホームディレクトリに関連しているものの1つは次のとおりです。
Sep 01 23:39:11 machine smbd[220424]: pam_unix(samba:session): session closed for user johndoe
Sep 01 23:39:11 machine systemd[1]: home-johndoe.mount: Succeeded.
-- Subject: Unit succeeded
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit home-johndoe.mount has successfully entered the 'dead' state.
Sep 01 23:39:11 machine systemd[1977]: home-johndoe.mount: Succeeded.
-- Subject: Unit succeeded
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
...しかし、何かを示唆することがあります。原因Sambaデーモンが私の対話型ユーザーアカウントを表すようにすると、システムの他の部分から私がログアウトして自分のアカウントを削除すると仮定します$HOME
。その可能性はほとんどありません。そうではありませんか?
上記のパターンはpam_unix(samba:session)
私のユーザー名のセッションを閉じて$HOME
フォルダにアクセスできなくなります。これ決定的な証拠であり、現在まで唯一の証拠です。現在、セッション全体のビジネスがどのように機能するか、およびインストールデバイスが対話式にログインしている間にインストールホームフォルダを「収穫」できると「考える」理由を読んでいます。
編集#1:Sambaの構成が関連性がある可能性があるという意見があるので、ここに追加します。johndoe
ダンプで実際のユーザー名を変更しましたtestparm
。
# Global parameters
[global]
debug uid = Yes
dns proxy = No
guest account = johndoe
log file = /var/log/samba/log.%m
map to guest = Bad Password
max log size = 1000
obey pam restrictions = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
security = USER
server role = standalone server
server string = %h server (Samba, Ubuntu)
syslog = 7
syslog only = Yes
workgroup = NULL
idmap config * : backend = tdb
[sharename]
force create mode = 0660
force directory mode = 0770
guest ok = Yes
guest only = Yes
path = /data/sharedir
read only = No
私が言ったように、特別なことではありませんが、私の考えでは、グローバル設定を介してユーザーをゲストユーザーとして「デフォルト」に設定したため、ユーザーにログインセッションが表示されるようです。
samba:session
いくつかの項目(上記でコピーしたログ行など)を除いて、フラグ付きの項目はありません。
編集#2:私の/etc/pam.d/samba
外観は次のとおりです。
@include common-auth
@include common-account
@include common-session-noninteractive
debug
...それで、参照されたファイルを編集し、引用符で囲まれた各行に、またはを追加(スペースで区切った)してみました。結果 - 再起動後 - KDE にログインできなくなりました。ただ停止しました。だから私は他の端末の1つを使ってログインし、変更を元に戻しました(ありがとうございました)。pam_unix
pam_ecryptfs
root
etckeeper
編集#3: ...EDIT 4: 回避策が機能していないことがわかりました。KillExcludeUsers=root johndoe
一時的な回避策は、/etc/systemd/logind.conf
設定または「ローカル」を介してユーザーのセッション遅延を無効にすることですloginctl
。これにより、これはますます欠陥のように見えます。
ベストアンサー1
まあ、もちろんこれは愚かなことです。ほんの数時間前に賞金で200評判ポイントを「無駄に」したが、問題を解決したようだ。私よりも簡単なものとしないでください、ヒントを提供する人には賞金が授与されます。
pam_unix
まあ、ログが大きな手がかりだったことがわかりました。結局、これを実行して除去プロセスを安定して再現できました。
私がすることも説明されています。launchpad.net そのチケットからが、上記の質問にない関連部分をここに再現します。
私のものsmb.conf
今後問題を掘り下げてみると、結果によるとtestparm
次のようになります。
# Global parameters
[global]
debug uid = Yes
dns proxy = No
guest account = johndoe
log file = /var/log/samba/log.%m
map to guest = Bad Password
max log size = 1000
obey pam restrictions = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
security = USER
server role = standalone server
server string = %h server (Samba, Ubuntu)
syslog = 7
syslog only = Yes
workgroup = NULL
idmap config * : backend = tdb
[sharename]
force create mode = 0660
force directory mode = 0770
guest ok = Yes
guest only = Yes
path = /data/sharedir
read only = No
私は無差別な試行錯誤アプローチを選択しました。 Tmuxで障害レポート用のMWEを作成している間、複数のウィンドウが開いています。これが実際に私が実行しているものです:
while mountpoint /home/johndoe; do sudo service smbd restart; date; sleep 2s ; done
watch 'mount|grep ecryptfs'
sudo tail -F /var/log/auth.log|grep samba:session
...その後、別のTmuxウィンドウで編集/保存します/etc/samba/smb.conf
。
腕!
auth.log
ログエントリが表示され、(smbd[144802]: pam_unix(samba:session): session closed for user johndoe
)マウントポイントが消えます。
ついにこの迷惑な状況を再現する方法を見つけました。
その名前を考えると、私の最初の選択は実際にそのobey pam restrictions
設定です。だから に設定しましたno
(ただしデフォルト値はなので簡単に注釈処理できますno
)。
サービスを再起動してsmbd
ログアウトしてから再度ログインし、エラー状態を再現してみてください。
今回は再現できません。明らかにobey pam restrictions
、環境はすべてとビジネスにpam_unix
影響を与えます。samba:session
編集#1:内部に言及されたチケットより多くの情報が要求されます。特にpam-auth-update
無効にするように求められた後Unix認証環境。このように:
[*] Unix authentication
[ ] Register user sessions in the systemd control group hierarchy
[ ] Create home directory on login
[ ] eCryptfs Key/Mount Management
[ ] Inheritable Capabilities Management
問題は、2番目のsystemd関連の設定ではなく、4番目の設定であることがわかりました。eCryptfsキー/マウント管理。
教訓を得る
- 直接調査したい場合は、賞金を提供しないでください。