对于我们的一台运行 CentOS 6.0 的 Linux 服务器,如果我执行 lsattr /home,我会得到如下信息(以 root 身份):
$lsattr /home
lsattr: Inappropriate ioctl for device While reading flags on /home/user
lsattr: Inappropriate ioctl for device While reading flags on /home/user
lsattr: Inappropriate ioctl for device While reading flags on /home/DIR
现在,我尝试使用 chattr 进行一些更改
$chattr -R -i /home
chattr: Inappropriate ioctl for device while reading flags on /home
坐骑回归:
$mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda3 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
我不知道该如何解决这个问题。有人能帮忙吗?
答案1
答案2
我意识到这是一个老话题,但看起来 /home 下的目录是自动挂载的 nfs 导出,而 nfs 不支持 chattr、lsattr 等。您必须在 nfs 服务器的文件系统上进行此项设置(如果可能)以使文件不可变。
答案3
我假设 /home 位于您的根卷下。您需要做的是更改根卷的 /etc/fstab 文件以添加“acl”选项。这将激活文件系统上的 ACL。
然后要激活 ACL,请重新挂载根卷(mount -o remount,acl /),或者重新启动系统(因为 acl 选项现在位于根卷的选项字段中)。