
我正在尝试保护我的authorized_keys
文件以防止其被修改。我运行这个:
[root@localhost]# chattr +i authorized_keys
chattr: Inappropriate ioctl for device while reading flags on authorized_keys
我认为这可能是由于文件系统造成的:
[root@localhost]# stat -f -c %T /home/user/
nfs
有办法用chattr修改它吗?
答案1
NFS 没有不可变文件的概念,这就是您收到错误的原因。我建议您删除每个人的写访问权限,这对于您的目的来说可能已经足够接近了。
$ > foo
$ chmod a-w foo
$ echo bar > foo
bash: foo: Permission denied
删除所有用户的写入位而不是使用不可变属性之间的主要区别:
- 不可变属性必须由 root 取消设置,而 chmod 可以由拥有该文件的用户更改;
- 不可变属性删除了在不删除不可变属性的情况下删除文件的能力,而删除写入位则不起作用(尽管您可以更改目录权限以禁止修改,如果这是可以接受的)。
如果在处理authorized_keys时,这些事情中的任何一个对您很重要,那么您的安全模型可能存在更根本的问题。
答案2
更正这个问题在 NFS 上不起作用。
但是,在导出此目录的服务器上尝试运行 chattr 命令。有一些问题
您可能需要启用 ACL:
$ mount -o remount,acl /
(要使该更改永久生效,请编辑 /etc/fstab)
SELinux 可能会妨碍您:
为了确定:
$ ls -Z