查看文件时的详细信息:
d(文件类型) r-xr-x—.(权限) 2 (硬链接次数) root (所属用户) root(所属组) 6(文件大小) Dec 11 15:02(文件的最后一次修改时间) Music(文件名)
权限:rw-r–r-- 每三个为一个小组 ,分别时一下的权限:
属主的权限u 属组的权限g 其他人的权限o
权限分为三种 r w x
读:r 4
写:w 2
执行:x 1
在修改权限时也可直接 输入数字进行更改 如一下 分别为数字对应权限
000 0 —
001 1 --x
010 2 -w-
011 3 -wx
100 4 r–
101 5 r-x
110 6 rw-
111 7 rwx
rwxr-xr-x:755
对于目录和普通文件 r w x 的含义
修改权限 1. chmod 777 文件名
chmod 6 A.txt (o)
chmod 66 A.txt (go)
chmod 777 A.txt (ugo)
2. [root@localhost ~]# chmod ugo=rwx A.txt
chmod u+w,o+x,g+r A.txt
chmod u/g/o/ +/=/- r /w/x 文件名 (/中的分别随机组合进行修改权限) 加减只能对自己本身存在的权限有影响,等号等于覆盖之前的文件权限c
chown 修改 所属用户
chown 用户名 文件名
chown 用户名**:组名 文件名
chown 用户名.**组名 文件名
chown **.**组名 文件名
chown : 组名 文件名
chgrp 只修改所属组
chgrp 组名 文件名
对目录和文件进行 r w x 的指令
特殊权限
u+s
suid:让进程不再属于它的发起者,而是属于程序文件本身。(suid只对二进制文件有效;调用者对该文件有执行权;在执行过程中,调用者会暂时获得该文件的所有者权限;该权限只在程序执行的过程中有效)
查找passwd的程序文件位置:which passwd
chmod u+s /usr/bin/passwd
先找到查看命令的程序文件位置,which cat
查看文本文件如果说 要求你执行的某种命令后产生的变化为统一的,则对该指令进行查看 例如:实现一个功能,当使用任何用户创建目录的时候,它的所属者为root。则对其指令进行
)
**sgid:g+s,**对于普通文件,以组的权限执行修改/usr/bin/touch的g+s,touch文件后文件所属组为root(作用于普通文件时,和suid类似);对于目录文件,目录的属组是谁,在目录下创建的文件的属组是目录的属组。
例如:.创建一个目录为/exercise,在该目录下创建一个目录为red,实现一个功能:任何用户在red目录下创建文件的时候的所属组为redhat。
[root@localhost /]# mkdir /exercise
[root@localhost /]# mkdir /exercise/red
[root@localhost /]# chgrp redhat /exercise/red
[root@localhost /]# ll -d /exercise/red
drwxr-xr-x. 2 root redhat 6 Jan 26 16:52 /exercise/red
[root@localhost /]# chmod g+s /exercise/red/
[root@localhost /]# su xiaohong
[xiaohong@localhost /]$ touch /exercise/red/c
[xiaohong@localhost /]$ ll /exercise/red/
total 0
-rw-rw-r–. 1 xiaohong root 0 Jan 26 16:59 a
-rw-rw-r–. 1 xiaohong root 0 Jan 26 17:02 b
-rw-rw-r–. 1 xiaohong redhat 0 Jan 26 17:04 c
sticky,o+t:不能够删除其他用户在同目录里创建的文件,也无法修改其他用户创建的文件的内容,可删除修改自己创建的文件
例如:.在exercise目录下创建一个目录为nochange,任何普通用户都只能删除自己在该目录下创建的文件,无法删除其他用户创建的文件。
mkdir /exercise/nochange
[root@localhost /]# chmod o+t /exercise/nochange/
[root@localhost /]# ll -d /exercise/nochange/
drwxr-xr-t. 2 root root 6 Jan 26 17:05 /exercise/nochange/
[root@localhost /]# chmod o+w /exercise/nochange/
[root@localhost /]# su xiaohong
[xiaohong@localhost /]$ touch /exercise/nochange/a
[xiaohong@localhost /]$ exit
exit
[root@localhost /]# su redhat
[redhat@localhost /]$ touch /exercise/nochange/b
[root@localhost /]# su redhat
[redhat@localhost /]$ rm -f /exercise/nochange/b
[redhat@localhost /]$ rm -f /exercise/nochange/a
rm: cannot remove ‘/exercise/nochange/a’: Operation not permitted
[redhat@localhost /]$ ll /exercise/nochange/
total 0
-rw-rw-r–. 1 xiaohong xiaohong 0 Jan 26 17:08 a
**o+t 测试方法**
1.创建目录/test
2.添加三个用户
3.让每一个用户在目录里面写文件
4.用户3删除1和2用户的文件
5.目录 o+t
6.重复3、4步操作,验证是否能够删除其他用户在同目录里创建的文件
(如果说 要求你执行的某种命令后产生的变化为统一的,则对该指令进行查看 例如:实现一个功能,当使用任何用户创建目录的时候,它的所属者为root。则对其指令进行
)
ACL可以对某个文件设置该文件具体的某些用户的权限,意思就是通过ACL可以对一个文件权限做扩展,可以不同的用户对某个文件有不同的权限。
获取文件的访问控制信息:getfacl 文件名
sefacl 设置文件的acl
修改文件的acl:setfacl -m u:用户名:权限 文件名/目录名
setfacl -m g:组名:权限 文件名
setfacl -b 文件名 (清空acl 权限)
setfacl -x g:组名 文件名
查看权限掩码:umask 0022
当前面第一位为2和4权限就叫强制位,1的权限就是冒险位,2代表GID,4代表的是uid,1代表的是sticky
权限掩码:控制创建文件的权限
查看权限掩码:umask
修改权限掩码:umask 022
普通文件的权限属性:666
目录文件的权限属性:777