用户权限管理及课后作业

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

文件

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

相关推荐

  • for、while、until循环

    一、for循环          for 变量名 in 列表;do             循环体     &nbsp…

    Linux干货 2016-09-19
  • 浅谈Android应用HTTP框架选型

    我们知道,Android应用主要是通过客户端-服务器的方式进行数据交互,一般在APP开发时可能是一个接口对应一个显示模块,这样的设计会让客户端更新时很麻烦。为了解决这个问题,通常的做法是和服务端之间定义协议,设计显示模式,进而达到实时更新UI界面的目的,增加或删除显示模块时不需要让用户手动更新apk,这种方法最常见的就是在做活动或者广告的时候用到。以我们的优…

    2016-06-22
  • 软链接和硬链接及两者之间的不同

    在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号…

    Linux干货 2016-12-05
  • Linux 第四天: (07月28日) 练习和作业

    Linux 第四天: (07月28日) 练习和作业         定义别名命令baketc, 每天将/etc/目录下所有文件, 备份到/testdir独立的子目录下, 并要求子目录格式为backupYYYY-mm-dd, 备份过程可见 alias baketc='cp -a /etc/ /testdir/b…

    Linux干货 2016-08-08
  • mariadb基础应用

    mariadb基础应用 一、 前言 MariaDB is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users …

    Linux干货 2016-12-16
  • 加密类型及其相关算法

    加密类型及其相关算法 §·TCP/IP安全: ※·机密性: 数据在网络上传输是明文传输(ftp,http,smtp,telnet): ※·数据的完整性: 数据在网络上传输,不能被其它人篡改,保证数据的完整性: ※·身份验证: 访问的主机有一种机制可以表明就是你需要通信的主机。 ※·保证机密性:对数据进行加密。 ·如何加密:发送方通过转换规(转换算法)则把明文…

    Linux干货 2016-09-06

评论列表(1条)

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

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