为什么 getfattr 不显示设置了扩展属性位的文件的任何内容?

Ala*_*lan 10 files centos nagios attributes

我有一个在 CentOS 6.2 上运行的 Nagios XI 安装,并且想要修改备份脚本。我注意到为这个 shell 脚本设置了扩展属性位,所以我想确保在更改它时不会弄乱任何东西。我进行了试验,发现“cp -p”不保留此设置(请参阅有关此更新的评论)。我是 Linux 上扩展属性的新手,发现有一个命令 'getfattr' 应该显示扩展属性,但是它不显示此文件的任何内容。

cd /usr/local/nagiosxi/scripts
ll backup_xi.sh
-rwxr-x---.  1 nagios nagios   2757 Jul  3 10:03 backup_xi.sh*

# nothing is displayed by 'getfattr':
getfattr -d backup_xi.sh

# and nothing special seems to be present according to 'getfacl':
getfacl backup_xi.sh
# file: backup_xi.sh
# owner: nagios
# group: nagios
user::rwx
group::r-x
other::---
Run Code Online (Sandbox Code Playgroud)

最终,我的目标是修改文件,同时保留原始产品安装期间设置的任何属性。是否有设置扩展属性位的原因,即使根据 getfattr 显然没有任何属性?

Ign*_*ams 10

security.selinux扩展属性不被默认显示getfattr; 您必须明确要求它。

$ getfattr -d Work
$ getfattr -n security.selinux Work
# file: Work
security.selinux="unconfined_u:object_r:user_home_t:s0"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你。getfattr 手册页非常具有误导性:“-d:转储与路径名关联的所有扩展属性的值。” 显然,“全部”并不意味着“全部”。哇。我发现带有模式“-”的选项“-m”列出了“所有”属性。使用命令“getfattr -m - backup_xi.sh”,我看到“security.selinux”是唯一的属性。 (5认同)