文件/目录的权限与归属

182 阅读5分钟

访问权限:

读取r:允许查看文件内容、显示目录列表

写入w: 允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

可执行x:允许运行程序、切换目录

归属(所有权)

属主:拥有该文件或目录的用户账号

属组:拥有该文件或目录的组账号

 

rw-    文件的主人          属主

r--      文件所属的组      属组    

r--       其他人 

注意:                 

文件夹的最小权限是x 一定要带上否则无法进行任何操作 超级管理员不受影响

删除一个文件和所在文件夹权限有关 和自身没关系 注意超级管理员(不受限)

r   w    x

1  0     0       4

0  1     0       2

0  0     1       1

                 7

 

image.png

使用ls –l 命令查看文件属性

文件的属性分为9列,每列含义如下:

image.png

  • 第一列:表示文件类型,-属于普通文件。
  • 第二列:表示文件的UGO权限。rw-r--r--每三个一组。

rw- :属主的权限;

r-- :属组的权限;

r-- :其他人的权限。

  • 第三列:表示ACL表中是否设置了ACL权限。“.” 表示无ACL权限,“+”表示设置了ACL权限。
  • 第四列:表示硬链接数。
  • 第五列:表示文件的属主。
  • 第六列:表示文件的属组。
  • 第七列:表示文件的大小,有多少字节。
  • 第八列:表示最后一次修改时间。
  • 第九列:表示文件名。

基本权限U G O

Linux权限授权,默认是授权给三种角色UGO: user(属主)、group(属组)、other(其他人)。

每个文件的权限基于UGO进行设置。

权限三位一组(rwx),同时授权给三种角色UGO。

权限对象UGO:

u 属主(user);

g 属组(group);

o 其他人(other)。

a 所有人 all(u+g+o)

设置文件和目录的权限 chmod

chmod命令格式:

数字形式:

Chmod  ### 文件/目录

字符形式:

Chmod 对象(u属主/g属组/o其他人/a所有)赋值符(+/1/=)权限类型(r/w/x) 文件类型

“+”号代表增加权限 “-”号代表减少相应权限 “=”号代表覆盖对应的权限

选项:

-R 递归修改目录下所有子项的权限

示例:

(1)  数字形式设置权限:

image.png

(2)  字符形式设置权限

为属主增加执行权限

image.png

给其他人增加执行权限

image.png

设置文件和目录的归属  chown

命令:

Chown 属主  文件或目录

Chown :属组  文件或目录

Chown 属主:属组  文件或目录

选项:-R 递归修改指定目录下所有子项的权限

举例:

Chown 属主:属组  文件或目录

image.png

Chown 属主  文件或目录

image.png

Chown :属组 文件/目录

image.png

权限掩码umask

umask作用:

  • 控制新建的文件或者目录的权限。
  • 默认权限去除umask的权限为新建的文件

umask 查看: umask

umask 设置: umask 0022

创建新文件和目录时,落地权限计算:

  • 系统默认umask为0022(第一个0与特殊权限有关,目前只需要看后三位)。
  • 文件夹的落地权限=0777-0022=0755。文件夹必须要有执行权限,用户才能访问该目录。
  • 文件的落地权限=0666-0022=0644。系统出于安全考虑,创建文件时去掉了所有的执行权限,防止一些不安全的程序文件被错误执行。

例题:

文件夹 一定要有执行权限

你去切知道文件夹的名字才能

执行 cp /etc/issue /data/dir/ 所需要的最小权限?

/bin/cp 需要x权限

/etc/ 需要x权限

/etc/issue 需要r权限

/data 需要x权限

/data/dir 需要w,x权限

三种特殊权限 suid SGID sticky bit

suid

功能:设置suid权限的程序文件,在用户执行该程序时,用户权限是该程序文件属主的权限

设置SUID的文件要求有如下几点:

1.SUID只对可执行的二进制文件起作用,shell脚本设置后不生效。

2.如果设置了其suid后,其属主的可以执行权限x会变成s(小写),如果是大写S那么说文件的属主没有执行权限,设置的SUID无效。

3.SUID对目录设置无意义。

SUID设置方法

字母设置方式:chmod u+s file

取消SUID:chmod u-s file

数字设置方式:chmod 4755 在普通三位数字权限位之前,用4代表添加的SUID位

取消SUID:chmod 0755

 [root@localhost aa]#which passwd

/usr/bin/passwd

[root@localhost aa]#ll /usr/bin/passwd

#此处s表示当使用这个命令程序时,把当前用户当成文件的所属主

-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

[root@localhost aa]#which vim

/usr/bin/vim

[root@localhost aa]#chmod u+s /usr/bin/vim

#给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件

[root@localhost aa]#ll /usr/bin/vim

-rwsr-xr-x. 1 root root 2289640 8月   2 2017 /usr/bin/vim

#SGID

[root@localhost aa]#chmod g+s /usr/bin/vim

[root@localhost aa]#ll /usr/bin/vim

-rwxr-sr-x. 1 root root 2289640 8月   2 2017 /usr/bin/vim

Sticky 位

#具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

#在目录设置Sticky 位,只有文件的所有者或root可以删除该文件

#sticky 设置在文件上无意义

#Sticky权限设定:

chmod o+t DIR...

chmod o-t DIR..

[root@localhost aa]#chmod o+t /opt/aa

添加Sticky 位

[root@localhost opt]#chmod o-t /opt/aa

#减少Sticky 位