Selinux

mv --context(對於selinux,又名-Z)是否正確地將標籤遞歸地應用於目錄內容?

  • March 25, 2017

mv -Z應用預設的 selinux 上下文。它是否與 的所有其他呼叫不同mv,並單獨處理移動目錄中的所有文件?

是的。

$ mkdir a
$ touch a/b
$ ls -Z -d a a/b
unconfined_u:object_r:user_home_t:s0 a
unconfined_u:object_r:user_home_t:s0 a/b
$ strace -f mv -Z a ~/.local/share/Trash/files
...
open("/home/alan/.local/share/Trash/files/a/b", O_RDONLY|O_NOFOLLOW) = 3
...
fgetxattr(3, "security.selinux", "unconfined_u:object_r:user_home_t:s0", 255) = 37
fsetxattr(3, "security.selinux", "unconfined_u:object_r:data_home_t:s0", 37, 0) = 0
...
$ cd ~/.local/share/Trash/files
$ ls -Zd a a/b
unconfined_u:object_r:data_home_t:s0 a
unconfined_u:object_r:data_home_t:s0 a/b

這也引入了在單個文件系統中移動目錄將部分失敗的可能性。即由於更改標籤時磁碟空間不足。當重新標記作為第二步時,這種影響會得到緩解。初始移動操作仍由單個 atomicrename進行。這意味著標籤將不一致,但文件將以其他方式保持一致。一旦空間可用,修復標籤應該很簡單。

引用自:https://unix.stackexchange.com/questions/336999