NFS上的`chattr + i`错误


8

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

Answers:


8

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.