用户权限管理及课后作业

一.权限对目录、文件的意义

文件

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权限

1.png

一个文件能不能删除,与文件的权限没关系,与目录的权限有关

2.png

二.chown命令使用详解

chown owner      仅改变属主

chown owner:  改变属主和属组

chown owner:group 改变属主和属组

chown :group  仅改变属组

chown –reference=file 以什么为标本改变

-R  递归

3.png

三.chmod命令使用详解

1.使用字符表示权限

chmod '用户 符号 权限’文件

用户: u:代表文件属主

            g:代表用户组

            o:其他人

             a:所有人

符号:+  : 在原有基础上给用户增加权限

          –    :在原有基础上给用户减少权限

         =    :给用户重新赋予权限

权限:r  w  x

4.png

(2)数字法表示权限

r >100>4

w>010>2

x>001>1

6.png

使用方法与上边类似,把相应用户的相应权限换为权限的和就行 

实例:给a文件的组增加w权限

5.png

四.umask的相关知识

  1. umask # 设置umask的值为#

    umask -S  按字符格式显示umask的值

    umask -p  可做STDIN

  2. 文件默认权限666-umask(如结果某位出现奇数,将其加一)

    目录默认权限777-umask

  3. 全局配置文件/etc/bashrc

    局部配置文件~.bashrc

    实例:设置umask为333,用字符格式显示umask的值,并创建目录c和文件c观察其权限

    7.png

    发现文件c的权限为444

五.特殊权限的相关说明

(1)suid 仅对二进制程序有用

执行者需对该程序有x权限

执行者将拥有程序所有者的权限

8.png

(2)sgid

对文件

仅对二进制程序有用

执行者获得用户组的权限

对目录(项目组经常用)

执行者对目录具有r x权限,进入该目录

执行者在此目录下的有效用户组变成该目录的用户组

具有w权限,创建文件的用户组与该目录的用户组相同

9.png

总结:要想实现对目录sgid,需切换当前有效组为共享组

(3)sbit

仅对目录有效

当用户在该目录下创建文件或目录时,仅有自己

或root可以删除

0.png

(4)一般情况下,不能设置为7666

如果文件拥有者都没有执行权限,怎么给其他用户权限使用

(5)当特殊权限为大写的时候 ,说明本来无x权限

(6)权限一旦匹配,就不往下继续匹配,不论首先匹配的值是否合适

六.chattr命令详解

.chattr +a 文件数据只能增加

chattr +i 文件不能被删除,改名,连接或添加数据

chattr +s 文件被删除的话,会被完全从硬盘删除

chattr +u 文件被删除的话,内容还在磁盘里边,可以复原

12.png

11.png

用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的权限

1.png

实例二:实现cp复制文件继承acl权限

5.png

2.png

八.课后作业

  1. 复制/etc/fstab到/var/tmp下,设置文件所有者wangcai为读写权限,所属组sysadmins为读写权限,其他人无权限

    56.png

  2. 误删了wangcai家目录,请回复wangcai家目录及相关权限

    23.png

  3. 在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件

    (1).创建文件夹,所有组设置为g1,设置sgid

    1.png

    (2)创建alice,其主组为g2,创建tom,其主组为g3

    4.png

    (3)设置acl权限
    5.png

    (4)创建文件测试,发现Alice可以对a文件写入

    6.png

    发现Tom只能读内容,不能修改

    8.png

    9.png

原创文章,作者:mengzhiqian,如若转载,请注明出处:http://www.178linux.com/31262

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-08 20:22

    文章整体思路不够清晰,下次如果这样敷衍,就可能需要好好改进了哦。