文件权限管理

文件权限存在的意义

对于文件权限的设定是系统最底层的,安全设定方法之一。同时确保了文件可以被可用的用户进行相应的操作。

文件权限的查看命令

ls   -l     file 
ls   -ld    dir
ll          file
ll    -d     dir

文件权限的读取

    - | rw-rw-r-- |   1  | kiosk | kiosk | 0 |  JuL 21 09:18 | file 
- [1]     [2]        [3]     [4]    [5]   [6]       [7]         [8]

[1] 文件类型

-空文件,或者文本
d目录
l软连接(快捷方式)
ssocket 套接字
bblock 块设备
c字符设备

[2]文件的权限
rw- | rw- |r–
1 2 3
1:【u】文件的所有人能对文件进行的操作
2:【g】文件的所有组能对文件进行的操作
3:【o】其他人能对文件进行什么操作
[3] 对文件来说:指文件硬链接的个数(文件内容在数据区被记录的次数)
对目录来说:指目录中子目录的个数
[4] 指文件的所有人的名称
[5] 指文件所有组
[6] 对文件来说:指文件的大小
对目录来说:指目录中子文件的元数据(matedate可以理解为文件的属性)
[7] 指文件内容最后一次被修改的时间
[8] 文件或目录的名称

如何改变文件的所有人和所有组

chown (改变用户或者改变用户和组)| chgrp(仅仅只改变组)

chown           username         file|dir      ##改变相应文件或目录的用户名为username
chown           username:group   file|dir      ##改变相应文件或目录的用户名和组为username,group
chown    -R     username:group   dir           ##不仅改变目录本身的user和group,同时改变该目录下子目录的user和group 
chgrp   group   file|dir
chgrp    -R     group   dir     

用超级用户创建文件可以看到,文件的所有人和所有组都为root

在这里插入图片描述
chown tom file 改变文件所有人为tom

在这里插入图片描述
chgrp tom file 改变文件所有组为tom
在这里插入图片描述
在root用户下建立递归目录1,并将file文件移动到该目录下,分别用 chown -R ,chage -R 命令改变该目录下的所有人和所有组。
在这里插入图片描述
chown可以同时递归改变所有人,所有组
在这里插入图片描述

在这里插入图片描述
如何改变文件权限

1.对权限的理解

r对文件来说:指是否可以查看文件的内容 —>cat file 对目录来说:指是否可以查看目录中有什么子目录或者子文件 ---->ls dir
w对文件来说:指是否可以对文件内容进行编辑 对目录来说:指是否可以对目录中的子目录或子文件的元数据进行更改
x对文件来说:指是否可以通过文件名称调用文件内记录的程序 对目录来说:指是否可以进入目录

2.更改权限的方式
监控权限的改变

 watch " ls -l   file|dir"

第一种:

 chmod  <u|g|o> <+|-|=> <r|w|x>  file|dir

例如

 chmod   u+x    /mnt/file1
  chmod   g-r     /mnt/file2
  chmod   ug-r   /mnt/file3
  chmod   u-r,g+x /mnt/file4
  chmod  o=r-x  /mnt/file5
  chmod   -r  /mntt/file6   ##给该文件所有位都减 r 权限,等价于 chmod a-r /mnt/file6

第二种:
r=4 w=2 x=1 -=0
r-x | r-- | --x
5 4 1

chmod  541 /mnt/file1 

未改变权限前的文件

在这里插入图片描述
按照上述命令更改文件权限,chmod 777 1/file 改变目录1中的file1文件权限为公共

在这里插入图片描述

chmod 333 1/file1等价于file1中所有人权限-r

在这里插入图片描述
chmod u-w,u+r 1/file1给文件file1所有人增加读权限,去掉写权限。

在这里插入图片描述
umask的使用

系统建立文件或目录会默认设定该文件或目录的权限,权限的预留保证了系统的安全与开放,不同的系统默认的权限不同,系统建立的目录的权限应该为777-umask的权限值,文件的权限值为777-umask-111,这并不是数字的加减(umask数值越大系统的安全性越高)

如下图所示:系统默认umask值为022,所以新建的目录权限为755(rwxr-xr-x)新建文件权限为644(r-wr–r--).
在这里插入图片描述

umask   077 ##临时设定系统的umask值为077,在临时设定系统的umask为077后700,新建立的文件权限为600(不是数字的加减)。

在这里插入图片描述
注意:umask只能对当时打开的进程进行设定,属于临时设定,打开其他的shell则设定失效

永久更改umask(更改配置文件)

1.更改系统的环境配置文件 /etc/profile

59 if [ $UID -gt 199 ] && [ “id -gn” = “id -u n” ]; then ##如果uid大于(-gt)199,并且(&&)gid=uid
60 umask 002 ##umask为022,普通用户的umask
61 else
62 umask 022 ##否则umask为022.root用户的umask

在这里插入图片描述
更改shell的配置文件 /etc/bashrc
在这里插入图片描述
2 . 让更改立即生效

source /etc/profile 
 source /etc/bashrc

注意:当建立一个文件或目录后,在永久更改umask,则之前和之后建立的文件或目录的权限仍为之前系统默认权限,因为在打开这个shell时已经读取过修改之前的文件。在使用source命令之后,之前和之后建立的文件和目录权限都更改为配置文件所设定的。
如图所示:更改配置文件使root用户系统umask数值为012
在这里插入图片描述

3.特殊权限
sticky ##粘制位
作用:只对目录生效,当一个目录上有sticky权限时,在这个目录下的文件只能被文件的所有者删除,其他的用户不能删除。

设定方式:chmod  o+t dir  
                  chmod  1xxx dir 

如下图:建立公共目录(所有用户可以对该目录进行读写删除操作),用不同的身份在/1目录下建立文件,并在su用户身份下删除在root 用户身份下建立的/1/1(观察到可以删除)。
在这里插入图片描述

如下图所示:当给公共目录加上sticky权限后,可以发现只有文件的所有者才可以删除自己建立的文件,su用户不能删除root用户在/1下建立的文件。

在这里插入图片描述

注意:给公共目录加上sticky位后,其他用户无法在该目录下对别人所建立的文件进行删除操作(但可以进行读写操作),这并不是权限不允许,而是这个请求被拒绝。

sgid ##强制位
作用
对文件:只针对二进制可执行文件,当文件上有sgid权限时,任何人执行此文件生成的进程都属于文件的组
对目录:当目录上有sgid权限时,任何人在该目录下建立的文件都属于目录的所有组

设定方式:chmod g+s file|dir  
                  chmod 2xxx  file|dir 

如图所示:监控执行cat命令的所有人,所有组,在没有给文件添加sgid权限之前,su用户执行此文件时生成的进程归属于su用户的所有组。
在这里插入图片描述

watch ' ps   ax   -o  user,group,comm | grep cat 

如图所示 :在给文件添加sgid之后,su用户执行该文件时生成的进程归属于root用户的所有组。

在这里插入图片描述

suid ##冒险位
作用 :只针对二进程可执行文件,当文件上有suid权限时,任何人执行该文件所产生的进程都属于文件的所有人

设定方式:chmod  u+s file  
                  chmod  4xxx file

注解:chmod 6xxx file 同时具有suid和sgid功能
s[g]s[u]t[o] 241

如图所示:在上述操作执行后,给该文件加上suid功能,可以观察到su用户在执行该文件时,其所有人为root

在这里插入图片描述

facl 权限列表
1.作用 让特定的用户对特定的文件拥有特定的文件拥有特定的权力
2.facl列表内容
- rw - rwxr - - + 1 root root 0 Jul 21 15:12 file
^
当查看文件权限时,若+存在表示某用户对该文件拥有特殊权限
getfcal filename 查看facl开启的文件权限显示

file : file文件的名称
owner : root文件的所有者
group :root文件的所有组
user::rw-文件所有人的权限
user:su:rwx指定用户对该文件的权限
mask::rwxmask能赋予用户的最大权限
group::rw-文件所有组的权限
other::r–其他人的权限

3.对facl列表的管理(上述)

  getfacl  filename 查看facl开启的文件权限
setfacl  -m u:username:rwx filename  ##指定用户对该文件拥有rwx权限
setfacl  -m g:group:rw filename  ##设定group组成员对该文件具有rw权限
setfacl  -x u:username  filename  ##从facl列表中删除用户setfacl  -x g:group  filename  ##从facl列表中删除用户组
setfacl  -b   filename   ##关闭该文件的facl列表

如图所示:在上述图片的基础上,指定用户su对该文件拥有rwx权限,设定su的组成员具有rw权限

在这里插入图片描述

如图所示:从该文件的facl列表中删除用户su,删除用户组su
在这里插入图片描述

4.mask值设定
在权限列表中,mask表示能生效的最大权利值

chmod g-w filename 

当用chmod减小文件权限时,mask的值会发生改变
如果要恢复mask值
在这里插入图片描述

setfacl -m m:rwx:filename 

在这里插入图片描述
5.facl默认权限的设定
facl权限只针对设定完成之后建立的目录生效,已经存在的是不会继承默认设定

setfacl -m d:u:username:rw /1 ##设定该用户时,目录/1下建立的所有文件权限都为rw,已经存在的文件不会默认设定

如下图所示:设定在su用户下,目录/1下建立文件,文件的权限都为rw(可以观察到之前建立的文件file1的权限没有发生改变)
在这里插入图片描述

在这里插入图片描述

 stefacl  -k  /1 ##取消默认设定

如图:取消默认设定

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值