Answers:
请注意,在文件夹中a,移至b时c,文件夹权限a确定您可以做什么。
在这种情况下,上的权限.将是最重要的。
请注意,权限比简单更复杂rwx。您的music文件夹@的末尾.有一个,文件夹+的末尾有一个。
xattr -h以确定@符号的复杂权限。getfacl来确定ACL的+符号。man xattr可能是一个很好的起点。
ls -la@e。最有可能在这里,有一个deny deleteACL也阻止了重命名。
好像在该目录中某个位置的深处至少有一个文件没有正确的权限。
因此,我所做的是:
sudo chown -R valmar ./Music
sudo chmod -R 755 ./Music
现在可以了。
chmod 755删除了Music文件夹上的特殊“ @”权限?
chmod -a 'everyone deny delete' Music要这样做。埃尔卡皮坦的情况可能有所不同。
这里的问题可能与Music文件夹的访问控制列表(ACL)有关。ACL是通常由列出的常规POSIX的独立许可系统ls -l。主文件夹和其他目录中的某些其他目录也具有ACL。
要查看主目录中的ACL,请使用:
/bin/ls -le ~
您可能会看到类似0: group:everyone deny delete“音乐”目录的规则。如您所述,您可以使用解决问题sudo。如果您不想这样做(或不能这样做),则可以选择其他方法,因为您是文件的所有者。您可以根据音乐目录的ACL索引(在我上面给出的示例中为0)从音乐目录的ACL中删除有问题的条目:
/bin/chmod -a# 0 Music
或者,您可以剥离ACL中的所有条目:
/bin/chmod -N Music
现在,您可以移动目录(受常规POSIX权限的限制)。如果要在移动后放回ACL,可以使用:
/bin/chmod +a "group:everyone deny delete" Music_tmp
并/bin/ls -le再次使用以确认ACL是否符合您的要求。请参阅中的ACL示例以man chmod获取更多信息。特别地,此介绍很有帮助:
每个文件都有一个ACL,其中包含一个有序的条目列表。每个条目均指一个用户或组,并授予或拒绝一组权限。如果用户和组名称相同,则用户/组名称可以以“ user:”或“ group:”为前缀,以指定名称的类型。
我不认为该手册页解释了有关订购的规则,但是此页清楚地解释了ACL的订购规则。特别是,显式deny规则将在显式allow规则之前应用。因此,只要group:everyone deny delete条目到位,就不可能授予用户使用allow规则删除的权限。这是因为拒绝everyone包括您在内的组的权限,并且该规则将首先应用。
everyone deny deletemacOS默认主目录上的ACL条目是无法移动或删除目录的实际原因。(也请注意,操作系统可能随时重新创建它们。)
当一组程序正在我要删除的目录中运行时,我遇到了这个问题。为了移动目录,我必须首先杀死该目录中所有正在运行的程序。
在以下命令中,请谨慎选择程序名称。我使用了以下命令,以供参考:
ps aux | grep -i [NAME_OF_ANNOYING_PROGRAM] | grep -v grep
# make sure that you are only about to kill the programs you want to kill
ps aux | grep -i [NAME_OF_ANNOYING_PROGRAM] | grep -v grep | awk '{print $2}' | sudo xargs kill -9
sudo mv /usr/local/[DIR_FOR_ANNOYING_PROGRAM] /usr/local/[DIR_FOR_ANNOYING_PROGRAM]2
通用程序为:
kill -9非常小心)目录中的所有程序grep并仔细检查搜索字词时提供任何警告。无论您要投入的是什么,grep都将从所有正在运行的程序的池中进行选择,并且kill具有root特权...