更改文件权限Linux

bbuxkriu  于 2023-03-07  发布在  Linux
关注(0)|答案(7)|浏览(117)

由于文件权限问题,似乎无法写入此文件
访问权限:(0644/- rw-r--r--)用户ID:(0/根)GID:(0/
根)
如何更改文件权限以便可以写入?

wlp8pajw

wlp8pajw1#

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

fkaflof6

fkaflof62#

在终端上使用此命令

sudo chmod 777 fileName

授予所有访问权限(读取、写入、执行)。
如果您不需要执行访问权限,而只需要权限,则

sudo chmod 666 fileName

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

chmod options permissions filename

如果未指定任何选项,chmod会将filename指定的文件的权限修改为permissions指定的权限。
permissions定义文件所有者(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(读、禁止写和禁止执行)。

我想,你已经明白了。要了解更多细节,请阅读chmodthis page)的man条目。

57hvy0tb

57hvy0tb3#

chmod命令为例;

chmod 755 filename
wf82jlnq

wf82jlnq4#

要更改文件的所有者,请使用chown,如下所示

chown <new user>[.<new group>] <file>
a2mppw5e

a2mppw5e5#

老职位,但也许有人仍然会发现有用的我的答案.
如果你想给予所有用户(或“除所有者”-意思是最后一位数字)访问,你可以运行下一个命令:

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 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 {} +;

如果你继续这样做(每个组合7 xx都有一行),你最终会运行77个命令,这有点太多了,对吧?
幸运的是,可以做一个技巧。你可以在数字前面使用“-”,这意味着文件“至少”有这个数字。例如,运行:

sudo find . -perm -775

将返回具有权限775、776和777的所有文件。另一个示例正在运行:

sudo find . -perm -770

它将返回权限为770771...777的文件。
在我们的例子中,我们只关心第一个数字,我们想用它的值来改变最后一个数字,所以可以使用:

sudo find . -perm 700  -exec chmod 777 {} +;

**〉这仅适用于所有者已读取+写入+

execute。如果您尝试使用600而不是700执行上述命令,请记住,它还将返回权限为6xx的文件和权限为7 xx的文件。**

cigdeys3

cigdeys36#

sudo chmod a+rwx路径适合我

3b6akqbq

3b6akqbq7#

您可以使用单独更改文件夹的权限

chmod 777 folder-name

如果还想更改其子目录权限,请使用

chmod -R folder-name

**注意:chmod 777授予对文件夹及其文件的所有访问权限

相关问题