zoukankan      html  css  js  c++  java
  • Linux高级权限管理

    传统权限模型缺点:

    传统的UGO权限模型无法应对负责的权限设置要求,如对于一个文件只能设置一个组,并且对该组进行权限控制,但是如果该文件有多个组合会对其进行访问,并且都要要求权限限制时,传统的UGO模型就无法满足需求了。

    这时候就需要采用ACL权限来管理了

    ACL(Access Control List)是一种高级权限机制,允许我们对一个文件或文件夹进行灵活的、复杂的权限设置

    ACL需要在挂在文件的时候打开ACL功能:

    mount -o acl /dev/sda5 /mnt

    ACL允许针对不同用户、不同组对一个目标文件、文件夹进行权限设置,不受UGO模型限制

    查看一个文件、文件夹的ACL设置

    getfacl linuxcast.net

    针对一个用户对文件进行ACL设置:

    setfacl -m u:nash_su:rwx linuxcast.net

    m是modify的意思,u是user,nash_su是用户名,rwx是赋予nash_su对linuxcast.net文件的权限

    针对一个组对文件进行ACL设置

    setfacl -m g:training:rw linuxcast.net

    m是group,training是group的名字,rw是training组对linuxcast.net的权限

    删除一个ACL设置:

    setfacl -x u:nash_su linuxcast.net

    这时候用户名后面就不需要带权限,直接删除就OK

     第一步,新建一个统一的文件夹

    mkdir linuxcast.net

    然后在其下面新建三个子文件夹,文件夹名分别为:training , market , manage

    mkdir training
    mkdir market
    mkdir manage

    这时的默认权限为

    drwxr-xr-x. 2 root root 4096 Sep 22 05:54 manage
    drwxr-xr-x. 2 root root 4096 Sep 22 05:54 market
    drwxr-xr-x. 2 root root 4096 Sep 22 05:54 training

    这时,使用以下命令修改training文件夹所在的组,其它两个组类似

    chgrp training training

    这时权限为:

    drwxr-xr-x. 2 root manage   4096 Sep 22 05:54 manage
    drwxr-xr-x. 2 root market   4096 Sep 22 05:54 market
    drwxr-xr-x. 2 root training 4096 Sep 22 05:54 training

    建好文件后,因为其它组的用户不能访问本组的用户的文件,所以使用

    chmod o-rwx training

    每个组的other的权限减去rwx,这时其他组就不能再访问本组的权限了。

    这时候新建的用户目录的组应该继承其部门的组,所以使用

    chmod g+s training

    g是组的意思,s是继承的意思,也就是training下面的组就都是trining组了,修改后信息如下

    drwxr-s---. 2 root manage   4096 Sep 22 04:49 manage
    drwxr-s---. 2 root market   4096 Sep 22 04:49 market
    drwxr-s---. 2 root training 4096 Sep 22 04:48 training

    新建用户的权限为:

    drwxr-sr-x. 2 root training 4096 Sep 22 04:55 bob
    drwxr-sr-x. 2 root training 4096 Sep 22 04:55 nash_su

    再分别使用

    chmod nash_su nash_su

    把该文件的默认用户名root修改为该用户名

    drwxr-sr-x. 2 bob     training 4096 Sep 22 04:55 bob
    drwxr-sr-x. 2 nash_su training 4096 Sep 22 04:55 nash_su

    现在就差最后一部了,传统的UGO权限这时已经无法在给boss查看和执行的权限了,这时候,就可以用到 setfacl 了,使用命令

    setfacl -m g:boss:rx training

    m是modify的意思,g是group的意思,g后面接组的名字,组名后再接权限,这样就实现training部门,boss就有查看和执行该文件下面所有的权限了

    使用 getfacl training 查看该文件下的权限信息

    # file: training
    # owner: root
    # group: training
    # flags: -s-
    user::rwx
    group::r-x
    group:boss:r-x
    mask::r-x
    other::---

    这时候的组中就有了boss组的查看和执行的权限了。

  • 相关阅读:
    CCLayerColor 用法
    数据存储的常见方式
    rand() 和arc4random()到底应该如何取舍呢
    Cocos2d 中对图片的各种操作
    objectivec 解压缩zip
    设置IE浏览器默认的下载路径
    设置浏览器主页
    得到所有本机上安装的软件名
    取消快捷方式中的箭头图标
    查看本机服务
  • 原文地址:https://www.cnblogs.com/jacson/p/4830533.html
Copyright © 2011-2022 走看看