基本权限
访问方式
读取:允许查看内容-read r 能够执行ls查看
写入:允许修改内容-write w 能够执行rm/mv/cp/....(一般情况下不允许更改目录名)
可执行 :允许运行和切换-execute x 能够使用cd切换
文本文件:
r:cat less head tail grep
w:vim 可保存
x:可执行
权限适用对象:
所有者:拥有此文件/目录的用户-user u
所属组:拥有此文件/目录的组-group g
其他用户:除所有者,所属组以外的用户-other o
格式:getfacl 文件 查看所属
使用ls -l命令
-ls -ld 文件或目录 (-d 显示当前目录的详细属性)
以-开头 文本文件 -
以d开头 目录 d
以l开头 链接 l
drwxrwxrwx. 2 root root 6 3月 16 09:26 /nsd01/
权限位(10) 硬连接数 属主 属组 大小 最后修改时间 文件/目录名称
设置基本权限(不加-R只能更改当前目录的权限,不改变已经创建子目录的权限)
使用chmod
格式:chmod [-R] 归属关系 + 或 - =权限类别 文档
[root@server0 ~]# mkdir /nsd01
[root@server0 ~]# ls -ld /nsd01/
drwxr-xr-x. 2 root root 6 3月 16 09:26 /nsd01/
[root@server0 ~]# chmod u-w /nsd01/
[root@server0 ~]# ls -ld /nsd01/
dr-xr-xr-x. 2 root root 6 3月 16 09:26 /nsd01/
[root@server0 ~]# chmod g+w /nsd01/
[root@server0 ~]# ls -ld /nsd01/
dr-xrwxr-x. 2 root root 6 3月 16 09:26 /nsd01/
[root@server0 ~]# chmod o=--- /nsd01/
[root@server0 ~]# ls -ld /nsd01/
dr-xrwx---. 2 root root 6 3月 16 09:26 /nsd01/
[root@server0 ~]# chmod u=rwx,g=rwx,o=rwx /nsd01/
[root@server0 ~]# ls -ld /nsd01/
drwxrwxrwx. 2 root root 6 3月 16 09:26 /nsd01/
-R递归修改
[root@server0 ~]# mkdir -p /opt/aass/aa/aa
[root@server0 ~]# ls -ld /opt/aass/aa/aa
drwxr-xr-x. 2 root root 6 3月 16 09:56 /opt/aass/aa/aa
[root@server0 ~]# chmod -R ugo=r /opt/aass/(递归更改权限 包括aass)
[root@server0 ~]# ls -ld /opt/aass/
dr--r--r--. 3 root root 15 3月 16 09:56 /opt/aass/
linux判断用户具备的权限:(Permission denied 权限被拒绝)
1.判断用户所属的身份(角色) 匹配即停止 所属者大于所属组大于其他人 匹配即停止
2.相应权限位的权限
使用chown命令更改所属主或所属组
chown [-R] 属主 文档... (属哪个用户)
chown [-R] :属组 文档...(注意冒号的区别)
chown [-R] 属主:属组 文档...
[root@server0 ~]# mkdir /9527
[root@server0 ~]# ls -ld /9527
drwxr-xr-x. 2 root root 6 3月 16 11:39 /9527
[root@server0 ~]# useradd 9527
[root@server0 ~]# groupadd 007
[root@server0 ~]# chown :007 /9527/
[root@server0 ~]# ls -ld /9527
drwxr-xr-x. 2 root 007 6 3月 16 11:39 /9527
[root@server0 ~]# chown 9527 /9527/
[root@server0 ~]# ls -ld /9527
drwxr-xr-x. 2 9527 007 6 3月 16 11:39 /9527
附加权限
Set GID
附加在属组的x位上
继承所属组权限
属组的权限标识会变为s
适用于目录,Sed GID可以使目录下新增的文档自动设置与父目录相同的属组
格式:chmod g+s 文档... (执行前没有x执行权限会变成大写的S)
[root@server0 ~]# mkdir /nsd007
[root@server0 ~]# chown :007 /nsd007
[root@server0 ~]# mkdir /nsd007/test01
[root@server0 ~]# ls -ld /nsd007/test01
[root@server0 ~]# chmod g+s /nsd007/
[root@server0 ~]# ls -ld /nsd007/
drwxr-sr-x. 3 root 007 19 3月 16 14:18 /nsd007/
[root@server0 ~]# mkdir /nsd007/abc01
[root@server0 ~]# ls -ld /nsd007/abc01
drwxr-sr-x. 2 root 007 6 3月 16 14:19 /nsd007/abc01
[root@server0 ~]# ls -ld /nsd007/test01/
drwxr-xr-x. 2 root root 6 3月 16 14:18 /nsd007/test01/
Set UID
• 附加在属主的 x 位上
– 属主的权限标识会变为 s
-适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限
– 传递Set UID文件所有者身份
[root@server0 ~]# ls /usr/bin/mkdir
/usr/bin/mkdir
[root@server0 ~]# /usr/bin/mkdir /opt/test01
[root@server0 ~]# ls /opt/
rh test01
[root@server0 ~]# cp /usr/bin/mkdir /usr/bin/hahadir
[root@server0 ~]# /usr/bin/hahadir /opt/test02
[root@server0 ~]# ls /opt/
[root@server0 ~]# ls -l /usr/bin/hahadir
-rwxr-xr-x. 1 root root 79712 3月 17 09:41 /usr/bin/hahadir
[root@server0 ~]# chmod u+s /usr/bin/hahadir
[root@server0 ~]# ls -l /usr/bin/hahadir
[root@server0 ~]# su - student
[student@server0 ~]$ /usr/bin/mkdir nsd01
[student@server0 ~]$ ls -l
total 0
drwxrwxr-x. 2 student student 6 Mar 17 09:44 nsd01
[student@server0 ~]$ /usr/bin/hahadir nsd02
[student@server0 ~]$ ls -l
Sticky Bit
• 附加在其他人的 x 位上
– 其他人的权限标识会变为 t
– 适用于开放 w 权限的目录,可以阻止用户滥用 w 写入权限(禁止操作别人的文档)
[root@server0 ~]# mkdir /public
[root@server0 ~]# chmod ugo=rwx /public
[root@server0 ~]# ls -ld /public
[root@server0 ~]# chmod o+t /public
[root@server0 ~]# ls -ld /public
文档归属的局限性
任何人只属于三种角色:属主,属组,其他人
无法实现更精细的控制
acl访问策略
能够对个别用户,个别组设置独立的权限(例:老板的老板娘要看财务的账务,但是不能有更改的权限)
大多数挂载的EXT3/4,XFS文件系统默认已支持
设置acl访问控制策略(特殊访问权限)
使用getfacl,setfacl
getfacl 文档... //查看acl控制列表
setfacl [-R] -m u:用户名:权限类别 文档...
setfacl [-R] -m g:组名:权限类别 文档...
setfacl [-R] -x u:用户名 //文档... 删除指定acl
setfacl [-R] -b 文档 //清空acl权限
[root@server0 ~]# mkdir /nsd00
[root@server0 ~]# chmod o=--- /nsd00
[root@server0 ~]# ls -ld /nsd00
drwxr-x---. 2 root root 6 3月 16 14:50 /nsd00
[root@server0 ~]# su zhuangsuan
[zhuangsuan@server0 root]$ cd /nsd00
bash: cd: /nsd00: 权限不够
[zhuangsuan@server0 root]$ exit
[root@server0 ~]# setfacl -m u:zhuangsuan:rx /nsd00 //添加策略
[root@server0 ~]# su zhuangsuan
[zhuangsuan@server0 root]$ cd /nsd00
[zhuangsuan@server0 nsd00]$ pwd
/nsd00
[root@server0 ~]# setfacl -x u:zhuangsuan:rx /nsd00 //删除策略