用户权限管理及课后作业

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

文件

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

(0)
上一篇 2016-08-08 16:17
下一篇 2016-08-08 20:10

相关推荐

  • 网络总结

    linux 网络配置 linux的网络服务是由内核提供。 网卡在内核看来就是个设备,各种网络配置不在网卡上。各种配置都是针相应网络管理程序使用的。 不同发行版的网络管理工具也是不一样(net-tools/iproute)。网络服务的管理程序(守护进程)也是不一样(脚本/程序)。 网络管理工具是将用户的设定直接传递给内核的网络服务,及时有效。 很多管理工具可以…

    Linux干货 2016-09-09
  • Linux平台的4个最佳开源代码编辑器

    原文出处: Abhishek   译文出处:Linux中国 su-kaiyao   正在寻找Linux平台最棒的代码编辑器?如果你询问那些很早就玩Linux的人,他们会回答是Vi, Vim, Emacs, Nano等。但是,我今天不讨论那些。我将谈论一些新时代尖端、漂亮、时髦而且十分强大, 功能丰富…

    Linux干货 2015-03-02
  • N28-第四周:正则表达式练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-24
  • shell脚本编程__bash的配置

    shell脚本编程__bash的配置   一、bash的配置文件:   按生效范围划分,存在两类:     全局配置: /etc/profile /etc/profile.d/*.sh /etc/bashrc    个人配置: ~/.bash_profile ~/.bashrc 二、she…

    Linux干货 2016-08-26
  • yum前端工具与源码编译安装

    概述:本章内容重要讲解yum(rpm前端工具)和rpm源码编译安装,前者可以有效的解决软件安装过程中存在的依赖关系,从而提升我们使用系统的效率;后者是我们进阶Linux系统,了解程序包安装的过程本质 1、YUM: Yellowdog Update Modifier   Yum(全称为 Yellow dog Updater, Modified)是一个…

    Linux干货 2016-08-29
  • vim 常见用法、计划任务和脚本初探

    vim的常用方法 gg:跳至首行 G:跳至魔行 dd:删除光标所在行 ndd:删除光标及以下(n-1)行 yy:复制光标所在行 p:把复制行粘贴在光标下一行 P:粘贴在上一行 u:取消上一步操作 /string:查找关键字 n:往下查询 N:往上查询 %s/string1/string2/:把string1替换为string2,后面加g表示全局替换 set&…

    Linux干货 2016-12-04

评论列表(1条)

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

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