13

Linux文件权限 (chmod命令) 简述

 1 year ago
source link: https://direct5dom.github.io/2023/01/24/Linux%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90-chmod%E5%91%BD%E4%BB%A4-%E7%AE%80%E8%BF%B0/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

如果你不了解权限,那么永远都不要chmod 777

在Linux中,对文件的访问由操作系统使用文件权限、属性和所有权进行控制。

每个文件由特定用户和组拥有,并为三种不同类别的用户分配权限访问权限:

  • 文件所有者;
  • 群组成员;
  • 其他所有人。
  • 执行权限。

可以用ls -l查看文件的权限,例如:

ls -l install.sh
-rw-r--r-- 1 sixiaolong sixiaolong 34178 Dec 15 14:38 install.sh

第一个字符是文件类型,它可以是常规文件 (-)、目录 (D)、符号链接 (L) 或任何其他特殊类型的文件。

接下来的就个字符(即rw-r--r--)表示文件权限,三个三元组,每个三个字符。

  • 第一个三元组(此处为rw-):所有者权限;
  • 第二个三元组(此处为r--):组权限;
  • 第三个三元组(此处为r--):其他人权限。

权限的数字值

  • 读 - r - 4
  • 写 - w - 2
  • 执行 - x - 1
  • 无 - 0

这样规定之后,上面的三元组就能用一个数字代替,即:

  • 0(0+0+0) - 没有权限;
  • 1(0+0+1) - 仅执行权限;
  • 2(0+2+0) - 仅写入权限;
  • 3(0+2+1) - 写入和执行权限;
  • 4(4+0+0) - 只读权限;
  • 5(4+0+1) - 读取和执行权限;
  • 6(4+2+0) - 读写权限;
  • 7(4+2+1) - 读取、写入和执行权限。

这样的话,750就代表rwxr-x---,即:

  • 属主:rwx=4+2+1=7;
  • 属组:r-x=4+0+1=5;
  • 其他:---=0+0+0=0。

有些时候会用4位数字,此时多出的以为在第一位,代表:

  • setuid = 4
  • setgid = 2
  • sticky = 1
  • no changes = 0

想要用数字(八进制)查看文件权限,需要用stat命令,例如:

stat -c "%a" install.sh
644

和文件权限有关的两个命令

chown

假设服务器上有一个PHP应用程序以用户www身份运行,请执行以下操作:

chown -R www: /var/www
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;

chmod

chmod的用法在chown那里已经提到过了,即:

chmod [权限] [文件]

这里需要注意的777这个权限,它等于在说任何人都能对这个文件做任何事情。这对于Linux(尤其是服务器来说)是十分危险的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK