目录
文件权限
权限解释
权限的影响
权限对目录的影响
权限对文件的影响
注意
权限掩码
root用户默认最高权限
普通用户默认最高权限
权限更改
chmod:为文件或目录设置访问权限
符号修改
数字修改
chown:改变文件或目录的所属主以及所属组
chgrp
高级权限
高级权限类型
设置特殊权限
Set UID
Set GID
Sticky Bit
sudo
访问控制权限
linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险
-rw-r--r--.
第1位是文件类型:-普通文件,d目录,l链接,s本地通信,b块设备,c字符文件,l软连接,p管道文件
第2-4位是属主权限
第5-7位是属组权限
第8-10位是其他人权限
第11位是文件的扩展权限
权限对象:
属主 u 所有者
属组 g
其他人 o
所有人 a
基本权限类型:
读(read): r 4
写(write):w 2
执行(exec):x 1
r(读取) 可列出目录内容
w(写) 可在目录内创建和删除文件
x(执行) 可访问目录内容(取决于目录中文件的权限)
r 可以使用命令:ls 如果只有r权限,可以看到目录下的内容,没有x权限会有报错内容
w 可以使用命令:touch、rm 可以对目录下的文件创建和删除,没有x权限无法创删
x 可以使用命令:cd 可以进入目录
r(读取) 可读取文件内容
w(写) 可更改文件内容
x(执行) 可执行文件
r 可以使用命令:cat、vim、tail、head、more、less 可以查看文件内容
w 可以使用命令:vi、vim、echo、>、>> 可以修改文件内容,没有r权限无法查看文件内容
x 可以使用命令:sh 文件 、bash 文件、. 文件、source 文件 可以执行文件,没有r权限无法执行
对目录有w权限,可以在目录中创建新文件,可以删除目录中的文件(与文件自身权限无关)
对文件而言: x 权限小心给予
对目录而言: w 权限小心给予
umask:管理权限掩码
umask 0022 root账户默认
umask 四位数字 修改umask
目录 777
文件 666
umask 0002 普通用户默认
umask 四位数字 修改umask
目录 775
文件 664
u用户 g组 o其他 a所有 r读 w写 x执行 +增加 -取消 =覆盖
chmod 对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x) 文件名/目录名
4读 2写 1执行(这里权限赋予写的是数字之和)
chmod 第一个数字是所有者权限 第二个数字是属组权限 第三个数字是其他人权限 文件名/目录名
修改文件或目录的所属关系 用户名和组名之间使用符号(:)(.)
chown 用户名.组名 文件名/目录名 修改文件或目录的所属关系
chown -R 用户名:组名 目录名 修改目录以及目录下所有文件的所属关系
chown 属主 文件名或目录名 修改文件或目录的所有者
chown :属组 文件名或目录名 修改文件或目录的所属组
修改文件或目录的所属组(只能修改组的归属)
在高级权限中
suid是针对二进制可执行文件
sgid,sticky是针对目录
suid 4 只对二进制命令文件生效 功能:让普通用户像root用户一样执行系统命令
sgid 2 只能对目录设置 功能:继承上层目录属组的权限
sticky 1 粘滞位,只能对目录设置 功能:目录下的文件只允许所有者和root删除,不允许其他用户删除
因为高级权限覆盖在ugo的x权限的上面,所以:
如果有执行权限,加高级权限是小写字母
如果没有执行权限,加高级权限是大写字母
赋予特殊权限字符:
chmod u+s 文件 suid
chmod g+s 目录 sgid
chmod o+t 目录 sticky
取消特殊权限
chmod u-s 文件 suid
chmod g-s 目录 sgid
chmod o-t 目录 sticky
数字
chmod 4777 文件 suid
chmod 2770 目录 sgid
chmod 1770 目录 sticky
普通用户可以像root用户一样执行命令
chmod u+s 文件 //赋予该文件suid权限
chmod u-s 文件 //移除该文件suid权限
chmod 4777 文件 //数字方式赋予该文件suid权限
继承父目录的属组
chmod g+s 目录 //赋予该目录sgid权限
chmod g-s 目录 //移除该目录sgid权限
chmod 2777 目录 //数字方式赋予该目录sgid权限
该目录下只允许自己和root删除自己创建的文件
chmod o+t 目录 //赋予目录stycky权限
chmod o-t 目录 //移除目录stycky权限
chmod 1777 目录 //数字方式赋予目录stycky权限
sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。
//编辑sudo文件的方式:
visudo|vim /etc/sudoers
//给一个用户赋予root权限
root ALL=(ALL) ALL
jack ALL=(ALL) NOPASSWD:ALL //用户不需要密码使用root权限
tom ALL=(ALL) NOPASSWD:/usr/bin/cat,/usr/bin/ls //用户获得root一部分命令的权限
%wheel ALL=(ALL) NOPASSWD:ALL //将一个用户加入wheel组
更改完成后,需要检查一下语法
visudo -c
getfacl 文件名 查看文件特殊权限
setfacl -m u:用户名:rwx 文件名 //赋予用户这个文件的rwx权限
setfacl -x u:用户名 文件名 //收回用户这个文件的特殊权限
setfacl -b 文件名 //收回这个文件所有特殊权限