繁体   English   中英

更改文件权限 Linux

[英]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 的组合:

  • 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM