系统安全的核心基础
linux中都可以给谁赋予权限?
普通用户 组 其他人
U G O
linux中的权限有:
r w x a所有人 t特殊权限//具有最高权限时也无法删除我的文件,只有所属的主人可以删除
读 写 运行
怎么给?
chmod //赋予权限的命令
语法:
chomd 被赋予的对象(+-=) 权限 授予权限的对象(文件或目录)
选项:
-R //传递父项权限给子项,针对目录来用
例如: chomd u+r text1
chomd ugo+rwx text2
需求:有一个目录book,用户的权限rw,组的权限rx,其他人没有权限
chmod u=rw,g=rx,o=- book
赋予权限的两种方法:
1.字符型:
rwx
2.数字型:
r=4 w=2 x=1
chmod u=rw,g=rx,o=- book
或者
chmod 650 book
最高权限为777
d r-w r-w r-w
类型 用户 组 其他人
仅能修改所属的主和组的命令(只有三种用法):
chown 用户名 目录名或文件名:
chown u3 b
chown :组名 目录名或文件名:
chown :z1 b
chown 用户名:组名 目录名或文件名:
chown u3:z1 b //u3必须属于z1
备注:chown 同样可以用-R参数传递所属的主和属
案例:有个文件,只有三个人可以修改,只有一个人可以删除,其他两人最高权限也不能删除
特殊权限:
t(有无决定能否删除主人文件):
chmod o+t .. = T
chmod o+x .. = t
chmod o-x .. = T
备注:仅能赋予目录
s(有无决定能否修改密码):
chmod u+s ..
备注:仅能应用到二进制文件上 如:/usr/bin/passwd
实例:让普通用户不能修改自己的密码:
chmod a-s /sur/bin/passwd
chmod u-s /usr/bin/passwd
普通用户更改密码默认格式:
符合复杂性原则
实例分析:
◆有两个参赛团队team1 (a1、 a2、 a3) 、team2(b1、 b2、b3), 两个团
队各3人,这两个团队互相竞争,各需提交一份报告, 每组成员可以修改自
己团队内的文件、队员不能删除文件、队长可以删除、且不能让其他团队的
人修改自己的文件内容,并且所有人不能修改密码。此时怎么办?并且保证
团对成员提交文件时,默认继承自己团队的权限。如果teacher是team1、
team2 这两个组的老师,他想同时观察两个组的进度,怎么办?有一个参观
团分别为zhang、wang、 li、 boss ,zhang针对两个团对的文件有rx的权
限; wang针对两个团对的文件有rx的权限; li针对两个团对的文件有rwx的
权限; boss针对两个团对的文件有rwx的权限
1.学过的内容是否可以实现?不能实现说明原因?
UGO,特殊权限
UGO权限:仅能实现一个用户一个组的权限
赋予权限的命令:chmod
查看权限的命令:ll -d
ACL权限:能实现多用户多分组的权限
赋予权限的命令:setfacl -m
例如:setfacl -m g:team1:7 team1ftp /
文件权限最后的点变成+
getfacl team1ftp > group:team1:rwx
选项:-R 继承权限
查看权限的命令:getfacl
例子:
给用户赋予权限:setfacl -R -m u:用户名:权限 目录名
setfacl -R -m u:zhang;5 team1ftp/
给组赋予权限:
setfacl -R -m g:组名:权限 目录名
setfacl -R -m g:z1;5 team1ftp/
给其他人赋予权限:
setfacl -R -m o::权限 目录名
setfacl -R -m o:;5 team1ftp/
严重的注意事项:
当需求不能用UGO实现,一定使用ACL权限实现
chmod 与 setfacl -m 不能同时赋予r w x权限。
也就是说当需求使用 setfacl -m 赋予rwx权限时,
就不能出现chmod赋予rwx权限,在需求当中chmod
与setfacl同时出现时,仅能是chmod赋予权限。
原因:mask权限占用UGO组权限的位置,所以UGO和ACL不能同时使用
ACL高级权限:
删除ACL权限:
setfacl -x u:agan file 删除用户agan的ACL权限
setfacl -b ftp 删除所有ACL权限
setfacl -b -R ftp 删除abc目录下及其子目录和子文件的ACL权限
临时降低用户或组(除属主和其他人)的权限:针对目录,mask权限限制用户临时降低用户或组的权限
setfacl -m m::rx ftp //权限被降为rx权限
设置默认继承权限:
setfacl -m d:u:agan:rwx ftp //在ftp目录新建文件时,文件的权限默认被继承下去。
备注:d:针对新建的文件生效,对已有的文件不生效
默认权限的-d和-R不能同时使用,使用d权
限时,只能传递rw权限,不能传递x权限,针对
组使用时,mask权限变为组权限
备注:ACL被赋予的文件里group权限转换为mask权限,赋予的权限>mask权限时,mask权限相应增加;
当降的权限<mask权限,mask权限恢复原状,不为0
练习题笔记:
r
目录 可以使用ll查看目录下的子对象
文件 可以读取文件的内容
w
目录 可以删除文件,可以创建文件
文件 可以修改文件内容
x
目录 没有x权限时,目录不能使用cd进入
文件 当文件可执行,需要赋予x权限,否则不需要x权限,
也就是说,文件是脚本语言编辑时需要赋予x权限
文件的默认权限644,目录的默认权限755
文件的最大权限666,目录的最大权限为777
umask权限022 =666-644 //(为减去的权限)
备注:002是普通用户家目录下减去的权限
进程掩码实例:
临时修改shell umask值:
umask 000
永久修改shell umask值:
vi /etc/bashrc
source /etc/bashrc
vim /etc/profile
source /etc/profile
备注:修改普通用户的掩码权限
source为生效命令
可以给命令赋予权限,使得root与普通用户使用没有区别:
chmod a+s /bin/rm
备注:此命令赋予权限后,普通用户可用此命令直接删除根下的命令