1. 第八章 权限管理
  2. 8.1 ACL权限
  3. 8.2 文件特殊权限
  4. 8.3 文件系统属性chattr权限
  5. 8.4 系统命令sudo权限
  6. 8.1 ACL权限
  7. 8.1. ACL权限简介与开启
  8. 8.1. 查看与设定ACL权限
  9. 8.1. 最大有效权限与删除ACL权限
  10. 8.1. 默认ACL权限和递归ACL权限
  11. 8.1. ACL权限简介与开启
  12. 一般默认即开启acl
  13. ACL权限简介 //管理除了三种身份以外的权限
  14. 、查看分区ACL权限是否开启
  15. [root@localhost ~]# dumpe2fs -h /dev/sda3
  16. #dumpe2fs命令是查询指定分区详细文件系统信息的命令
  17. 选项:
  18. -h 仅显示超级块中信息,而不显示磁盘块组的详细信
  19. 、临时开启分区ACL权限 // 重启无效
  20. [root@localhost ~]# mount -o remount,acl /
  21. #重新挂载根分区,并挂载加入acl权限
  22. 、永久开启分区ACL权限
  23. [root@localhost ~]# vi /etc/fstab
  24. UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4 defaults,acl
  25. #加入acl
  26. [root@localhost ~]# mount -o remount /
  27. #重新挂载文件系统或重启动系统,使修改生效
  28. 8.1. 查看与设定ACL权限
  29. 、查看ACL命令
  30. [root@localhost ~]# getfacl -e 文件名
  31. #查看acl权限
  32. 、设定ACL权限的命令
  33. [root@localhost ~]# setfacl 选项 文件名
  34. 选项:
  35. -m 设定ACL权限
  36. -x 删除指定的ACL权限
  37. -b 删除所有的ACL权限
  38. -d 设定默认ACL权限。
  39. -k 删除默认ACL权限
  40. -R 递归设定ACL权限。
  41. 、给用户设定ACL权限
  42.  
  43. [root@localhost ~]# useradd zhangsan
  44. [root@localhost ~]# useradd lisi
  45. [root@localhost ~]# useradd st
  46. [root@localhost ~]# groupadd tgroup
  47. [root@localhost ~]# mkdir /project
  48. [root@localhost ~]# chown root:tgroup /project/
  49. [root@localhost ~]# chmod /project/
  50. [root@localhost ~]# setfacl -m u:st:rx /project/
  51. #给用户st赋予r-x权限,使用“u:用户名:权限”格式
  52. 、给用户组设定ACL权限
  53. [root@localhost /]# groupadd tgroup2
  54. [root@localhost /]# setfacl -m g:tgroup2:rwx project/
  55. #为组tgroup2分配ACl权限。使用“g:组名:权限”格式
  56. 8.1. 最大有效权限与删除ACL权限
  57. 、最大有效权限mask
  58. mask是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限“相与”才能得到用户的真正权限
  59. 修改最大有效权限
  60. [root@localhost /]# setfacl -m m:r-x 文件名
  61. #设定mask权限为r-x。使用“m:权限”格式
  62. 、删除ACL权限
  63. [root@localhost /]# setfacl -x u:用户名 文件名
  64. #删除指定用户的ACL权限
  65. [root@localhost /]# setfacl -x g:组名 文件名
  66. #删除指定用户组的ACL权限
  67. [root@localhost /]# setfacl -b 文件名
  68. #会删除文件的所有的ACL权限
  69. 8.1. 默认ACL权限和递归ACL权限
  70. 、递归ACL权限
  71. 递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。
  72. setfacl -m u:用户名:权限 -R 文件名 // 注意R的位置是固定的
  73. 、默认ACL权限
  74. 默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。
  75. setfacl -m d:u:用户名:权限 文件名 // d: ,default
  76. 8.2 文件特殊权限
  77. //chmod 7755 7开头没有意义,因为每个权限对象不一样
  78. //不能随便设置,并且要定期检查是否有不该有的特殊权限
  79. 8.2. SetUID
  80. 8.2. SetGID
  81. 8.3. Sticky BIT
  82. 8.2. SetUID
  83. SetUID的功能
  84. 只有可以执行的二进制程序(文件)才能设定SUID权限
  85. 命令执行者要对该程序拥有x(执行)权限
  86. 命令执行者在执行该程序时获得该程序的操作对象文件的属主的身份(在执行程序的过程中灵魂附体为文件的属主)
  87. SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
  88. passwd命令拥有SetUID权限,所以普通可以修改自己的密码 [root@localhost ~]# ll /usr/bin/passwd -rwsr-xr-x. root root 2 /usr/bin/passwd
  89. cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容 [root@localhost ~]# ll /bin/cat -rwxr-xr-x root root 6 /bin/cat
  90.  
  91. 、设定SetUID的方法 //如果权限显示大写S,表示命令执行错误;红色显示的文件名表示权限过高或是错误文件
  92. 4代表SUID
  93. chmod 文件名
  94. chmod u+s 文件名
  95.  
  96. 、取消SetUID的方法
  97. chmod 文件名
  98. chmod u-s 文件名
  99. 、危险的SetUID
  100. 关键目录应严格控制写权限。比如“/”、“/usr”等//!!!!!!
  101. 用户的密码设置要严格遵守密码三原则
  102. 对系统中默认应该具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限
  103. 8.2. SetGID
  104. SetGID针对文件的作用 //非常类似setUID
  105. 只有可执行的二进制程序才能设置SGID权限
  106. 命令执行者要对该程序拥有x(执行)权限
  107. 命令执行在执行程序的时候,组身份升级为该程序文件的属组
  108. SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效
  109.  
  110. [root@localhost ~]# ll /usr/bin/locate
  111. -rwx--s--x root slocate 8 /usr/bin/locate
  112. [root@localhost ~]# ll /var/lib/mlocate/mlocate.db
  113. -rw-r----- root slocate 1 : /var/lib/mlocate/mlocate.db
  114.  
  115. /usr/bin/locate是可执行二进制程序,可以赋予SGID
  116. 执行用户lamp对/usr/bin/locate命令拥有执行权限
  117. 执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令查询mlocate.db数据库
  118. 命令结束,lamp用户的组身份返回为lamp
  119. SetGID针对目录的作用 //用得不多
  120. 普通用户必须对此目录拥有rx权限,才能进入此目录
  121. 普通用户在此目录中的有效组会变成此目录的属组
  122. 若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组
  123.  
  124. [root@localhost ~]# cd /tmp/
  125. [root@localhost tmp]# mkdir dtest
  126. [root@localhost tmp]# chmod g+s dtest
  127. [root@localhost tmp]# ll -d dtest/
  128. [root@localhost tmp]# chmod dtest/
  129. [root@localhost tmp]# su lamp
  130. [lamp@localhost ~]$ cd /tmp/dtest/
  131. [lamp@localhost dtest]$ touch abc
  132. [lamp@localhost dtest]$ ll
  133. 、设定SetGID
  134. 2代表SGID
  135. chmod 文件名
  136. chmod g+s 文件名
  137.  
  138. 、取消SetGID
  139. chmod 文件名
  140. chmod g-s 文件名
  141.  
  142. 8.2. Sticky BIT
  143. SBIT粘着位作用
  144. 粘着位目前只对目录有效
  145. 普通用户对该目录拥有wx权限,即普通用户可以在此目录拥有写入权限
  146. 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一但赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件
  147.  
  148. [root@localhost ~]# ll -d /tmp/
  149. drwxrwxrwt. root root 12 : /tmp/
  150. 、设置与取消粘着位
  151. 设置粘着位
  152. chmod 目录名
  153. chmod o+t 目录名 //o other t bit
  154. 取消粘着位
  155. chmod 目录名
  156. chmod o-t 目录名
  157.  
  158. 8.3 文件系统属性chattr权限
  159. chattr命令格式 // 能管root用户,超人都能管,但只是为了防止误操作,而非限制
  160. [root@localhost ~]# chattr [+-=] [选项] 文件或目录名
  161. +: 增加权限
  162. -: 删除权限
  163. =: 等于某权限
  164. 选项
  165. i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;
  166. 如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
  167. a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;//只能用echo方式追加数据
  168. 如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除
  169. 、查看文件系统属性
  170. [root@localhost ~]# lsattr 选项 文件名
  171. 选项:
  172. -a 显示所有文件和目录
  173. -d 若目标是目录,仅列出目录本身的属性,而不是子文件的
  174. 8.4 系统命令sudo权限
  175. sudo权限
  176. root把本来只能超级用户执行的命令赋予普通用户执行。
  177. sudo的操作对象是系统命令
  178. sudo使用
  179. [root@localhost ~]# vi sudo
  180. #实际修改的是/etc/sudoers文件
  181. root ALL=(ALL) ALL
  182. #用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)//whereis查询
  183. # %wheel ALL=(ALL) ALL
  184. #%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
  185. 、授权sc用户可以重启服务器
  186. [root@localhost ~]# vi sudo
  187. sc ALL= /sbin/shutdown r now
  188. 、普通用户执行sudo赋予的命令
  189. [root@localhost ~]# su sc
  190. [sc@localhost ~]$ sudo -l
  191. #查看可用的sudo命令
  192. [lamp@localhost ~]$ sudo /sbin/shutdown -r now
  193. #普通用户执行sudo赋予的命令

linux 学习8 权限管理的更多相关文章

  1. Linux学习之日志管理(二十一)

    Linux学习之日志管理 目录 日志管理 日志服务 rsyslogd的新特点 启动日志服务 常见日志的作用 日志文件的一般格式 rsyslogd日志服务 /etc/rsyslog.conf配置文件 服 ...

  2. Linux用户和权限——管理文件权限的命令

    Linux用户和权限——管理文件权限的命令 摘要:本文主要学习了Linux中修改文件权限的命令. chown命令 chown命令,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件( ...

  3. Linux用户和权限——管理用户和用户组的命令

    Linux用户和权限——管理用户和用户组的命令 摘要:本文主要学习了在Linux系统中管理用户和用户组的命令. useradd命令 useradd命令可以用来创建新用户. 基本语法 useradd [ ...

  4. Linux学习之进程管理(十九)

    Linux学习之进程管理 进程查看 查看系统中所有进程,使用BSD操作系统的格式 语法:ps aux 选项: a:显示所有前台进程 x:显示所有后台进程 u:显示这个进程是由哪个用户产生的 语法:ps ...

  5. Linux学习之用户管理命令与用户组管理命令(十五)

    Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel ...

  6. Linux 服务器用户权限管理改造方案与实施项目

    Linux 服务器用户权限管理改造方案与实施项目 在了解公司业务流程后,提出权限整改方案改进公司超级权限root泛滥的现状. 我首先撰写方案后,给boss看,取得boss的支持后,召集大家开会讨论. ...

  7. Linux用户组和权限管理

    Linux用户组和权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.Linux的安全模型 1>.安全3A 这并不是Linux特有的概念,在很多领域都有3A的概念 ...

  8. Linux学习笔记:Linux命令之权限管理命令

    权限管理命令 chmod(重要) 命令名称:chmod 英文原意:change the permissions mode of a file 执行权限:所有用户 功能描述:改变文件或目录权限 语法:c ...

  9. MongoDB学习笔记—权限管理

    1.MongoDB权限介绍 a 上篇文章中,我们在Linux下配置了MongoDB环境并且将其设置为服务随机器启动而启动,那么接下来这篇文章我们就来简单说一下MongoDB下对登录用户权限的管理. b ...

随机推荐

  1. Stream 同步错误之解决方案 ORA-00001 ORA-26787 ORA-26786

    stream是 oracle 11g  支持的数据同步技术, 虽然该技术已经不是什么新技术, 但目前国内采用该技术开发的软件不多见. stream 同步软件项目参与近一年, 近期软件上线实施, 效果不 ...

  2. pip/easy_install failure: failed to create process

    使用pip install requests安装requests, 报错: failed to create process 解决方法: 执行Python -m pip install --upgra ...

  3. [源码]ObjectIOStream 对象流 ByteArrayIOStream 数组流 内存流 ZipOutputStream 压缩流

    1.对象流 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File ...

  4. Solr导入MySql中的数据

    1.参照 http://www.cnblogs.com/luxh/p/5016894.html 部署好solr的环境 2.在solr_home下建立一个core_item目录 [root@iZ23ex ...

  5. (推荐)WPF动画教程

    无意间发现博主的文章,记录推荐一下. http://www.cnblogs.com/alamiye010/archive/2009/06/17/1505346.html http://www.cnbl ...

  6. ADO数据库操作

    void CSjtestDlg::OnBnClickedButtonAdd() { // TODO: 在此添加控件通知处理程序代码 this->ShowWindow(SW_HIDE); DigA ...

  7. ubuntu 13.10 monodevelop3 安装

    版本 ubuntu 13.10 桌面模式默认:unity :文件管理器:nautilus

  8. 怎么创建一个Database快照

    How to create the database Snapshot: use mastergoif not exists (select * from sys.databases where na ...

  9. JAVA IO 学习

    Java流的分类 1.输入/输出流 输入流:只能向其读数据,不能写. 输出流:只能向其写数据,不能读. 所谓的输入输出都是相对应用程序而言的. 2.字节流/字符流 单位不同,字节流操作8位,字符流操作 ...

  10. JS-改变页面的颜色之变化核心-获取六位的随机数

    前言:从JS-改变页面的颜色(一).JS-改变页面的颜色(二).JS-改变页面的颜色(三)三个简单的小白例,我们可以轻而易举的看到起变化的核心是——十六进制颜色值的获取方式,所以,我们这里总结一下获取 ...