NFS 上的 `chattr +i` 错误

NFS 上的 `chattr +i` 错误

我正在尝试保护我的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

相关内容