Linux文件权限详解

系统安全的核心基础

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
备注:此命令赋予权限后,普通用户可用此命令直接删除根下的命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉水沏茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值