Linux-------文件读、写、可执行及特殊权限的管理
一、文件属性的查看
1.1 查看文件命令
ls -l filename
1.2 文件属性
- rw-r -r-- 1 root root 0 Oct 9 09:34 file
[1] [2] [3] [4] [5] [6] [7] [8]
相关下标数字解释:
[1] #文件类型 : - ------- > 普通文件
d ------- > 目录
s ------- > socket套接字
l ------- > 软链接 /快捷方式
p ------- > 管道
c ------- > 字符设备
b ------- > 块设备 ,用sdb文件来管理你的有盘u盘
[2] #读写权限
rw-|rw-|r--
@ $ *
@ #文件拥有者对文件能做的动作
$ #文件所在组的组成员能对文件做的动作
* #其他人对与文件能做的动作
[3] "1"
对文件:表示文件内容被系统记录的次数
对目录:表示目录中文件属性的字节数
[4] "root"表示文件所有人
[5] "root"表示文件所有组
[6] "0"表示文件内容的大小
[7] "Oct 9 09:34"表示文件最后一次被修改的时间
[8] "file"表示文件名字
1.3 查看目录命令
ls -ld directoy
1.4 目录属性
d rwxr-xr-x 3 kiosk kiosk 33 Aug 27 09:47 directory
[1] [2] [3] [4] [5] [6] [7] [8]
[1] ##类型(同文件)
[2] ##权限
[3] ##子目录个数
[4] ##目录拥有者
[5] ##目录所在组
[6] ##目录中内容的属性的大小
[7] ##目录中文件增加或减少或被更名的时间
[8] ##目录名称
二、文件所有人所有组的管理
2.1文件用户组的更改
#超级用户可用
chown 用户名称 文件 ##更改文件所有人
chgrp 组名称 文件 ##更改文件所有组
chown -R 用户 目录 ##更改目录本身以及目录中的子文件的所有人
chgrp -R 组名 目录 ##更改目录本身以及目录中的子文件的所有组
chown student:xixi /mnt/file 同时更改file的用户和组的名称
2.2 权限的识别
ls -l 中2-10字符为文件权限
rwx r-x r-x
用户权限(u) 组成员权限(g) 其他用户权限(o)
u优先匹配,g次优先,o当u,g不匹配时匹配
2.3 权限种类
r
r权限针对文件,表示可以查看文件内容
r权限针对目录,表示可以ls 查看目录中存在的文件名称
w
w权限针对文件,表示可以更改文件的内容
w权限针对目录,表示是否可以删除目录中的子文件或者新建子目录
x
x权限对于文件,表示是否可以开启文件当中记录的程序
x权限对于目录,表示是否可以进入目录中
文件:r-可读(cat) w-可写(vim) x-可以执行里边的内容(.sh)
目录:r-可看(ls) w-可修改(rm | touch | mkdir) x-可进入(cd)
注:一般给予目录读权限时,也将会给其执行权限,属于“套餐”组合
2.4 修改权限
chmod ugo+-=rwx ##改权限
u=rwx=7 |g=rwx=7|o=rwx=7
421
u=rw-=6 g=r--=4 o=r--=4 644
r=4tom
w=2
x=1
-=0
7=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x,0=---
下面展示部分命令截图chown username file|dir 表示更改文件的所有人
chown username.groupname file|dir 表示更改所有人所有组
chown -R username dir 表示更改目录本身及里面所有内容的所有人
chgrp -R groupname dir 表示更改目录本身及里面所有内容的所有组
注:R表示递归
监控命令:watch -n 1 ls -lR /mnt
chmod u-x,g-w file1 表示file1拥有者去掉x权,file1拥有组去掉w权限
chmod ugo-r file2 表示file2的所有人去掉r权限
chmod ug+x,o-r file1 表示file1用户和组添加x权限,其他人去掉r权限
注:-R表递归,可用于修改整个目录中文件的权限
数字方式修改该文件权限
三、系统默认权限的设定
从系统存在角度来说,开放权力越大,系统存在意义越高
从系统安全角度来说,开放权力越少,系统安全性越高
系统设定新建文件或目录会去掉一些权限
设定方式
umask ##查看系统保留权限默认为022
umask 077 ##修改该系统保留权限为077,此设定为临时设定,只当前shell中生效
永久设定方式:
vim /etc/bashrc ##shell
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id-un`" ]; then
71 umask 002 ##普通用户umask
72 else
73 umask077 ##超级用户umask
74 fi
vim /etc/profile ##系统
59 if [ $UID -gt 199 ] && ["`id -gn`" = "`id -un`" ]; then
60 umask 002 ##普通用户umask
61 else
62 umask077 ##超级用户umask
63 fi
以上两个文件umask设定值必须保持一致
source /etc/bashrc #shell
source /etc/profile #系统
让设定立即生效
注:建立目录权限与umask值相加为777,建立目录权限与建立文件的权限值相减为111
四、文件的访问控制(acl列表)
1.acl定义
acl=access control 表示指定特殊用户对特殊文件有特殊权限
eg:drwxrwx---+ 2 root root 17 Jul 18 01:39 /westos/
“+”表示/westos目录上有权限列表
getfacl /westos/
# file: westos/ ##文件名称
# owner: root ##文件所有人
# group: root ##文件所有组
user::rwx ##拥有者权限
user:student:rwx ##特殊用户权限
group::--- ##组权限
mask::rwx ##权限掩码
other::--- ##其他人权限
注意:当文件上有权限列表时,ls -l能看到的权限是假的
2.设定acl列表
2.1 设定
setfacl -m <u|g>:<username|groupname>:权限 文件|目录
-m 表示设定
u 表示用户
g 表示组
2.2 删除列表中的用户或者组
setfacl -x <u|g>:<username|groupname> 文件|目录
2.3 关闭列表
setfacl -b文件|目录
#acl mask值
1.mask 权限掩码<--->权限伐值
mask用来标实能够赋予用户最大权限
当用chmod改变文件普通权限时可能会被破坏
修复:setfacl -m m:rwx文件名称
#acl 默认权限
当我们需求某个目录对于student可写,并且目录中新建的子目录对student也可写,就要设定默认权限
注意: 默认权限只对目录中新建立的文件或者目录生效,对已经建立的文件无效,对于目录本身也无效
setfacl -m d:u:student:rwx /westos
五、特殊权限
(umask查看权限时最前面的“0”所代表的含义)
1.suid ##冒险位
注:冒险位只针对二进制可执行文件,文件内记录的程序产生的进程的所有人为文件所有人,和进程发起人身份无关
设定方式:
chmod u+s file
suid=4
chmod 4xxx file
2.sgid ##强制位
对文件:只针对二进制可执行文件,任何人运行二进制文件程序时程序产生的进程的所有组都是文件的所有组,和程序发起人组的身份无关
对目录:当目录有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关
设定方式:
chmod g+s file|dir
sgid=2
chmod 2xxx file|dir
3.sticky ##粘制位
t权限:只针对与目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除
设定方式:
chmod o+t direcotry
t=1
chmod 1xxx direcotry