[英]Changing File Permissions Linux
由于文件权限,我似乎无法写入此文件
访问:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/
根)
如何更改文件权限以便可以写入?
修改
chmod 命令用于更改文件或目录的权限。 要使用它,请指定所需的权限设置以及要修改的文件。 有两种方法可以指定权限,但我只会教一种方法。
很容易将权限设置视为一系列位(这就是计算机如何看待它们)。 这是它的工作原理:
rwx rwx rwx = 111 111 111
rw- rw- rw- = 110 110 110
rwx --- --- = 111 000 000
等等...
rwx = 111 in binary = 7
rw- = 110 in binary = 6
r-x = 101 in binary = 5
r-- = 100 in binary = 4
777
(rwxrwxrwx) 没有权限限制。 任何人都可以做任何事情。 通常不是理想的设置。
755
(rwxr-xr-x) 文件的所有者可以读取、写入和执行文件。 所有其他人都可以读取和执行该文件。 此设置适用于所有用户使用的程序。
700
(rwx------) 文件的所有者可以读取、写入和执行文件。 其他人没有任何权利。 此设置对于只有所有者才能使用且必须对其他人保密的程序很有用。
666
(rw-rw-rw-) 所有用户都可以读写文件。
644
(rw-r--r--) 所有者可以读写文件,而其他所有人只能读取文件。 每个人都可以阅读的数据文件的通用设置,但只有所有者可以更改。
600
(rw-------) 所有者可以读写文件。 所有其他人都没有权利。 所有者想要保密的数据文件的通用设置。
目录权限
chmod 命令还可用于控制目录的访问权限。 在大多数情况下,目录的权限方案的工作方式与它们对文件的工作方式相同。 但是,执行权限的使用方式不同。 它提供对文件列表和其他内容的访问控制。 以下是一些有用的目录设置:
777
(rwxrwxrwx) 没有权限限制。 任何人都可以列出文件、在目录中创建新文件和删除目录中的文件。 通常不是一个好的设置。
755
(rwxr-xr-x) 目录所有者具有完全访问权限。 所有其他人可以列出目录,但不能创建文件或删除它们。 此设置对于您希望与其他用户共享的目录很常见。
700
(rwx------) 目录所有者具有完全访问权限。 其他人没有任何权利。 此设置对于只有所有者可以使用且必须对其他人保密的目录很有用。
在终端上使用此命令
sudo chmod 777 fileName
授予所有访问权限(读取、写入、执行)。
如果您不需要执行访问权限而只需要正确的访问权限,那么
sudo chmod 666 fileName
通常,chmod 命令采用以下形式:
chmod options permissions filename
如果不指定选项,chmod 将filename 指定的文件的权限修改为permissions 指定的权限。
权限定义文件所有者( user
)、拥有文件的group
成员( group
)和其他任何人( others
)的权限。 有两种方法可以表示这些权限:使用符号(字母数字字符)或使用八进制数字(数字 0 到 7)。
例子
chmod 754 myfile
这里的数字 7、5 和 4 分别代表用户、组和其他人的权限,按顺序排列。 每个数字都是数字 4、2、1 和 0 的组合:
所以7是权限4+2+1(读、写、执行)的组合,5是4+0+1(读、不写、执行),4是4+0+0(读,不执行)写,不执行)。
我想,你明白了。 有关更多详细信息,请阅读chmod
man
条目(此页面)。
以chmod
命令为例;
chmod 755 filename
要更改文件的所有者,请使用chown
chown <new user>[.<new group>] <file>
旧帖子,但也许有人仍然会发现我的答案有用。
如果您想授予所有用户的访问权限(或“所有者以外的” - 意思是最后一位),您可以运行下一个命令:
cd <path where you want to apply your changes>
sudo find . -perm 750 -exec chmod 757 {} +;
它将找到所有权限为750 (read + write + execute for owner user / read + execute for group owner / nothing for other users)
文件750 (read + write + execute for owner user / read + execute for group owner / nothing for other users)
并通过更改最后一位数字,您将与所有者相同的权限授予所有其他用户。 (last 7 meaning read + write + execute for other users)
当然,您可以使用不同的数字运行命令,但只需将最后一位数字替换为 first on 的值即可。 例如,运行下一个命令以确保所有read + write + executable for owner
对“other”具有相同的权限:
sudo find . -perm 700 -exec chmod 707 {} +;
sudo find . -perm 701 -exec chmod 707 {} +;
sudo find . -perm 702 -exec chmod 707 {} +;
sudo find . -perm 703 -exec chmod 707 {} +;
sudo find . -perm 704 -exec chmod 707 {} +;
sudo find . -perm 705 -exec chmod 707 {} +;
sudo find . -perm 706 -exec chmod 707 {} +;
如果您继续以这种方式(每个组合 7xx 对应一行),您最终将运行 77 个命令。 这有点太多了......对吧?
幸运的是,可以做一个技巧。 您可以在数字前面使用“-”,这意味着文件“至少”具有该数字。 例如,运行:
sudo find . -perm -775
将返回所有具有 775、776 和 777 权限的文件。另一个例子是运行:
sudo find . -perm -770
这将返回权限为 770、771 ... 777 的文件。
在我们的例子中,我们只关心第一个数字,我们想用它的值改变最后一个数字,所以可以使用:
sudo find . -perm 700 -exec chmod 777 {} +;
**> 这仅适用于所有者已读 + 写 + 的文件
执行。 如果您将使用 600 而不是 700 尝试上述命令,请记住,它还会返回权限为 6xx 的文件和权限为 7xx 的文件。**
sudo chmod a+rwx 路径对我有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.