1.文件和目录属性的查看
ls -l filename
ls -ld directoryname
- rw-r--r-- 1 root root 0 Apr 2 22:25 file
(1) - 表示文件的类型
-表示普通文件 d表示目录 s表示套接字 l表示软连接 p表示管道 c表示字符设备 b表示块设备
(2)rw-r--r--表示文件所有人,文件所有人所在组,其他人对文件的权限
r表示read读权限 w表示write写权限 x对文件来说表示能执行文件中的内容,对目录来说表示进入文件
上边的例子中表示文件的所有者对文件有读写权限,所在组对文件有读权限,其他人对文件有读权限
(3)1 表示该文件被系统记录的次数 目录中子目录的个数
(4)root root表示文件(目录)的拥有人和所在组
(5)0 表示文件(目录)的大小
(6)Apr 2 22:25 表示文件(目录)最后一次被更改的时间
(7)file 表示文件(目录)的名称
2.文件用户和所在组的更改
chown 用户名称 文件
chgrp 组名称 文件
chown -R 用户名称 目录 更改目录本身以及目录中子目录的所有人
chgrp -R 组名称 目录 更改目录本身以及目录中子目录的所有组
在这个实验中,可以用watch监视语句来监视,这样看的更加清楚文件的用户和组名
watch -n 1 ls -l file
3.权限的识别
ls -l file 的结果中第2--10字符为文件权限
权限种类 (1)r 对文件来说是查看文件内容,对目录来说是查看目录中的文件名称
(2)w 对文件来说是修改文件内容,对目录来说是是否可以删除目录中的子文件或者子目录
(3)x 对文件来说是是否可以执行文件中的程序,对目录来说是是否可以进入目录
修改文件活目录的权限
chmod ugo+-=rwx
r位是2^2=4 w位是2^1=2 x位是2^0=1 则rwx可表示为7 rwxrwxrwx满权限即表示为777
4.文件的默认权限
我们发现,新建一个file文件后,ls -l file后file往往不是满权限,这是因为系统对文件和目录有预留的权限值
umask 显示系统预留权限值
umask 077 临时修改系统的预留权限值
如果要永久的修改系统的权限值,则要编辑/etc/bash(超级用户是73行,普通用户是71行)文件和/etc/profile(超级用 户是62行,普通用户是60行)文件,修改后要刷新系统配置 ,执行source /etc.bash和source /etc/profile
5.特殊权限
(1)强制位,只针对目录,o+t表明这个目录中的文件只能被文件拥有者删除
chmod o+t 目录名称 或者chmod 1777 目录名称
(2)粘制位:针对目录,在目录中建立的文件都归属到该目录所在组
针对文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的
chmod g+s 目录或文件名称
chmod 2777 目录或文件名称
(3)冒险位:针对文件,表明文件是以文件所有人身份执行的,与是谁发起的无关
chmod u+s 文件名称
chmod 4777 文件名称
6.权限列表
acl 制定用户对特定的文件拥有特殊的权利
当开启权限列表以后,ls -l 看到的文件权限是不完全准确的,这时要用个getfacl来查看文件的完整权限
setfacl -m u:student:rwx file 设定student用户对文件有满权限
setfacl -m g:student:rw file 设定student组对文件有读写权限
setfacl -x u:student file 在权限列表中删除student用户的信息
setfacl -x g:student file 在权限列表中删除student组的信息
setfacl -b file 关闭权限列表
当设定facl列表后,如果用chmod缩小文件的权限,则mask值会发生改变
effective 位表示该用户或者组的有效权限,前边的权限不是正确的
7.acl默认权限
当对目录设定普通的权限列表后,是不能取定特定用户对在目录中新建的文件由指定权限的,如果需要权限自动添加到 新建文件上那么要设定目录的默认权限