当前位置:   article > 正文

文件权限管理,特殊权限及ACL权限_umask770

umask770

文件权限的读取
用ls查看目录或文件信息。
格式:-|rw-r–r--| 1 | root |root| 0 | Mar 30 21:17 |5.unit5
【1】【2】 【3】 【4】【5】【6】 【7】 【8】

1.文件类型
文件的类型:-:空文件或文本
d:目录
l:软连接(快捷方式)
c:字符设备
s:socket套接字符
b:block块设备
2.文件的权限
rw-|r–|r–
(1) (2) (3)
(1) [u]root对文件进行的操作(root在所有文件中的操作都是畅通无阻的,即使设置权限也没有作用)
(2)[g]文件所有组对文件能做什么操作
(3)[o]其他人能对文件做什么操作

3.文件个数或子目录个数
对文件:文件硬连接个数(文件内容被记录的次数)
对目录:目录中子目录的概述
4.文件所有人
5.文件所有组
6.文件大小或目录中元数据
对文件:文件大小
对目录:目录中子文件元数据(matedate可以理解为文件的属性)
7.文件的内容被修改的时间
8.文件的名称

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

chown | chgrp
chown		username	file|dir  	改变文件或目录的所有人
chown		user:group	file|dir   	改变文件或目录的所有人和所有组
chown	-R	user:group	file|dir	递归改变目录或文件的所有人和所有组

chgrp		group		file|dir 	 改变文件或目录的所有组
chgrp	-R	group	    dir|dir   	 递归改变文件或目录的所有组
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

用超级用户创建文件file,可以看到文件的所有人和所有组皆为root。在这里插入图片描述
chown student file 改变文件file的所有人为student
在这里插入图片描述

chgrp student file 改变文件file的所有组为student

在这里插入图片描述

在root用户下建立递归目录1,并将建立的文件file{1,2,3}移动至该目录中,随后用chgrp -R student 1与chown -R student 1改变该目录下所有目录与文件的所有人和所有组。等价于 chown -R
student:student 1

在这里插入图片描述

同时递归改变目录的所有人和所有组为root

在这里插入图片描述如何改变文件的权限
1.对权限的理解
r
对文件:是否可以查看文件中的内容 —>cat file
对目录:是否可以查看目录中有什么子文件或者子目录
w
对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或子文件的元数据进行修改
x
对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录

2.更改方式
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 -r /mnt/file5
chmod o=r-x /mnt/file6

r=4(给r权限为数字4) w=2(给w权限为数字2) x=1(给操作权限为数字1)
若不规定给ugo那位加命令,则全部加。eg:chmod +r /mnt/linux 给该文件所有为都加r权限,等价与:chmod a+r /mnt/linux

未改变权限之前的文件在这里插入图片描述chmod 777 1/file1 改变目录1中的文件file的权限为公共在这里插入图片描述chmod -r 1/file 去除file1中所有人读的权限 等价于chmod 333 1/file在这里插入图片描述
chmod u+r,u-w 1/file1 给文件file1使用者添加都的权限,削减其写的权限在这里插入图片描述
chmod 660 1/file1 给文件file1使用者和组用户读写的权限,不给其他人任何权限在这里插入图片描述
umask
umask 系统建立文件是默认保留的权力
系统建立的文件权限应该为777-umask的权限,这并不是数字加减。如下图所示,系统的默认umask为022,所以新建目录的权限为755(rwxr-xr-x)

在这里插入图片描述
umask 770 ##临时设定系统umask为770
在临时设定系统umask为770后,新建目录dir的权限为007(------rwx)
在这里插入图片描述

永久更改umask
vim /etc/profile ##系统配置文件
59if [ $ UID -gt 199 ] && ["‘id-gn’"="‘id-un’"];then
60 umask 002 ##普通用户的umask
61else
62 umask 077 ##超级用户的umask
63fi

修改/etc/profile中普通用户与超级用户的umask都设置为077

在这里插入图片描述

vim /etc/bashrc ##系统配置文件
70 if [ $ UID -gt 199 ] && ["‘id-gn’"="‘id-un’"];then
71 umask 002 ##普通用户的umask
72else
73 umask 077 ##超级用户的umask
74fi

修改/etc/bashrc中普通用户与超级用户的umask都设置为077

在这里插入图片描述

source /etc/profile #让更改立即生效
source /etc/bashrc
修改完系统配置文件后运行source /etc/profile 与source /etc/bashrc让配置文件立刻生效,然后建立文件,建立文件的权限为700(rwx------)
在这里插入图片描述
特殊权限
1.sticky ##粘制位
作用:
只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者所删除,其他用户无法删除
设定方式:
chmod o+t dir
chmod 1xxx dir

给公共目录dir设定sticky在这里插入图片描述
所有的用户都可以在该目录下进行读写操作。在这里插入图片描述虽然该文件是公共文件,但加了sticky位后,其他用户无法在该目录下对别人创建的文件进行的操作。并不是权限不允许,而是这个请求会被拒绝,这就是sticky的作用。在这里插入图片描述
2.sgid ##强制位
作用
对文件:只针对与二进制可执行文件,当文件上有sgid时任何人执行此文件生成的进程都属于文件的组
对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组

设定方式:
chmod g+s file|dir
chmod 2xxx file|dir
给监视命令添加sgid后,当使用者tom调用watch命令时,可以看到tom的组身份上升为root。
在这里插入图片描述
3.suid ##冒险位
只针对与二进制可执行文件
当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
先去除刚刚给watch命令添加的sgid,然后添加suid给watch命令,当普通用户tom再次运行watch命令时,可以看到,tom的使用者权限上升为root。在这里插入图片描述

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

注:chmod 6xxx file同时具有23的效果。
ack权限列表
1.作用
让特定的用户对特定的文件具有特定权限。
2.acl
acl列表查看

-rw-rwxr--+ 1 root root 0 Jul 21 15:45 file
	  ^
  • 1
  • 2

查看要加入特定权限的文件,若+号存在,表示acl已经开启,加号不存在,则acl没有开启

getfacl 获取某个文件/目录的acl设置选择项。
setfacl 设置牧歌文件/目录的adl规范。

#file: file 文件的名字
#owner: root 此文件的拥有者
#group: root 此文件的所属用户组
user::rw- 使用者列表栏为空:文件拥有者的权限
user:kiosk:rwx 针对用户kiosk权限设置为rwx
group::r-- 针对文件用户组的权限仅有r
mask::rwx 此文件默认的有效权限
other::r-- 其他人拥有的权限

setfacl -m g:用户组名:权限 file|目录 设置单一用户组的权限设置
setfacl -m u: m:权限 file|dir

添加用户tom对文件1/file的权限为7(wrx)在这里插入图片描述为文件file添加用户组tom,权限为6。在这里插入图片描述删除之前添加的acl参数并递归添加用户tom,设置权限为4(r–)在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/191999
推荐阅读
相关标签
  

闽ICP备14008679号