直到最近,我遇到了一种情况,我在 AWS 中使用非 nfs 协议存储类型进行自动挂载,ie Fsx Lustre
我在自动挂载的主目录上发现了一个奇怪的问题,每当用户尝试使用其公钥设置无密钥访问时,Selinux只是在 Selinux 处于enforcing
模式时将其消除。
在稍后调查时,我发现 home_dir 上的上下文是undefined
,unlabeled
因此基于密钥的访问被简单地拒绝。
然而,我尝试恢复它,restorecon -R -v ~
但它不起作用,然后我意识到当 Selinux 处于enforcing
模式时它不会工作,所以,我使用了它chcon
,这对我有用。
然而,chcon
有效,但我看到 RedHat 文档中的注释是用 进行的更改,chcon command do not survive a file system relabel
但我无法完全理解它,尽管它说的chcon
是临时更改,但是,它再次在重新启动和注销登录后仍然存在。
问题:
drwx------. myuser mygrp unconfined_u:object_r:unlabeled_t:s0 .ssh
使固定:
以下是我使用的命令并解决了问题。
$ chcon -R unconfined_u:object_r:user_home_t:s0 /home/<user_name>/.ssh/
选择:
不过,下面会更加简洁chcon
。
$ semanage fcontext -a -t ssh_home_t /path/to/users/homedirectory/.ssh/
$ restorecon -v /path/to/users/homedirectory/.ssh/
任何解释都将受到高度赞赏。
答案1
递归尝试
$ semanage fcontext -a -t ssh_home_t "/path/to/users/homedirectory(/.*)?"
$ restorecon -Rv /path/to/users/homedirectory/