/var/git
を使用してauthorized_keys
でgit用に作成したユーザーアカウントに接続したいと思います。ただし、SELinuxは次のAVCメッセージでこれを防ぎます
SELinux is preventing sshd(sshd_t) "read" var_t
私はSELinux管理に不慣れですが、このメッセージがsshdが/var
の下で何も読み取ることを許可されていないことを示していることを理解しています。 /var/git
にアクセスできるようにラベルを変更するにはどうすればよいですか? (sshdを許容モードにしないで)
/var/git/.ssh/authorized_keys
にsshd_key_t
のラベルを付けてみましたが、効果がありません。前もって感謝します!
私はGitを使用していないので、間違っている可能性がありますが、問題が正しければ、/ var/gitがユーザーであることをシステムに通知せずに、完全に手動でユーザーを作成した可能性があります(つまり、/ etc/passwdを編集します)。ホームディレクトリ。通常、関連するディレクトリを/etc/selinux/targeted/contexts/files/file_contexts.homedirsに配置します。たとえば、同じ設定ですが、useraddで追加された/ Var/svnを使用しています。これは、自動的に追加されたそのファイルの抜粋です。
#
# Home Context for user unconfined_u
#
/var/svn/[^/]*/.+ system_u:object_r:user_home_t:s0
/var/svn/[^/]*/.Pulse(/.*)? system_u:object_r:gnome_home_t:s0
/var/svn/[^/]*/.gnome2(/.*)? system_u:object_r:gnome_home_t:s0
/var/svn/[^/]*/.*/plugins/nppdf\.so -- system_u:object_r:textrel_shlib_t:s0
/var/svn/[^/]*/.*/plugins/nppdf\.so.* -- system_u:object_r:textrel_shlib_t:s0
/var/svn/[^/]*/((www)|(web)|(public_html)|(public_git))(/.+)? system_u:object_r:httpd_user_content_t:s0
/var/svn/[^/]*/\.ssh(/.*)? system_u:object_r:ssh_home_t:s0
(続き)
これがセットアップされると、単純なrestorecon -Rv/var/gitでうまくいくはずです。
これは、.ssh
ディレクトリをssh_home_t
コンテキストで作成することによっても解決できます。
例えば.
context directory
home_root_t /customhome
user_home_dir_t /customhome/user
ssh_home_t /customhome/user/.ssh
ssh_home_t /customhome/user/.ssh/authorized_keys
RHELで、次を使用してユーザーを作成しました。
useradd gitlab --home /app/gitlab
デバッグして適切なコンテキストを理解するのに時間がかかりました。 audit.log
はあまり表示されませんでした。また、/etc/selinux/targeted/contexts/files/file_contexts.homedirs
を再確認しましたが、コンテキストが自動作成されませんでした。