NFS 上的 `chattr +i` 错误

mav*_*lan 10 linux nfs xattr

我正在尝试保护我的authorized_keys文件以防止它被修改。我运行这个:

[root@localhost]# chattr +i authorized_keys 
chattr: Inappropriate ioctl for device while reading flags on authorized_keys
Run Code Online (Sandbox Code Playgroud)

我认为这可能是由于文件系统:

[root@localhost]# stat -f -c %T /home/user/
nfs
Run Code Online (Sandbox Code Playgroud)

有没有办法用chattr修改它?

Chr*_*own 10

NFS 没有不可变文件的概念,这就是您收到错误的原因。我建议您只删除所有人的写访问权限,这对您的目的来说可能已经足够了。

$ > foo
$ chmod a-w foo
$ echo bar > foo
bash: foo: Permission denied
Run Code Online (Sandbox Code Playgroud)

删除所有用户的写入位而不是使用不可变属性的主要区别:

  • immutable 属性必须由 root 取消设置,而 chmod 可以由拥有文件的用户更改;
  • immutable 属性删除了在不删除 immutable 属性的情况下删除文件的能力,删除写位不会这样做(尽管您可以更改目录权限以禁止修改,如果这是可以接受的)。

如果在处理authorized_keys 时这些事情中的任何一个对您很重要,那么您的安全模型可能存在更根本的问题。