更改文件权限Linux

时间:2015-04-23 13:15:23

标签: linux ubuntu

由于文件权限

,我似乎无法写入此文件
  

访问:(0644 / -rw-r - r--)Uid:(0 / root)Gid:(0 /
  根)

如何更改文件权限以便我可以写信给它?

5 个答案:

答案 0 :(得分:4)

<强> CHMOD

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 ------)目录所有者具有完全访问权限。没有人拥有任何权利。此设置对于只有所有者可以使用的目录非常有用,并且必须与其他目录保持私密。

答案 1 :(得分:1)

在终端上使用此命令

sudo chmod 777 fileName

授予所有访问权限(读,写,执行)。

如果您不需要执行权限,只需要正确访问

sudo chmod 666 fileName

通常,chmod命令采用以下形式:

chmod options permissions filename

如果未指定任何选项,则chmod会将filename指定的文件的权限修改为权限指定的权限。

权限定义文件所有者(user),拥有该文件的组成员(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(读,不写,没有执行。)

enter image description here

我想,你明白了。有关详细信息,请阅读manthis page)的chmod条目。

答案 2 :(得分:0)

使用chmod命令作为示例;

chmod 755 filename

答案 3 :(得分:0)

要更改文件的所有者,请使用{/ 1}},如

chown

答案 4 :(得分:0)

旧帖子,但也许有人会对我的回答有用。

如果要授予所有用户访问权限(或“所有者以外的其他用户”,即最后一位),则可以运行下一个命令:

 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)的文件,只需更改最后一位数字,便向所有其他用户授予与所有者相同的权限。 (last 7 meaning read + write + execute for other users)

当然,您可以使用不同的数字运行命令,但是只需将first数字替换为first on的值即可。例如,运行next命令以确保所有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。**