Answers:
您正在使用-664
,请664
改用。当您不需要时,永远不要使用sudo
。如果那是您的文件,则不需要sudo
:
chmod 644 my_file
当您chmod
使用-
前一个模式运行时,将删除该模式。参见man chmod
(强调我的):
运算符+导致将所选文件模式位添加到每个文件的现有文件模式位;-使它们被去除;和=导致添加它们并导致删除未提及的位,除非目录的未提及的设置用户和组ID位不受影响。
这些数字是:
因此,具有777
权限的文件意味着每个人都有权执行全部三个操作,因为1 + 2 + 4 = 7,因此将权限设置为7意味着允许读取,写入和执行。
如果以模式为的文件开头777
:
$ ls -l my_file
-rwxrwxrwx 1 terdon terdon 0 May 28 13:45 my_file
现在运行chmod -644
,您将删除这些位644
,最后得到一个文件,其模式为133
:
$ chmod -644 my_file; ls -l my_file
---x-wx-wx 1 terdon terdon 0 May 28 13:45 my_file
这是因为您从所有者的权限中删除了6(读(4)+写(2)),仅保留了1(执行)集,并从组和其他权限中删除了4(读)。结果是文件的所有者仅具有执行(1)权限,其余部分仅具有写入和执行(取消设置4,分别保留1和3)权限。
因为您的文件可能具有新文件的默认权限,所以644
在运行时chmod -644 my_file
,您删除了所有设置的权限位,并获得了一个对任何人都没有权限的文件。
$ ls -l my_file
-rw-r--r-- 1 terdon terdon 0 May 28 13:45 my_file
$ chmod -644 my_file
$ ls -l my_file
---------- 1 terdon terdon 0 May 28 13:45 my_file
-
在644前面有一个?尝试sudo chmod 644 my_file
。-644
将删除权利。