我想创建一个特定文件夹的 ZIP 存档,它主要包含多年来收集的从各种来源复制的照片。不幸的是,权限混乱。ls
我看到类似
----------@
和
-r--r--r--@
最后一个在 Finder 中显示有重复的用户和组条目。当我尝试压缩文件夹时,具有这些权限的文件会出现错误。
我正在寻找一个终端命令,将文件夹内的所有文件重置为
-r--r--r--
或目录
drwxr-xr-x
谢谢。
答案1
我不完全清楚到底出了什么问题,但你应该能够用三个命令来规范权限:
sudo chown -R hhrutz:staff /path/to/folder
这会将文件夹所有内容的所有者设置为 hhrutz,并将组设置为 staff。请注意,这需要管理员权限,您必须输入管理员密码进行确认。
chmod -R u=rwX,go=rX /path/to/folder
这会将文件权限设置为“-rw-r--r--”,并将目录权限设置为“drwxr-xr-x”(“X”选项表示在适当的情况下添加执行权限)。
好的,现在 posix 权限已全部清除,但 OS X 有两种类型的文件权限:posix(“-rw-r--r--@ 1 hhrutz 757317411”部分)和访问控制列表(“0: user:hhrutz allow ...”)部分,而 ACL 部分仍然很乱。要清除它,请使用:
chmod -R -N /path/to/folder
这只会从文件和文件夹中删除所有 ACL。
答案2
假设您仍然有权更改文件权限,则可以使用标志-R
以chmod
递归方式更改文件权限。例如,要将文件夹中的所有权限更改\Users\Test\Desktop\PATH
为每个人都可以读取、写入和执行,我们可以使用:
chmod -R 777 /Users/Test/Desktop/PATH
“777” 表示所有用户均可读取、写入和执行。要将权限更改为其他权限,请阅读有关八进制/数字文件系统权限表示法的信息(如果您不熟悉它),网址为https://en.wikipedia.org/wiki/File_system_permissions#Numeric_notation。
答案3
一个相当愚蠢的解决方案是cp -r
复制文件夹,这样可以清除所有错误的用户。然后,您需要找到没有权限的文件并调用chmod a+r
它们。
编辑:好的,下面显示所有用户:
$ ls -le interplay_l8.jpg
-rw-r--r--@ 1 hhrutz 757317411 283266 7 Feb 2011 interplay_l8.jpg
0: user:hhrutz allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
1: group:everyone allow read,readattr,readextattr,readsecurity
2: user:hhrutz allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
3: group:everyone allow read,readattr,readextattr,readsecurity
这是我这样做之后的chmod u+rw
。使用n
标志以数字方式显示用户:
$ ls -len interplay_l8.jpg
-rw-r--r--@ 1 1622704362 757317411 283266 7 Feb 2011 interplay_l8.jpg
0: 60B880EA-8F35-47F9-B64B-5384CBA15697 allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
1: ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C allow read,readattr,readextattr,readsecurity
2: 60B880EA-8F35-47F9-B64B-5384CBA15697 allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
3: ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C allow read,readattr,readextattr,readsecurity
因此,同一个用户有多个条目......