Unit5 linux文件、命令的权限操作
####################################################
一,文件属性的查看
####################################################
命令:
ls -l file
- | rw-rw-r-- | 1 | kiosk | kiosk | 948 | Jan 4 18:47 | file |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
1->文件类型
-:普通文件
d:目录
c:字符设备
s:套接文件
p:管道
b : 块设备
2->文件读写权限
rw- | rw- | r-- |
u | g | o |
拥有者 | 组 | 其他人 |
其中,r表示读,w表示写,x表示执行
他们分别可以用4,2,1表示,上面的也可以写作664
r
对文件:可以查看文件的字符(内容)
对目录:可以查看目录中文件/目录的信息
w
对文件:可以更改文件内的字符
对目录:在目录中增删改查
x
对文件:可以运行文件中记录的程序动作
对目录:可以进入目录
chmod u+x,g+x file //u与g添加执行权限
chmod 757 file //o添加写与执行权限
3->
对文件:文件内容被系统记录到的次数
ln file file1 ##链接,改变系统记录次数,可以改变这个次数
对目录:拥有个数,仅仅记录二级子目录个数
在file1中建立了file11,所以文件属性的第三项从2变为了3
ls -a test
//显示隐藏的目录,隐藏的也在记录,所以初始目录中这个值,test中数值为3
4->文件的拥有者
5->文件的所属组
6->文件的内容大小
7->文件最后一次被修改的时间
8->文件的名字
文件拥有者和所属组的改变
chown username file|dir
chgrp groupname file|dir
chown username.groupname file|dir 同时改变拥有者和组
chown -R username file|dir (递归)
chgrp -R groupname file|dir (递归)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
mkdir /westos
chmod 777 /westos
westos 中建立两个文件进行测试
可以避免访问文件时受到权限的制约
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
####################################################
二,系统默认权限的设定
####################################################
一般来说新建文件的满权限是666,而目录是777
而系统在新建文件或目录会去掉一些权限,
Umask指令可以查看用户删减权限值,普通用户的值为002,超级用户的值为022
普通用户新建 666/777-002
文件 664
目录 775
超级用户新建 666/777-022
文件 644
目录 755
注意:修改umask是按位相减,比如
666-111=666
666-007=660
而初始删减值可以更改,
1.临时设定
umask xxx
修改该系统在建立文件时需要减去的权限数值,仅仅在当前shell生效
2.永久设定
vim /etc/bashrc //70-74
70 if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; th en
71 umask 002
72 else
73 umask 022
74 fi
vim /etc/profile //59-63
59 if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
60 umask 002
61 else
62 umask 022
63 fi
两个文件的umask值必须保持一致
然后再重新加载配置文件,才能让设定生效
source /etc/bashrc
source /etc/profile
####################################################
三,文件的访问控制(acl列表)
####################################################
1.acl定义
acl=access control
指定特殊的用户对特殊的文件有特殊的权限,就是除了当前的用户,还可以给某些用户一些权限
drwx------+ 19 kiosk kiosk 4096 Dec 31 14:25 /home/kiosk/
'+'表示开启了acl访问控制列表,此时,ls -l或者ll不能正确显示权限
getfacl file 可以正确的查看所有的用户权限
2.设定acl列表
-m 表示设定cal权限,
setfacl -m u:student:rwx file //student标示新给的特殊用户,赋予rwx的权力
删除列表中的用户或组
setfacl -x u:student file
关闭列表
setfacl -b file
acl mask
mask用来标示实际能够赋予用户最大权限,
当mask设置为rw_,即使赋予student的权限为rwx,他也不能执行x的权限
3.特殊权限位
suid
表示冒险位,只针对二进制可执行文件
文件内记录的程序产生的进程的拥有者为文件的拥有者
和进程的发起人无关
在root用户建立file1,他的u和g都是root
而在student用户中建立file2,u和g都是student
对于file3文件,加入特殊权限s或者4664的touch
chmod u+s /usr/bin/touch
ll /usr/bin/touch ##查看显示为红色,表示修改成功
结果如下:
此时file3就是u为root,与进程的发起人student无关
2.sgid //强制位 (在一个777文件夹内执行)
对文件:
只针对二进制可执行文件,
任何人运行二进制文件程序时程序产生的进程的所属组都是文件的所有组
和程序发起人组的身份无关
和冒险位的操作一致,将会改变新建文件的所属组,和发起人无关
对目录:
当目录有sgid权限后,目录中新建的所有文件的所有组
都自动归属到目录的所有组之中,和文件建立者所在的组无关
chmod g+s /dir
对于目录增加强制位,可以使新建立的目录与发起人无关
对目录添加强制位后,会显示为蓝色
ll -d /westos/dir
3.sticky表示粘制位
t权限:
只针对于目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除
设定方式:
chmod o+t direcotry
同时t=1也可以表示为1777
这时,该目录会变成绿色
file3的拥有者是root,此时student用户不能删除file3文件