看起来我无法写入该文件,因为文件权限不允许
访问权限: (0644/-rw-r--r--) 用户 ID: ( 0/ root) 组 ID: ( 0/
root)
我如何更改文件权限以便能够进行写入操作?
chmod
chmod命令用于更改文件或目录的权限。要使用它,您需要指定所需的权限设置以及要修改的文件或文件夹。有两种方法可以指定权限,但我只会教一种方法。
很容易将权限设置看作一系列位(这是计算机对它们的看法)。下面是它的工作原理:
rwx rwx rwx = 111 111 111
rw- rw- rw- = 110 110 110
rwx --- --- = 111 000 000
and so on...
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 options permissions filename
user
)、拥有该文件的组的成员(group
)以及其他任何人(others
)的权限。有两种表示这些权限的方法:用符号(字母数字字符)或用八进制数字(0到7的数字)。chmod 754 myfile
chmod
的man
页面(此页面)。以chmod
命令为例;
chmod 755 filename
要更改文件的所有者,请使用chown
,例如:
chown <new user>[.<new group>] <file>
sudo chmod a+rwx path 对我有效
虽然这是一篇旧帖子,但也许仍有人会发现我的回答有用。
如果您想要给所有用户(或“除了所有者” - 意思是最后一位数字)访问权限,您可以运行以下命令:
cd <path where you want to apply your changes>
sudo find . -perm 750 -exec chmod 757 {} +;
它将查找所有权限为750(对于所有者用户读取+写入+执行/对于组所有者读取+执行/对于其他用户无)
的文件,并通过仅更改最后一位数字,将相同的权限授予所有其他用户。(最后的7表示其他用户的读取+写入+执行权限)
当然,您可以使用不同的数字运行命令,但只需用第一个数字的值替换最后一个数字即可。例如,运行下一个命令以确保所有具有所有者的读取+写入+执行权限
的文件都将具有相同的访问权限:
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的文件。**
您可以使用以下命令单独更改文件夹的权限:
chmod 777 folder-name
chmod -R folder-name
** 注意:chmod 777会给予该文件夹及其文件的所有访问权限
chmod
命令更改文件权限。 - Rishit Sanmukhanichmod
命令的手册页。 - mathematician1975chmod
更改权限;chown
更改所有权。 - fedorqui