设为首页 收藏本站
查看: 897|回复: 0

[经验分享] #6 Linux权限的管理

[复制链接]

尚未签到

发表于 2018-5-18 08:40:21 | 显示全部楼层 |阅读模式
  用户的权限管理;

  普通权限:
  特殊权限:
  文件的特殊属性;
  FACL(文件访问控制列表):
  

  普通权限:
  进程安全上下文;
  1.判断进程的所有者是否为想要操作的文件的属主,如果是,就按照属主的权限进行授权;
  如果不是,就转到第2条;
  2.判断进程的所有者是否为想要操作的文件的属组中的成员,如果是,就按照属组的权限进行授权;如果不是,就转到第三条;
  3.按照其他用户的权限进行授权;
  权限的构成:
  MODE(permission):使用权
  r:readable,可读
  w:writable,可写
  x:executable,可执行
  

  目录:
  r:可以使用ls命令获得其中所有的文件名的列表;ls -l 命令来获取目录中文件的详细的属性信,也不能使用cd命令进入其中,也不能在路径中引用该目录;
  w:可以修改此目录中的文件名或文件名列表,即:可以在此目录中创建,修改或删除文件名;
  x:可以使用ls -l
  命令来获取其中的文件的详细属性信息;也可以在路径中引用该目录;也可以使用cd命令来进入其中;注意:x权限是目录的最基本权限,任何目录都必须对任何用户开放x权限,否则用户将无法进行任何操作;
  

  文件:
  r:可以查看或获取该文件中存放的数据;
  w:可以修改文件中存放的数据;
  x:可以将此文件发起运行为进程;
  

  ls -l <-->ll
  -rw-r--r--:三个权限为——属主、属组、其他用户
  属主权限:rw-
  属组权限:r--
  其他用户权限:r--
  

  权限标识三元组;
  标识  二进制  八进制
  ---     000      0
  --x     001      1
  -w-     010      2
  -wx     011      3
  r--     100      4
  r-x     101      5
  rw-     110      6
  rwx     111      7
  

  rw-r--r--
  110100100
  644
  

  755-->rwxr-xr-x
  

  注意:只有某个文件的属主才能修改文件的使用权限(root除外);
  修改文件的使用权限:
  chmod -->change mode:chmod - change file mode bits
  chmod [OPTION]... MODE[,MODE]... FILE...
  MODE:符号权限标识法
  u,g,o,a表示所有权;
  +,-,=标识授权方式;
  +:在原有的权限基础上添加新的权限;
  -:在原有的权限基础上去除某些权限;
  =:不考虑原有权限,直接将权限设置为目标权限;
  

  r,w,x表示具体权限内容;
  

  例子:
  chmod u+w file
  chmod g+rw file
  chmod u+x,g-wx,o--x file
  chmod u=fw,g=r,o=r file
  chmod ug-x file
  chmod +x file  默认的为a添加添加执行权限;
  chmod +w file  默认的只为属主添加写权限;
  

  注意:文件的执行权限;Linux的文件系统来说,非常重要的安全的标识;
  因为一旦文件具备了执行权限,意味着该文件可以被发起执行为进程;
  所以,默认情况下,文件都不具备执行权限;
  

  chmod [OPTION]... OCTAL-MODE FILE...
  如果使用八进制数字标识法,则每次必须给足所有的权限位;
  如果给的权限位不完整,文件系统会自动补足,将给定的权限放置在右侧,左侧使用0来补;
  

  chmod 640 file
  

  chmod [OPTION]... --reference=RFILE FILE...
  

  chmod --reference=/path/to/somefile des_file
  chmod --reference=a b
  选项:
  -R, --recursive:将目标目录中的文件及子目录和子目录中的文件统一的设置为指定的权限标识;
  

  

  

  

  ownership:所有权
  属主:资源掌控的某个特定用户;owner(user),u
  属组:资源掌控的某些特定用户;group,g
  其他用户:未曾掌控资源的那些用户;other,o
  

  全部用户:all,a
  chown - change file owner and group
  

  chown [OPTION]... [OWNER][:[GROUP]] FILE...
  chown OWNER FILE
  chown :GROUP FILE
  chown OWNER: FILE //
  将目标文件的属主改为OWNER,同时将属组改为OWNER的基础组;
  chown OWNER:GROUP FILE   //将目标文件的属主和属组修改为OWNER和GROUP;
  

  chown [OPTION]... --reference=RFILE FILE...
  

  -R, --recursive:将目标目录中的文件及子目录和子目录中的文件统一的设置为指定的所有权;
  注意:修改OWNERSHIP操作只有超级用户(root)可以完成;
  

  

  chgrp:只能修改文件的属组
  chgrp - change group ownership
  

  

  chgrp [OPTION]... GROUP FILE...
  chgrp [OPTION]... --reference=RFILE FILE...
  

  

  install命令:
  安装:复制文件;为文件赋予执行权限;
  install - copy files and set attributes
  单元复制:
  install [OPTION]... [-T] SOURCE DEST
  

  多元复制:
  install [OPTION]... SOURCE... DIRECTORY
  install [OPTION]... -t DIRECTORY SOURCE...
  创建目录:
  install [OPTION]... -d DIRECTORY...
  

  常用选择:
  -m, --mode=MODE::指定目标文件的权限,默认为755;
  -o, --owner=OWNER:设定目标文件的属主,只能是root可用;
  -g, --group=GROUP:设定目标文件的属组,仅root可以;
  

  注意:install命令不能复制目录,即其源不能为目录;如果其源为目录,则install命令会进入目录,依次复制其中的所有非目录文件到目标位置;
  

  mktemp命令:
  一般来讲,临时文件都会创建在/tmp或/var/tmp目录中,无需手动删除,系统会定期自动清除这两个目录中的文件;
  mktemp - create a temporary file or directory
  

  mktemp [OPTION]... [TEMPLATE]
  

  选择:
  -d, --directory:可以创建临时目录;
  

  例子:
  mktemp [-d] path/to/tmp.xxxxxxxxxx
  特殊权限:
  SUID、SGID、STICKY
  

  默认情况下,用户发起执行一个进程,该进程的属主是其发起者;也就是说,该进程是以其发起者的身份在运行;
  

  SUID:
  功能作用:用户发起执行一个进程时,该程序文件如果拥有SUID权限的话,那么此程序发起的进程其属主为该程序文件的属主,而不是其发起者;
  

  SIDE权限所显示的位置:文件的属主权限中的执行权限位;如果属主本来就有执行权限,显示为s;否则,显示为S;
  

  管理文件的SUID权限:
  chmod u+|-s(u+或者-) file...
  SGID:
  如果某个目录的对于一些用户有写权限并且设置了SGID权限时,则所有对此目录有写权限的用户在创建新的文件或目录以后,新文件的属组不再是创建用户的基本组,而且是继承了该目录的属组;
  

  SGID权限显示的位置:文件的属组权限中的执行权限位;如果属组本来就有执行权限,显示为s;否则显示为S;
  

  管理文件的SGID权限:
  chmod g+|-s(g+或者-) file...
  

  STICKY:sticky(粘性的):粘滞位
  如果某个目录中,有超过一个用户可以有写权限,则这个多用户都可以在该目录中随机创建、修改和删除文件名;
  

  STICKY的功能作用:
  如果为上述类似的目录设置了STICKY权限,则每个用户仍旧能够创建和修改文件名,但每个用户只能删除那些属主为其自身的文件名;
  

  STICKY权限的显示位置;在文件权限的其他用户的执行权限位;如果原来就有执行权限,则显示为t;否则,显示为T;
  

  管理文件的STICKY权限:
  chmod o+|-t(o+或者-) file...
  

  suid   sgid    sticky
  ---     000      0
  --t     001      1
  -s-     010      2
  -st     011      3
  s--     100      4
  s-t     101      5
  ss-     110      6
  sst     111      7
  

  特殊权限的另一种修改方式:
  将特殊权限对应的八进制数字放置于普通权限八进制数字的前面即可;
  

  例如:想要给某个目录加上粘滞位;
  chmod 1755 DIRECTORY...
  

  umask
  权限遮罩码:在创建文件或目录时默认的权限生成标准;
  

  root:0022
  不考虑特殊权限位
  对于新创建的文件或目录,不遮挡属主的任何权限;遮住了属组的写权限和其他用户的写权限;
  

  [root@CentOS-64-67A ~]# mkdir test --> rwxr-xr-x
  [root@CentOS-64-67A ~]# touch test.txt --> rw-r--r--
  

  文件的默认权限是:666-umask(有争议的)
  目录的默认权限是:777-umask(有争议的)
  理解遮罩码:
  将遮罩码的值变为二进制,凡是有1的位置,其权限在创建文件时,就不设置;
  

  033   000011011 --- 110100100 644
  ---
  

  

  默认情况下。文件的遮罩码已经有了一个0111,在此基础上再次应用unask来遮罩权限
  

  文件的特殊属性:
  查看文件的特殊属性:
  lsattr - list file attributes on a Linux second extended file system
  lsattr [ -RVadv ] [ files...  ]
  修改设置文件的特殊属性:
  chattr - change file attributes on a Linux file system
  chattr [ -RVf ] [ -v version ] [ mode ] files...
  mode:会使用+-=的方式来设置
  整个chattr命令最关键最核心的设置就是[mode]部分:
  [aAcCdDeijsStTu]都是所需要的属性:
  

  +:在原有属性设定的基础上,添加新属性;
  -:从原有属性设置中移除指定的属性;
  =:不考虑原有的属性设置,直接将文件的属性更新为指定的属性内容;
  

  a:append,设置这个属性的文件,其内容不能被更改和删除,只能以追加的方式向文件中写数据;多数的服务器日志类文件会设置为此属性;
  A:atime,文件的访问时间戳;IO瓶颈;设置A属性,可以使得文件在被访问时不更改文件的访问时间戳,从而可以有效的防止IO瓶颈的发生;
  c:设置文件是否自动压缩后再自行存储;
  C:设置文件是否开启“写时复制”属性;
  d:设置文件在使用dump进行备份的时候,不会成为备份目标;
  D:设置文件在文件系统中的异步写操作;
  i:设置文件不能被删除、修改、设定链接关系;
  s:设置文件的保密性删除,一旦设置s属性的文件被删除,其对应存储设备中的使用空间会被一并收回;
  u:跟s属性相反,如果这样的文件被删除,则其存储于存储设备中的数据会被留存;
  

  最常用的属性:i和a
  

  chattr +i FILE
  

  常用选择:
  -R:递归的设置指定目录中的所有文件和子目录的属性;
  

  为文件赋予额外的权限机制:FACL:file access control list,文件访问控制列表;
  在原有的额外赋权机制:
  在原有的u,g,o权限位置外,让普通用户能够控制权限赋予另外的用户和组的一种赋权机制;
  一般在centos或rhel7版本以后的发行版中,才逐渐成熟;
  

  与FACL有关的命令:
  getfacl:
  getfacl - get file access control lists
  getfacl [-aceEsRLPtpndvh] file ...
  getfacl [-aceEsRLPtpndvh]
  user:username:mode
  group:groupname:mode
  other::mode
  

  setfacl:
  setfacl - set file access control lists
  setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ...
  setfacl --restore=file
  acl_spec:acl_specification,指定的访问控制列表
  u:username:mode
  g:groupname:mode
  mode:一般使用符号权限标识法;
  

  为用户赋予额外权限:
  setfacl -m u:username:mode file...
  为组赋予额外权限:
  setfacl -m g:groupname:mode file...
  撤销为用户赋予的额外权限:
  setfacl -x u:username
  撤销为组赋予的额外权限:
  setfacl -x g:groupname
  

  注意:如果设置了FACL之后在修改目标文件的使用权限,那么FACL中设置的条目就可能收到影响而导致与要求不服;因为,如果真的需要设置FACL,就要在已经确定目标文件的使用权限以后再行设置;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-461539-1-1.html 上篇帖子: linux grep命令总结 下篇帖子: Linux Awk用法总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表