一.权限对目录、文件的意义
文件
r 可用文件查看类工具获取文件内容
w 可以修改文件内容(包括清空)
x 可执行该文件
[root@localhost testdir]# cat zzz i am fine thank you [root@localhost testdir]# su -l tian -c "cat zzz" cat: zzz: No such file or directory [root@localhost testdir]# su -l tian -c "cat /testdir/zzz" i am fine thank you [root@localhost testdir]# chmod o=w zzz [root@localhost testdir]# su -l tian -c "cat /testdir/zzz" cat: /testdir/zzz: Permission denied [root@localhost testdir]# su -l tian -c "cat /testdir/zzz"
目录
r 可用 "ls"但是看不了文件元数据
w 可添加或删除文件
x 可用ls -l ,也可切换进该目录
X 如果是目录的话,可以给予x权限,如果是文件,不会给x权限
此时给予/testdir/目录下所有文件rwX权限,但由于a是文件,安全起见,不给予x权限
一个文件能不能删除,与文件的权限没关系,与目录的权限有关
二.chown命令使用详解
chown owner 仅改变属主
chown owner: 改变属主和属组
chown owner:group 改变属主和属组
chown :group 仅改变属组
chown –reference=file 以什么为标本改变
-R 递归
三.chmod命令使用详解
1.使用字符表示权限
chmod '用户 符号 权限’文件
用户: u:代表文件属主
g:代表用户组
o:其他人
a:所有人
符号:+ : 在原有基础上给用户增加权限
– :在原有基础上给用户减少权限
= :给用户重新赋予权限
权限:r w x
(2)数字法表示权限
r >100>4
w>010>2
x>001>1
使用方法与上边类似,把相应用户的相应权限换为权限的和就行
实例:给a文件的组增加w权限
四.umask的相关知识
-
umask # 设置umask的值为#
umask -S 按字符格式显示umask的值
umask -p 可做STDIN
-
文件默认权限666-umask(如结果某位出现奇数,将其加一)
目录默认权限777-umask
-
全局配置文件/etc/bashrc
局部配置文件~.bashrc
实例:设置umask为333,用字符格式显示umask的值,并创建目录c和文件c观察其权限
发现文件c的权限为444
五.特殊权限的相关说明
(1)suid 仅对二进制程序有用
执行者需对该程序有x权限
执行者将拥有程序所有者的权限
(2)sgid
对文件
仅对二进制程序有用
执行者获得用户组的权限
对目录(项目组经常用)
执行者对目录具有r x权限,进入该目录
执行者在此目录下的有效用户组变成该目录的用户组
具有w权限,创建文件的用户组与该目录的用户组相同
总结:要想实现对目录sgid,需切换当前有效组为共享组
(3)sbit
仅对目录有效
当用户在该目录下创建文件或目录时,仅有自己
或root可以删除
(4)一般情况下,不能设置为7666
如果文件拥有者都没有执行权限,怎么给其他用户权限使用
(5)当特殊权限为大写的时候 ,说明本来无x权限
(6)权限一旦匹配,就不往下继续匹配,不论首先匹配的值是否合适
六.chattr命令详解
.chattr +a 文件数据只能增加
chattr +i 文件不能被删除,改名,连接或添加数据
chattr +s 文件被删除的话,会被完全从硬盘删除
chattr +u 文件被删除的话,内容还在磁盘里边,可以复原
用testuser用户无法再a文件中添加内容
七.acl相关知识
(1)使用dumpe2fs -h 设备文件 查看Default mount options 这一行看文件系统是否支持acl (通过dump查看)
(2)setfacl [-bkRd] [{-m|-x} acl参数] [{-M|-X} acl-file] 目标文件名 (M X 参数引用标准输入)
setfacl –restore=file
setfacl –set-file=file2 file1
-m 设置后续的acl参数给文件使用
-x 删除后续的参数
-k 删除默认的acl参数
-b 删除所有的extend acl设置参数
-R 递归设置acl 子目录也会被设置相应权限(只是目录)
-d 设置默认acl参数,只对目录有效,该目录新建的文件也会引用此默认值(文件)给予改目录rwx权限, 其下边的文件依旧没有x权限
-n 不参考mask值,默认参考mask值
用户或组空的话,默认是文件的属组或属主
(3)acl生效顺序:所有者 自定义用户 自定义组 用户组 (mask)其他人
(4)mask作用是让用户或组所设置的权限必须在mask的范围内才生效
mask只影响除所有者和other以外的用户和组
acl文件的组权限是mask值,不是传统意义上的组权限
mask是在设置完本组成员权限以后,再在该组成员中去除不合适权限
(5)基本的acl是删不掉的
(6)对一个用户组设置acl权限,一个当前有效组不是这个组的的用户也是继承次acl权限的
(7)–set会把原来的acl项全部删除,此时要包含ugo设置
(8)cp -p mv 命令支持acl,tar等常见的备份工具不会保留文件的acl权限
实例一:通过setfal给予tian用户修改root文件a的权限
实例二:实现cp复制文件继承acl权限
八.课后作业
-
复制/etc/fstab到/var/tmp下,设置文件所有者wangcai为读写权限,所属组sysadmins为读写权限,其他人无权限
-
误删了wangcai家目录,请回复wangcai家目录及相关权限
-
在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件
(1).创建文件夹,所有组设置为g1,设置sgid
(2)创建alice,其主组为g2,创建tom,其主组为g3
(3)设置acl权限
(4)创建文件测试,发现Alice可以对a文件写入
发现Tom只能读内容,不能修改
原创文章,作者:mengzhiqian,如若转载,请注明出处:http://www.178linux.com/31262
评论列表(1条)
文章整体思路不够清晰,下次如果这样敷衍,就可能需要好好改进了哦。