翼度科技»论坛 云主机 LINUX 查看内容

Linux 文件权限

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
查看文件权限:
  1.  ls -l file_name
复制代码
  1.  -rw-r--r-- 12 linuxize users 12.0K Apr  28 10:10 file_name<br> |[-][-][-]-   [------] [---]<br> | |  |  | |      |       |<br> | |  |  | |      |       +-----------> 7. Group 用户组<br> | |  |  | |      +-------------------> 6. Owner 所有者<br> | |  |  | +--------------------------> 5. Alternate Access Method<br> | |  |  +----------------------------> 4. Others Permissions 其他用户权限<br> | |  +-------------------------------> 3. Group Permissions 用户组权限<br> | +----------------------------------> 2. Owner Permissions 所有者权限<br> +------------------------------------> 1. File Type 文件类型<br> ​
复制代码
 
文件类型(1. File Type)

文件类型。
-:文件;
d:目录;
l:(L) 链接;
 
权限组

对于所有者和用户组权限,文件/目录创建时,默认赋值所有者为创建者,用户组为创建者所在组,但它们是可被更改的。
继文件类型之后的 9 个字符,分为 3 个权限组,都使用 -, r, w, x 来组合。
 
数值授权(推荐)

各权限数值:

  • r (read 读) = 4


  • w (write 写) = 2


  • x (execute 执行) = 1


  • - (无权限) = 0
由于各个权限组合不会得到相同的数字,因此每一类用户的权限都可以用一个数字表示,修改权限使用命令 chmod,格式为:
  1.  chmod [OPTIONS] NUMBER FILE... # 多个文件使用空格隔开
复制代码
例:
  1.  chmod 760 filename
复制代码
7 表示所有者权限:4 + 2 + 1 = 7,即 rwx,所有者拥有全部权限。
6 表示用户组权限:4 + 2 = 6,即 rw-,用户组拥有读写权限。
0 表示其他用户权限:0,即 ---,其他用户没有权限。
以数值形式查看文件权限,使用 stat 命令:
  1.  stat -c "%a" file_name
复制代码
 
符号授权(有特殊用处)

格式:
  1.  chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...
复制代码
解释:
[ugoa…]:

  • u - 所有者。
  • g - 用户组。
  • o - 其他用户。
  • a - 所有用户,等同于 ugo。
[-+=]:

  • - - 移除指定权限。
  • + - 添加指定权限。
  • = - 赋值指定权限,覆盖原有权限,如果 = 后面为空,则为移除所有权限。
perms...:

  • 权限符,可选且多选:r, w, x, X, s, t。
  • 也可以复制其它权限组,但只能单选:u, g, o;
    例:chmod g=u filename
[,…]:

  • 表示分别授权,, 之间不能有空格。例:chmod u=rwx,g=r,o= filename
FILE...:

  • 为一个或多个文件或目录设置权限,使用空格隔开。
 
修改用户组
  1.  chgrp new_group_name file_or_directory
复制代码
 
修改所有者
  1.  sudo chown [-R] new_owner_username[:new_group_name] /path/to/file_or_directory
复制代码
参数:

  • -R:如果目标是目录,递归修改此目录及所有子目录和文件的所有者。
  • :new_group_name:用户名:用户组,修改所有者的同时指定用户组,即:同时修改用户组。
 
特殊权限

特殊权限:s, S, t, T。
s:体现在所有者权限组时:setuid (Set User ID up on execution),体现在用户组权限组时:setgid (Set Group ID up on execution),意思是运行时(有 x 权限)提升权限,以文件所有者(setuid)或用户组(setgid)的身份进行运行。
S:类似于 s,但没有执行权限(x)。

  • S 是 s 的一个变体,给文件所有者或用户组设置 s 权限时,如果文件已经拥有 x 权限,则设置之后体现为 s,如果文件没有 x 权限,则设置之后体现为 S。


  • 没有设置 S 权限的命令,只有设置 s 权限的命令,二者之间的体现取决于文件原有的执行权限 x。
t:set sticky bit,最常见于像 /tmp 这样的目录上,它允许用户在目录中创建文件或子目录,但只允许文件的所有者或管理者删除或改名自己的文件。
T:类似于 t,但没有执行权限(x),属于 t 的变体。描述参照 S。
 
特殊权限授权

使用数值形式设置特殊权限:

  • setuid = 4
  • setgid = 2
  • sticky = 1
  • no changes = 0 (可忽略)
特殊权限数值放在第一位:
  1.  sudo chmod 6760 filename
复制代码
文件权限将展示为 -rwsrwS---:
第一个数字 6:setuid + setgid = 4 + 2 = 6,因此在所有者和用户中都体现了 s 权限。由于所有者的权限值为 7,有执行权限,所以它表示为 s,而用户组权限为 6,没有执行权限,因此表示为 S。
 
移除特殊权限

移除特殊权限,使其留下常规权限,使用符号授权方式:
  1.  sudo chmod u-s /path/to/file_or_directory
复制代码
 
参考

参考文章:https://linuxize.com/post/understanding-linux-file-permissions/

来源:https://www.cnblogs.com/64gdrifbottle/p/18085904
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

上一篇: Linux 文件权限

下一篇: Linux 文件权限

举报 回复 使用道具