我想知道什么的输出lsattr
means.It打印这样奇怪如下,当我曾尝试:lsattr /usr
。
$ lsattr /usr
-----------------e- /usr/local
-----------------e- /usr/src
-----------------e- /usr/games
--------------I--e- /usr/include
--------------I--e- /usr/share
--------------I--e- /usr/lib
-----------------e- /usr/lib32
--------------I--e- /usr/bin
--------------I--e- /usr/sbin
Run Code Online (Sandbox Code Playgroud)
我已经阅读了chattr
和的手册页,lsattr
但仍然不知道。
Getfattr 转储选定文件的扩展属性列表。
然而,getfattr --dump filename
只有转储user.*
命名空间,而不是security.*
,system.*
和trusted.*
命名空间。通常,除非您手动将用户命名空间属性附加到文件,否则没有用户命名空间属性。
是的,我知道我可以通过使用getfattr -n security.selinux filename
. 在这种情况下,我知道扩展属性的具体标识。
我已经以 root 用户的身份尝试过这个。我假设具有完整功能的 root 用户能够访问此信息。但是你只能得到 user.* 命名空间转储。
问题是如何在不知道所有名称空间中所有键的名称的情况下轻松获得文件的所有扩展属性名称空间的完整转储?
我想将一个目录的属性(所有权、组、ACL、扩展属性等)复制到另一个目录,而不是目录内容本身。
这不起作用:
cp -v --attributes-only A B
cp: omitting directory `A'
Run Code Online (Sandbox Code Playgroud)
注意:它不一定是cp
.
复制 with 时cp
,不会保留扩展属性,即使使用显式
cp -a --preserve=all /source /dest
Run Code Online (Sandbox Code Playgroud)
或者
cp -a --preserve=xattr /source /dest
Run Code Online (Sandbox Code Playgroud)
同理rsync
,即
rsync -aq -A -X --delete /source /dest
Run Code Online (Sandbox Code Playgroud)
但是,在目标文件系统上,我可以手动创建扩展属性(使用chattr
)。这意味着目标文件系统支持 xattr。
为什么我不能xattr
用cp
或保存rsync
?
我正在尝试确定是否使用 ZFS 在 FreeBSD 中支持 xattrs,或者更确切地说,支持扩展到什么程度。我读过一些相互矛盾的信息。
zfs get xattr
将其列为on (default)
了/
,/usr
和/var
,但off (temporary)
对所有其他数据集,包括上面提到的那些孩子们。zfs set xattr=on zroot/usr/home
我收到消息
property 'xattr' not supported on FreeBSD: permission denied
.
zfs
手册页:
xattr
FreeBSD 目前不支持该属性。
setextattr
,getextattr
而且lsextattr
似乎工作得很好。rsync --fake-super
,并且可以使用lsextattr
和查看其数据getextattr
。目前,我的印象是 zfs 上的扩展属性在实践中起作用,但是xattr
控制它们使用的属性不像在其他 zfs 发行版中那样起作用。但在我相信大量备份数据可以rsync --fake-super …
我有一个关于扩展文件属性的小问题。假设我用扩展属性中的元数据标记我的文件(例如,考虑完整性 - 但这对我的问题无关紧要)。现在出现的问题:
我知道您可以通过执行chflags hidden foo.txt
和来设置或取消设置文件夹/文件的隐藏标志chflags nohidden foo.txt
。
但是无论如何都可以告诉文件夹/文件当前是否隐藏?
我不想只是确定文件夹/文件是否以点开头。
什么是关系之间的差异xattr
和chattr
?我想知道当我chattr
在 Linux 中设置属性时 Linux 内核和 inode 元数据中发生了什么。
我正在尝试保护我的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修改它?
我可以find
用来查找所有设置了扩展属性的文件吗?比方说,我想+i
在/foo
其子文件夹中找到所有具有, immutable 属性的文件。
我在man find
.
有没有其他方法可以找到所有具有属性的文件
我正在使用 Debian Wheezy