1.基本权限与归属

1)基本权限

读取:允许查看内容-read               r

写入:允许修改内容-write              w

可执行:允许运行和切换-excute     x

对于文本文件:

r读取权限:cat、less、grep、head、tail

w写入权限:vim、> 、 >>

x可执行权限:Shell与Python


对于目录:

r读取权限:ls命令查看目录内容

w写入权限:能够创建、删除、修改等目录的内容

x 执行权限:能够cd切换到此目录下(进入此目录)


2)归属关系

所有者(属主):拥有此文件/目录的用户-user   u

所属组(属组):拥有此文件/目录的组-group    g

其他人:除所有者、所属组以外的用户-other   o

执行 ls -l或者ls -ld 命令查看

以-开头:文本文件   例子:-rwxr-xr-x

以d开头:目录      例子:drwxr-xr-x

以l开头:快捷方式  例子:lrwxr-xr-x

3)Linux中判断用户具备的权限:

1.首先查看该用户或者组是否有ACL策略

2.查看用户,对于该数据所处的身份,顺序所有者>所属组>其他人,原则是匹配即停止

3.查看相应身份的权限位

2.修改数据的权限chmod

chmod   u-w    /nsd10      #所有者去掉w权限

chmod   u+w  /nsd10        #所有者加上w权限

chmod   g+w   /nsd10       #所属组加上w权限

chmod    g=r    /nsd10      #所属组重新定义只有r权限

chmod    a=rwx    /nsd10   #a表示所有人

chmod  u=---,g=rx,o=rwx    /nsd10

mkdir   -p   /opt/aa/bb/cc

chmod  -R   o=---   /opt/aa  # -R:递归修改权限

3.chown修改归属关系

–chown 属主        文件...

–chown 属主:属组   文件...

–chown :属组       文件...

groupadd   tmooc            #创建组tmooc

useradd  lisi                  #创建用户lisi

chown   lisi:tmooc  /nsd15   #修改所有者与所属组

chown   zhangsan   /nsd15   #仅修改所有者

chown   :root  /nsd15        #仅修改所属组

4.ACL策略管理

文档归属的局限性:

–任何人只属于三种角色:属主、属组、其他人

–针对特殊的人实现更精细的控制

acl访问策略作用:

–能够对个别用户、个别组设置独立的权限

setfacl   -m   u:dc:rx   /nsd19      #单独赋予dc用户rx权限

getfacl   /nsd19                     #查看ACL策略

setfacl   -x  u:zhangsan  /nsd22    #删除指定用户ACL

setfacl   -b   /nsd22                #清除目录所有ACL策略

setfacl  -m   u:lisi:---   /home/public

#ACL策略-黑名单的使用(单独拒绝某些用户)

setfacl  -Rm   u:dc:rwx   /opt/aa   #-R:递归设置ACL策略

三种特殊权限(Sticky Bit ,SGID, SUID

1) 粘滞位,Sticky Bit 权限

–占用其他人(Other)的 x 位

–显示为 t 或 T,取决于其他人是否有 x 权限

–适用于目录,用来限制用户滥用写入权

–在设置了t权限的目录下,即使用户有写入权限,也不能删除或改名其他用户文档

chmod   o+t    /nsd26#赋予粘滞位特殊权限

drwxr-xr-t. 2 root root 6 6月  22 15:16 /nsd26

2)Set GID权限(SGID权限

–占用属组(Group)的 x 位

–显示为 s 或 S,取决于属组是否有 x 权限

–对目录有效

–在一个具有SGID权限的目录下,新建的文档会自动继承父目录的属组身份

chmod  g+s  /nsd28     #赋予SGID特殊权限

drwxr-sr-x. 2 root root 6 6月  22 15:18 /nsd28

3)附加权限Set UID(SUID)权限

–占用属主(User)的 x 位

–显示为 s 或 S,取决于属主是否有 x 权限

–仅对可执行的程序有意义

–当其他用户执行带SUID标记的程序时,具有此程序属主的身份和相应权限

chmod   u+s   /opt/hahadir  #赋予SUID特殊权限

drwsr-xr-x. 2 root root 6 6月  22 15:22  /opt/hahadir


6.权限利用扩展

1)权限利用数字的方式表示

基本权限:

利用数字4表示读取权限(r)

利用数字2表示写入权限(w)

利用数字1表示执行权限(x)

附加权限:

利用数字4表示suid

利用数字2表示sgid

利用数字1表示t

chmod  3755  /nsd30 #附加权限写在第一位,基本权限写在后边


2)文件/目录的默认权限

– 新建文件/目录的默认权限

一般文件默认均不给 x 执行权限

– 其他取决于 umask(权限掩码) 设置

– 新建目录默认权限为755

– 新建文件默认权限为644


案例:实现natasha用户新建数据,目录权限为700文件为600

vim   /home/natasha/.bashrc  #修改家目录配置文件

umask   077                   #新增配置,指定权限掩码值

umask                          #查看权限掩码

3)手动建立家目录

/etc/skel是新建用户时,会以此目录作为模板建立用户家目录

]# useradd    harry

]# rm  -rf   /home/harry

]# cp  -r    /etc/skel     /home/harry

]# chown   -R   harry:harry   /home/harry

4)常见故障:递归设置权限错误补救

chmod   -R  000   /nsd26 #设置nsd26目录所有权限为000

find   /nsd26   -type   d  -exec  chmod  755  {}   \;

#查找nsd26内目录类型设置权限为755

find   /nsd26   -type  f  -exec  chmod  644   {}    \;

#查找nsd26内文件类型设置权限为644


5)实操:请问实现lisi用户可以读取/etc/shadow文件内容,您有几种办法?(至少写出三种以上)

1. 利用其他人身份

chmod  o+r  /etc/shadow

2. 利用所属组身份

chown  :lisi  /etc/shadow

chmod  g+r  /etc/shadow

3. 利用所有者身份

chown  lisi  /etc/shadow

chmod  u+r  /etc/shadow

4. 利用ACL策略

setfacl  -m  u:lisi:r  /etc/shadow