authselect
新しいプロフィールを作成しました。
sudo authselect create-profile login-hooks --symlink-meta --symlink-nsswitch --symlink-dconf --base-on=sssd
次に、次の行を追加します。/etc/authselect/custom/login-hooks/postlogin
session optional pam_exec.so log=/tmp/debug.log sh -c 'findmnt /var/home/$PAM_USER/host-man-files || mount --bind /usr/share/man /var/home/$PAM_USER/host-man-files'
その後、新しいプロファイルを有効にしました。
sudo authselect select -b custom/login-hooks with-silent-lastlog with-mdns4
そしてログファイルを作成しました
touch /tmp/debug.log
その後、ログアウトして再度ログインします。
には何もなく、/tmp/debug.log
関連はありませんが、journalctl -xb
バインドマウントはまだ作成されていません。
[greenrd@fedora greenrd]$ findmnt /var/home/greenrd/host-man-files
[greenrd@fedora greenrd]$ echo $?
1
ベストアンサー1
ログファイルを事前に作成してはいけませんでした! Linuxでは、/ tmpの下に作成したファイルを他のユーザーが書き込めないように規定していることがわかりました。ルートでも動作します。- ルートがファイル権限の観点から一般ユーザーができることをすべて行うことができると思ったので、これは直観に反しています!明らかにこの特別なケースではそうではありません!
この問題を解決した後、次のようになります。
rm /tmp/debug.log
より速く、より多くの情報を提供するテストを実行してみてくださいsshd
。
systemctl start sshd
私はより良いです:
[greenrd@fedora greenrd]$ ssh localhost
greenrd@localhost's password:
/bin/sh failed: exit code 2
Last login: Sun Jul 9 11:46:55 2023 from ::1
[greenrd@fedora ~]$ cat /tmp/debug.log
*** Sun Jul 9 11:48:25 2023
/var/home/$PAM_USER/host-man-files: -c: line 1: unexpected EOF while looking for matching `''
*** Sun Jul 9 11:48:33 2023
/var/home/$PAM_USER/host-man-files: -c: line 1: unexpected EOF while looking for matching `''
エラーメッセージがわからないため、設定ファイルにコマンドライン全体をインライン化するのではなく、コマンドラインを含むスクリプトファイルを作成して呼び出すことにしました。
しかし、それも動作しませんjournalctl -xb
。
Jul 09 12:06:03 fedora sshd[60361]: pam_exec(sshd:session): execve(/var/home/greenrd/.local/bin/create-bind-mount,...) failed: Permission denied
このファイルはすべてのユーザーが実行できます。
[greenrd@fedora ~]$ ls -l /var/home/greenrd/.local/bin/create-bind-mount
-rwxr-xr-x. 1 greenrd greenrd 120 Jul 9 12:00 /var/home/greenrd/.local/bin/create-bind-mount
もしそうなら、どこかのポリシーがpam_execでそのパスのファイルを実行するのが好きではないようです。
たぶんSELinuxですか?
[greenrd@fedora ~]$ sudo getenforce
Enforcing
さて、SELinuxを許可モードにしてもう一度やり直してみましょう。
[greenrd@fedora ~]$ sudo setenforce 0
[greenrd@fedora ~]$
logout
Connection to localhost closed.
[greenrd@fedora greenrd]$ ssh localhost
greenrd@localhost's password:
Last login: Sun Jul 9 12:06:03 2023 from ::1
[greenrd@fedora ~]$ findmnt /var/home/greenrd/host-man-files
TARGET SOURCE FSTYPE OPTIONS
/var/home/greenrd/host-man-files /dev/xvda3[/root/ostree/deploy/default/deploy/b9990bf2421b057e99ca7df81d575c1ccedb6b4da571adba77142ded8ed5c778.0/usr/share/man] btrfs ro,relatime,seclabel,compress=zstd:1,ssd,discard=async,space_cache=v
ついに成功しました!