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

[经验分享] Linux普通权限及特殊权限讲解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-5 08:49:59 | 显示全部楼层 |阅读模式
1.文件权限
文件权限主要是针对三类对象进行定义的:
                                       owner:属主,u
                                       group:属组,g
                                       other:其他,o
每个文件针对每个类定义了三种权限:
                                       readable: r
                                       writable: w
                                       excutable:x
三种文件权限:
                                       r: 可使用文件查看类工具获取其内容
                                       w: 可修改其内容
                                       x: 可以把此文件提请内核启动为一个进程
三种目录权限:
                                       r: 可以使用ls查看此目录中文件列表
                                       w: 可在此目录中创建文件,也可删除此目录中的文件
                                       x: 可以使用ls -l查看此目录中文件列表,可以cd进入此 目录
                                       X:只给目录x权限,不给文件x权限
2.目录权限:
      [iyunv@iZ11yrfw9g3Z ~]# ll -d luyubo
1
     drwxr-xr-x 2 root root 4096 Aug  4 13:48 luyubo



                                       d表示文件类型
                                       rwxr-xr-x 每三个一组
                                       rwx表示所属用户权限
                                       r-x表示所属组的权限
                                       r-x表示其他用户权限
                                       2表示引用连接数
                                       root表示所属用户
                                       root表示所属组
                                       4096表示文件大小
                                       Aug  4 13:48表示时间
                                       luyubo表示目录
3.chmod命令:
    用法:chmod [选项]... 模式[,模式]... 文件...
   或:chmod [选项]... 八进制模式 文件...
   或:chmod [选项]... --reference=参考文件 文件...
    修改一类用户的所有权限: u=  g= o= ug=  a= u=,g=
    修改一类用户某位或某些位权限 u+  u- g+ g- o+ o- a+ a- +
将每个文件的模式更改为指定值。

  -c, --changes                        类似 --verbose,但只在有更改时才显示结果
      --no-preserve-root        不特殊对待根目录(默认)
      --preserve-root                禁止对根目录进行递归操作
  -f, --silent, --quiet                去除大部份的错误信息
  -v, --verbose                        为处理的所有文件显示诊断信息
      --reference=参考文件        使用指定参考文件的模式,而非自行指定权限模式
  -R, --recursive                以递归方式更改所有的文件及子目录
      --help                        显示此帮助信息并退出
      --version                        显示版本信息并退出
                                  chown 设置文件的所有者
1
                                [iyunv@localhost ~]# chown luyubo luyubo



4.chgrp命令使用方法
用法:chgrp [选项]... 用户组 文件...
 或:chgrp [选项]... --reference=参考文件 文件...
将每个指定文件的所属组设置为指定值。
如果使用 --reference,则将每个文件的所属组设置为与指定参考文件相同。

                    -c, --changes                        类似 --verbose,但只在有更改时才显示结果
                        --dereference                        影响符号链接所指示的对象,而非符号链接本身(默认值)
                    -h, --no-dereference                会影响符号链接本身,而非符号链接所指示的目的地
                                                        (当系统支持更改符号链接的所有者时,此选项才有用)
                       --no-preserve-root                不特殊对待"/"(默认值)
                       --preserve-root                        不允许在"/"上递归操作
                    -f, --silent, --quiet                去除大部份错误信息
                       --reference=RFILE                使用参考文件的所属组,而非指定值
                    -R, --recursive                        递归处理所有的文件及子目录
                    -v, --verbose                        为处理的所有文件显示诊断信息

以下选项是在指定了 -R 选项时被用于设置如何穿越目录结构体系。
如果您指定了多于一个选项,那么只有最后一个会生效。

        -H         如果命令行参数是一个通到目录的符号链接,则遍历符号链接
        -L         遍历每一个遇到的通到目录的符号链接
        -P         不遍历任何符号链接(默认)

      --help                显示此帮助信息并退出
      --version                显示版本信息并退出
chgrp 设置文件的属组信息
1
[iyunv@localhost ~]# chgrp luyubo luyubo



5.默认权限介绍
                                       umask值 可以用来保留在创建文件权限
                                       新建FILE权限: 666-umask 如果所得结果某位存在执行(奇数)权限,则将其权限+1
                                       新建DIR权限: 777-umask
                                       非特权用户umask是 002   权限是:775
                                       root的umask 是 022      权限是:755
                                       因为root权限太大,风险是很大的,所以默认权限是低于普通用户的
                                       umask: 查看当前mask值  #执行结果是:022
                                       umask #: 例如 umask 023   权限是754
                                       umask –S 模式方式显示  #大s以字母方式显示
                                       umask –p 输出可被调用  #执行结果是:umask 022
                                       全局设置: /etc/bashrc 用户设置:~/.bashrc
6.Linux文件系统上的特殊权限
   1.SUID,SGID,Sticky
    三种常用权限:r, w, x    user, group, other
       安全上下文
    前提:进程有属主和属组;文件有属主和属组
    (1) 任何一个可执行程序文件能不能启动为进程:取决发起者 对程序文件是否拥有执行权限
    (2) 启动为进程之后,其进程的属主为发起者;进程的属组为 发起者所属的组
    (3) 进程访问文件时的权限,取决于进程的发起者
    (a) 进程的发起者,同文件的属主:则应用文件属主权限
    (b) 进程的发起者,属于文件属组;则应用文件属组权限
    (c) 应用文件“其它”权限
    2.SUID:
    1.任何一个可执行程序文件能不能启动为进程:取决发起者对 程序文件是否拥有执行权限
2.启动为进程之后,其进程的属主为原程序文件的属主
3.SUID只对二进制可执行程序有效
4.SUID设置在目录上无意义
权限设定: chmod u+s FILE... chmod u-s FILE...
例如:设置二进制程序echo的属主权限
1
       [iyunv@localhost ~]# chmod u+s /bin/echo



   3.SGID:
       1.任何一个可执行程序文件能不能启动为进程:取决发起者对 程序文件是否拥有执行权限
       2.启动为进程之后,其进程的属主为原程序文件的属组
       3.权限设定: chmod g+s FILE... chmod g-s FILE...
        例如:设置二进制程序echo的属组权限
1
       [iyunv@localhost ~]# chmod g+s /bin/echo



       4.SUID:user,占据属主的执行权限位 s:属主拥有x权限 S:属主没有x权限
   4.目录SGID:
       1.默认情况下,用户创建文件时,其属组为此用户所属的主组
       2.一旦某目录被设定了SGID,则对此目录有写权限的用户在此 目录中创建的文件所属的组为此目录的属组
       3.通常用于创建一个协作目录
       4.权限设定: chmod g+s DIR... chmod g-s DIR...
       例如:设置/data/testdir/目录内所有新建文件为g1组。  
1
      [iyunv@localhost data]# chgrp g1 testdir/



1
      [iyunv@localhost data]# chmod g+s testdir/



       5.SGID:group,占据属组的执行权限位 s:group拥有x权限 S:group没有x权限
   5.Sticky位:
       1.具有写权限的目录通常用户可以删除该目录中的任何 文件,无论该文件的权限或拥有权
       2.在目录设置Sticky位,只有文件的所有者或root可 以删除该文件
       3.sticky设置在文件上无意义
       4.权限设定: chmod o+t DIR... chmod o-t DIR...
       5.例如:我们bo目录加上t权限:
1
    [iyunv@localhost home]# chmod o+t bo/



1
    [iyunv@localhost home]# ll -d bo/



1
    drwxrwxrwt 2 root root 4096 8月   4 20:58 bo/



     切换用户至tom尝试删除目前内的文件是没有权限,但是我们的权限是777,这就是sticky的作用
      6.Sticky: other,占据other的执行权限位 t: other拥有x权限 T:other没有x权限
7.文件特定属性
      1.chattr +i 不能删除,改名,更改
      2.chattr +a 只能增加
      3.lsattr 显示特定属性
8.访问控制列表acl
     1.ACL:Access Control List,实现灵活的权限管理
     2.除了文件的所有者,所属组和其它人,可以对更多的用户设 置权限
     3.CentOS7.0默认创建的xfs和ext4文件系统有ACL功能。
     4.CentOS7.X之前版本,默认手工创建的ext4文件系统无ACL功能。需手动增加:tune2fs –o acl /dev/sdb1 mount –o acl /dev/sdb1  /mnt
     5.ACL生效顺序:属主,自定义FACL属主,属组,自定义FACL属组,其他人
     6.ACL命令:
            getfacl 查看acl
            setfacl -x删除权限
            setfacl -b彻底清空文件上面的acl
            setfacl -d设置默认acl权限,新建文件生效
            setfacl -k删除设置默认acl权限
            setfacl -m u:::rw file设置所有者权限
            setfacl -m m:::rw file设置mask 权限
            设置mask,只影响除所有者和other,其他权限不能比mask高,或者相等
            设置acl之后  所属组权限就不是组权限了,就是mask权限了
     7.ACL文件上的group权限是mask 值(自定义用户,自定义组 ,拥有组的最大权限),而非传统的组权限
     8.getfacl 可看到特殊权限:flags
     9.默认ACL权限给了x,文件也不会继承x权限。 ?base ACL 不能删除
     10.setfacl -k  dir 删除默认ACL权限
     11.setfacl -b file1清除所有ACL权限
     12. mask只影响除所有者和other的之外的人和组的最大权限 Mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限 (Effective  Permission) 用户或组的设置必须存在于m  ask权限设定范围内才会生效。 setfacl -m mask::rx file
     13. --set选项会把原有的ACL项都删除,用新的替代,需要注意的 是一定要包含UGO的设置,不能象-m一样只是添加ACL就可以.
       例如:
1
            [iyunv@localhost home]# setfacl --set u::rw,u:tom:rw,g::r,o::- bo/



9.备份和恢复ACL
      1.主要的文件操作命令cp和mv都支持ACL,只是cp命令需要 加上-p参数。但是tar等常见的备份工具是不会保留目录 和文件的ACL信息
1
       [iyunv@localhost data]# getfacl -R testdir/ > acl.txt



1
       [iyunv@localhost data]# setfacl -R -b testdir/



1
       [iyunv@localhost data]# setfacl -R --set-file=acl.txt testdir/



1
       [iyunv@localhost data]# getfacl -R testdir/






运维网声明 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-253065-1-1.html 上篇帖子: Xshell的log日志记录问题 下篇帖子: cat cut paste sort uniq diff 等命令用法 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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