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


10

我已经在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::---

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


1
好吧,我解决了一个难题:“ cp -p”默认为“ cp --preserve = mode,ownership,timestamps”。使用“ cp --preserve = all backup_xi.sh backup_xi.sh.ORIG”可以工作并保留扩展属性位。
艾伦(Alan)

Answers:


10

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

$ getfattr -d Work
$ getfattr -n security.selinux Work
# file: Work
security.selinux="unconfined_u:object_r:user_home_t:s0"

5
谢谢。getfattr手册页非常令人误解:“ -d:转储与路径名关联的所有扩展属性的值。” 显然,“全部”并不意味着“全部”。哇。我发现带有模式“-”的选项“ -m”列出了“所有”属性。使用命令“ getfattr -m-backup_xi.sh”,我将“ security.selinux”视为唯一属性。
艾伦(Alan)

实际上,该手册页隐藏了:“模式的默认值为“ ^ user \\。”,其中包括用户名称空间中的所有属性。指定“-”表示所有属性。“ 很高兴知道。
阿什

1
列出所有扩展属性:getfattr -d -m ".*" <filename>
elig
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.