用户权限管理及课后作业

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

文件

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)
mengzhiqianmengzhiqian
上一篇 2016-08-08
下一篇 2016-08-08

相关推荐

  • 软件包管理利器之一&RPM

      概述:我们知道使用源代码进行软件编译可以具有定制化的设置,但对于Linux distribution的发行商来说,则有软件管理不易的问题,毕竟不是每个人对于操作系统都非常的熟悉,不是每个人都会进行源代码编译的,因此如果能够将软件现在相同的硬件与操作系统上编译好才发行的话,如果再加上简易的安装/删除/管理等机制,则对于软件管理会简单的多…

    Linux干货 2016-08-24
  • VIM编辑器入门

    VIM简介 VIM是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是纯粹的自由软件。 VIM的使用 在介绍基本使用前,先了解下VIM的基本模式 基本模式可分为三种:命令模式、输入模式、末行模式 命令模式:Vim启动后的默认模式,通过输入指令完成对应的编辑操作。输入模式和末行模式从命令模式进入&nb…

    Linux干货 2016-04-05
  • N25-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@node1 ~]# who | cut -d" " -f1 | uniq (unknown) root 2、取出最后登录到当前系统的用户的相关信息…

    Linux干货 2016-12-17
  • 编译内核

     编译内核: 步骤: (1) 准备好开发环境 (2) 获取目标主机上硬件设备的相关信息 (3) 获取目标主机系统功能的相关信息         例如:需要启用相应的文件系统 (4) 获取内核源代码包 www.kernel.org  

    Linux干货 2018-01-01
  • 海量数据处理算法—Bloom Filter

    1. Bloom-Filter算法简介         Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。        Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表…

    Linux干货 2015-10-22
  • 第一周-2:Linux部分常用命令使用示例、查看命令行工具使用手册以及LinuxFHS部分目录简介

    一、部分命令使用示例: 1、ifconfg 在命令行界面下或系统配置脚本中用于配置、控制及查询TCP/IP网络接口的系统管理工具 [netartisan@localhost 桌面]$ ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 &n…

    Linux干货 2016-11-07

评论列表(1条)

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

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