linux文件系统权限

Linux文件系统权限

 

文件的一般权限

以下图为例

文件的权限针对三类对象进行定义

owner:所属主

group:所属组

other:其他

每个文件针对三类访问者定义了三种主要权限

r:read 读

w:write写

x:excute执行

1、修改文件或目录的权限—chmod(change mode)命令
命令格式 1:chmod  [选项]  [ugoa][+-=][rwx]  文件或目录... 
命令格式2:chmod  [选项]  nnn  文件或目录...

常用的选项-R ,递归修改指定目录下所有文件、子目录的权限。
ugoa :表示权限设置所针对的用户类别,可以是其中字母中的一个或组合,u(user)表示文件或目
录的属主(所有者);g(group)表示属组内的用户;o(others)表示其他用户;a(all)表示所有用户(即 u+g+o)。
+或-或= :表示设置权限的操作动作,+代表添加某个权限;-代表取消某个权限;=表示只赋予给定 的权限,并取消原有的权限。
rwx :用字符形式表示的所设置的权限,可以是其中一个字母或组合。
nnn :用三位八进制数字表示的权限。
2、对于文件和目录来说,r,w,x有着不同的作用和含义:

权限对文件的影响对目录的影响
r可以读取文件内容可以列出目录的内容

w

可以更改文件的内容可以创建出目录或者删除目录中的任一文件
x可以作为可执行文件可以切换到目录

文件可能出现的权限:---、r--、r-x、rwx

目录可能出现的权限:---、r-x、rwx

3、修改文件或目录的属主和属组
(1) 修改文件或目录的所属者
命令格式 :chown  [选项]  新属主[:[新属组]]  文件或目录……
选项:-R 可递归设置指定目录下的全部文件(包括子目录和子目录中的文件)的所属关系。 
2)修改文件或目录的属组
命令1:chown  [选项]  :新属组  文件或目录……
命令2:chgrp  [选项]  新属组  文件或目录……

文件和目录的特殊权限

在Linux系统中,用户对文件或目录的访问权限除了r、w、x三种一般权限外,还有SET UID(SUID)、SET GID(SGID)、Sticky Bit(粘滞位)三种特殊权限,用于对文件或目录进行更加灵活方便的访问控制。
1、SUID 权限的含义:是为了让一般用户在执行某些程序的时候, 在程序的运行期间, 暂时获得该程 
序文件所属者的权限。

分析:xiaolant用户要更改自己的密码
  ■ xiaolan 在执行 passwd 修改自己的密码时, 其修改的密码, 最终是需要保存到 /etc/shadow 这个文件中, 而这个文件的权限是 --------- ,它的拥有者是 root ,也只有 root 可以“ 强制” 存储, 其他 用户连看都不行。
  ■ 可偏偏 xiaolan 去执行 passwd (/usr/bin/passwd) ,却可以更新自己的密码。 
 这就是因为有 s 权限的存在,当 s权限在拥有者的权限位上时, 即如-rwsr-xr-x 这样时, 称为 SUID 。SUID 即 Set UID , UID 指的是拥有者的的 ID, 而这个程序 (/usr/bin/passwd) 的拥有者为 (root) 。

[root@server ~]# which passwd
/usr/bin/passwd
[root@server ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 33544 Dec 13  2019 /usr/bin/passwd

注意:
1、suid仅对二进制文件有效。 
2、在执行过程中,调用者会暂时获得该文件的所有者权限。

3、该权限只在程序执行的过程中有效。

查询系统中设置了uid的文件

[root@server ~]# find / -perm /4000
find: ‘/proc/3094’: No such file or directory
find: ‘/proc/3096/task/3096/fd/5’: No such file or directory
find: ‘/proc/3096/task/3096/fdinfo/5’: No such file or directory
find: ‘/proc/3096/fd/6’: No such file or directory
find: ‘/proc/3096/fdinfo/6’: No such file or directory
/usr/bin/fusermount
/usr/bin/fusermount3
/usr/bin/chage
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/mount

2、SGID 权限
SGID 可以用在两个方面:
 ■ 文件: 如 果 SGID 设置在二进制文件上, 则不论用户是谁,在执行该程序的时候,程序的所属组将 会变成该程序文件的所属组。
 ■ 目录, 如 果 SGID 是设置在 A 目录上, 则在 A 目录内所建立的文件或目录的所属组, 将会是此 A 目录的所属组。
一 般来说, SGID 多用在特定的多人团队的项目开发上,在系统中用的很少。

查询系统中的SGID文件

[root@server ~]# find / -perm /2000
find: ‘/proc/3856/task/3856/fd/5’: No such file or directory
find: ‘/proc/3856/task/3856/fdinfo/5’: No such file or directory
find: ‘/proc/3856/fd/6’: No such file or directory
find: ‘/proc/3856/fdinfo/6’: No such file or directory
/run/log/journal
/run/log/journal/dde53448173647fea22cb7b257aee038
/usr/bin/write
/usr/bin/locate
/usr/sbin/lockdev
/usr/libexec/utempter/utempter
/usr/libexec/openssh/ssh-keysign
[root@server ~]#


3、Sticky Bit权限
Sticky Bit (SBit) 当前只针对目录有效, 对文件没有效果。其对目录的作用是:
 ■ 在 具 有 SBit 的目录下, 用户若在该目录下具有 w 及 x 权限 , 则当用户在该目录下建立文件或目 录时, 只有文件拥有者与 root 才有权力删除。
例如:当 student 用户属于 A 目录的组成员或属于 other ,且拥有 wx 权限时, 可以对该目录内任何人 建立的目录或文件进行“ 删除/重命名/移动” 等操作。 如果将 A 目录加上了 Sticky Bit 权限, 则 student 用户只能针对自己建立的文件或目录进行“ 删除/重命名/移动” 等操作。
4、设置文件和目录的特殊权限

        为文件或目录添加三种特殊权限同样可以通过chmod命令来实施,使用“u±s”、“g±s”、“o±t”的字符权限模 式分别用于添加和移除SUID、GUID、sticky权限。 
若使用数字形式的权限模式,可采用“nnnn”格式的四位八进制数字表示,其中:后面三位是一般权限的数 字表示,前面第一位则是特殊权限的标志数字:
 0——表示不设置特殊权限 
 1——表示只设置sticky 
 2——表示只设置GUID权限 
 3——表示只设置SGID和sticky权限 
 4——表示只设置SUID权限 
 5——表示只设置SUID和sticky权限 
 6——表示只设置SUID和SGID 
 7——表示同时设置SUID、GUID、sticky3种权限

ACL 权限

ACL 权限分配:给指定的用户指定目录分配指定的权限。

1、ACL权限管理命令
查看ACL权限

设定ACL权限 
语法:setfacl 选项 文件名
选项:
-m:设定 ACL 权限。如果是给予用户 ACL 权限,则使用u:用户名:权限 格式赋予;如果是给予组 ACL 权限,则使用g:组名:权限" 格式赋予;
-x:删除指定的 ACL 权限; 
-b:删除所有的 ACL 权限; 
-d:设定默认 ACL 权限。只对目录生效,指目录中新建立的文件拥有此默认权限;
-k:删除默认 ACL 权限;
-R:递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效;

[root@server ~]# mkdir /home/file2
[root@server ~]# ll /home
total 4
drwx------.  3 admin    temp       78 Nov  2 09:30 admin
drwx------.  3 alex     alex       78 Nov  2 09:27 alex
drwxr-xr-x+  2 root     root        6 Nov  3 05:10 file1
drwxr-xr-x.  2 root     root        6 Nov  3 05:37 file2
drwx------.  3 laoliu   laoliu     78 Nov  3 05:10 laoliu
drwx------.  4 myuser   myuser    133 Nov  2 03:52 myuser
drwx------. 15 rehl     rehl     4096 Oct 30 03:41 rehl
drwx------.  3 sarah    sarah      78 Nov  2 09:23 sarah
drwx------.  3 user     group      78 Nov  2 04:01 user
drwx------.  4 xiaolan  xiaolan   113 Nov  1 22:51 xiaolan
drwx------.  3 zhangsan zhangsan   78 Oct 31 10:48 zhangsan
[root@server ~]# setfacl -m u:laoliu:rx /home/file2
[root@server ~]# ll /home
total 4
drwx------.  3 admin    temp       78 Nov  2 09:30 admin
drwx------.  3 alex     alex       78 Nov  2 09:27 alex
drwxr-xr-x+  2 root     root        6 Nov  3 05:10 file1
drwxr-xr-x+  2 root     root        6 Nov  3 05:37 file2
drwx------.  3 laoliu   laoliu     78 Nov  3 05:10 laoliu
drwx------.  4 myuser   myuser    133 Nov  2 03:52 myuser
drwx------. 15 rehl     rehl     4096 Oct 30 03:41 rehl
drwx------.  3 sarah    sarah      78 Nov  2 09:23 sarah
drwx------.  3 user     group      78 Nov  2 04:01 user
drwx------.  4 xiaolan  xiaolan   113 Nov  1 22:51 xiaolan
drwx------.  3 zhangsan zhangsan   78 Oct 31 10:48 zhangsan
[root@server ~]#

2、最大有效权限 mask
给用户或用户组设定 ACL 权限其实并不是真正我们设定的权限,是与 mask 的权限“相与”之后的权限才 是用户的真正权限,一般默认mask权限都是rwx,与我们所设定的权限相与就是我们设定的权限。

在设定玩acl之后我们可以查看权限

[root@server ~]# getfacl /home/file2
getfacl: Removing leading '/' from absolute path names
# file: home/file2
# owner: root
# group: root
user::rwx
user:laoliu:r-x
group::r-x
mask::r-x
other::r-x

[root@server ~]#

 权限掩码umask

设置新建文件或目录的默认权限
在Linux系统中,当用户创建一个新的文件或目录时,系统都会为新建的文件或目录分配默认的权限,该默认权限与umask值有关,其具体关系是:
新建文件的默认权限=0666-umask值
新建目录的默认权限=0777-umask值

[root@server ~]# touch /root/file
[root@server ~]# mkdir /root/ceshi
[root@server ~]# ll -d ceshi file
drwxr-xr-x. 2 root root 6 Nov  9 01:37 ceshi
-rw-r--r--. 1 root root 0 Nov  9 01:35 file
[root@server ~]#

修改文件的扩展属性

1、设置文件的扩展属性
命令格式 :chattr [ -R ] [+-=acdijsuADS] 文件或目录名

命令效果
-R递归设置指定文件几目录下的所有文件和子目录属性
-V详细显示目录和文件的属性设置情况
+、-、=增加、取消、设置文件或目录属性
a只允许向文件中追加数据,不允许任何进程覆盖重写文件的内容
A设置不允许系统更新文件的最后访问时间
i不可修改属性
c压缩属性
s安全删除属性
u可恢复性的删除

2、查看文件的扩展属性
命令格式 :lsattr  [-adR]  文件名或目录名
-a:列出目录中的所有文件(包括隐藏文件)。
-d:列出目录文件的扩展属性。
-R:以递归的方式列出目录的属性及其内容。

实验

1、设置权限,要求如下:
(1)创建g1组,要求创建一个属于redhat用户g1组的文件redhat.txt
(2)新建/sc目录,所属组为group组,root用户和group组用户可在该目录下创建文件,其他人无任何权限
(3)新建/cw目录为财务部存储目录,只能对财务部人员可以写入,并且财务部人员所建立的文件都自动属于mygroup组中
(4)设置 helen用户对于/sc和/cw目录可以读,写,执行
(5)设置/test目录为公共存储目录对所有用户可以读,写,执行,但用户只能删除属于自己的文  件(t权限)
(6)在/test/dir里创建的新文件自动属于temp组

(1)创建g1组,要求创建一个属于redhat用户g1组的文件redhat.txt

[root@server ~]# groupadd g1
[root@server ~]# useradd redhat -g g1
[root@server ~]# su - redhat
[redhat@server ~]$ touch redhat.txt
[redhat@server ~]$ ll
total 0
-rw-r--r-- 1 redhat g1 0 Nov 11 05:29 redhat.txt
[redhat@server ~]$

(2)新建/sc目录,所属组为group组,root用户和group组用户可在该目录下创建文件,其他人无任何权限

[root@server ~]# mkdir /sc
[root@server ~]# chron .group /sc
[root@server ~]# chown root:group /sc
[root@server ~]# ll /sc -d
drwxrws--- 2 root group 6 Nov 11 05:30 /sc

(3)新建/cw目录为财务部存储目录,只能对财务部人员可以写入,并且财务部人员所建立的文件都自动属于mygroup组中

[root@server ~]# mkdir /cw
[root@server ~]# chowm :mygroup /cw
[root@server ~]# chown :mygroup /cw
[root@server ~]# chmod 070 /cw
[root@server ~]# chmod g+s /cw
[root@server ~]# ll /cw -d
d---rws--- 2 root mygroup 6 Nov 11 05:34 /cw
[root@server ~]# touch /cw/ceshi
[root@server ~]# ll /cw/ceshi -d
-rw-r--r-- 1 root mygroup 0 Nov 11 05:36 /cw/ceshi
[root@server ~]#

(4)设置 helen用户对于/sc和/cw目录可以读,写,执行

[root@server ~]# setfacl -m u:helen:rwx /sc
[root@server ~]# setfacl -m u:helen:rwx /cw
[root@server ~]# su -  helen
[helen@server ~]$ ll /sc -d
drwxrws---+ 2 root group 6 Nov 11 05:30 /sc
[helen@server ~]$ ll /cw -d
d---rws---+ 2 root mygroup 19 Nov 11 05:36 /cw
[helen@server ~]$


(5)设置/test目录为公共存储目录对所有用户可以读,写,执行,但用户只能删除属于自己的文  件(t权限)

[root@server ~]# chmod o+t /test
[root@server ~]# ll /test -d
drwxr-xr-t. 146 root root 8192 Oct 30 00:37 /test
[root@server ~]#

(6)在/test/dir里创建的新文件自动属于temp组

[root@server ~]# chown :temp /test/dir
[root@server ~]# chmod g+s /test/dir
[root@server ~]# touch /test/dir/ceshi
[root@server ~]# ll /test/dir/ceshi  -d
-rw-r--r-- 1 root temp 0 Nov 11 06:38 /test/dir/ceshi
[root@server ~]#

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值