权限管理

权限及权限管理

权限管理:
r:
w:
x:


三类用户:
u:属主
g:属组
o:其他用户

chown:改变文件属主(只有管理员可以使用此命令)
    chown USERNAME  file,.....
        -R:修改目录及其内部文件的属主
        --reference=/path/somefile  file,.....   把file文件的属主设置为跟somefile一样
    chown USERNAME:GRPNAME file,.....  即改变属主,又改变属组

chgrp:改变文件属组(只有管理员可以使用此命令)
        -R
        --reference=/path/somefile  file,.....

chmod:修改文件的权限
    修改三类用户的权限:
        chmod MODE  file,.....
            -R
            --reference=/path/somefile  file,.....   复制权限
    修改某类用户的权限或某些类权限:
        u,g,o,a
        chmod 用户类别=MODE file,.....
            chmod u=rwx /tmp/aba
            chmod u=rw- /tmp/aba
            chmod o=r-x /tmp/aba
    修改某类用户的某些位权限:
        u,g,o,a
        chmod 用户类别+MODE file,...
            chmod u-x /tmp/aba
            chmod g+rw /tmp/aba
            chmod a+x /tmp/aba
            chmod -x /tmp/aba

特殊权限:
    SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者
        chmod u+s FILE
        chmod u-s FILE
            如果FILE本身原来就有执行权限,则SUID显示为S;否则显示为s
    SGID:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者
        chmod g+s FILE
        chmod g-s FILE

    sticky:在一个公共目录,每个人都能创建文件上,删除自己的文件,但不能删除别人的文件
        chmod o+t DIR
        chmod o-t DIR



    特殊场景:
        一个开发小组有,希望实现组里面的每个人都能访问并编辑组里面其它人创建的文件,但不能删除别人的文件。
            develop (hadoop ,hbase,hive)
            /tmp/project/
            1、先将project目录的属组改为develop
                chown -R :develoop /tmp/project
            2、将三个用户的附加组加入develop
                usermod -a -G develop hadoop
            3、将/tmp/project/加入SGID
                chmod g+s /tmp/project/
            4、将/tmp/project/加入sticky位
                chmod o+t /tmp/project




你可能感兴趣的:(权限管理)