Linux基础之权限管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础之权限管理相关的知识,希望对你有一定的参考价值。


权限管理:


  ls -l 

    rwxrwxrwx:

左三位:定义user(owner)的权限

中三位:定义group的权限;

右三位:定义other的权限


  进程安全上下文:

    进程对文件的访问权限应用模型:

进程的属主与文件的属主是否相同;如果相同,则应用属主权限;

否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限;

否则,就只能应用other的权限;


  权限:

    r:readable, 读

    w:writable, 写

    x:excutable,执行


    文件:

r:可获取文件的数据;

w: 可修改文件的数据;

x:可将此文件运行为进程;


    目录:

r:可使用ls命令获取其下的所有文件列表;

w: 可修改此目录下的文件列表;即创建或删除文件;

x: 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息;


    mode:rwxrwxrwx

    ownership:user, group


  权限组合机制:

    --- 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-rw-r--, rwxrwxr-x, rwxr-x---, rw------, rwxr-xr-x

664, 640, 600, 775, 750, 755 (8进制表示法)


  权限管理命令:

    chmod命令:

chmod [OPTION]... MODE[,MODE]... FILE...

chmod [OPTION]... OCTAL-MODE FILE...

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


三类用户:

 u:属主

 g:属组

 o:其它

 a: 所有


       (1) chmod [OPTION]... MODE[,MODE]... FILE...


 MODE表示法:

   赋权表示法:直接操作一类用户的所有权限位rwx;

u=

g=

o=

a=


   授权表示法:直接操作一类用户的一个权限位r,w,x;

u+, u-

g+, g-

o+, o-

a+, a-


(2) chmod [OPTION]... OCTAL-MODE FILE...

   8进制


        (3) chmod [OPTION]... --reference=RFILE FILE...

   指定与某文件权限相同


        选项:

 -R, --recursive:递归修改

 --reference:参考性修改


注意:用户仅能修改属主为自己的那些文件的权限;


  从属关系管理命令:chown, chgrp


    chown命令:

chown [OPTION]... [OWNER][:[GROUP]] FILE...

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


选项:

          -R:递归修改


chown -R root:root /PATH/TO/SOMEFILE

chown -R root.root /PATH/TO/SOMEFILE

chown -R :root /PATH/TO/SOMEFILE


    chgrp命令:


chgrp [OPTION]... GROUP FILE...

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


    注意:仅管理员可修改文件的属主和属组;


  思考:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件?


  umask:文件的权限反向掩码,遮罩码;

    文件:

666-umask

    目录:

777-umask


    注意:之所以文件用666去减,表示文件默认不能拥有执行权限;如果减得的结果中有执行权限,则需要将其加1;

umask: 023

 666-023=644

 777-023=754


    umask命令:

umask:查看当前umask

        umask MASK: 设置umask


    注意:此类设定仅对当前shell进程有效;


  练习:完成以下任务

1、新建系统组mariadb, 新建系统用户mariadb, 属于mariadb组,要求其没有家目录,且shell

为/sbin/nologin;尝试root切换至用户,查看其命令提示符;

     2、新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;

     3、新建用户fedora,其家目录为/users/fedora,密码同用户名;

     4、新建用户www, 其家目录为/users/www;删除www用户,但保留其家目录;

     5、为用户gentoo和fedora新增附加组mageedu; 

     6、复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为mageedu,并让属组对目录本身拥有写权限;


    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:设定目标文件属主;

         -g, --group=GROUP:设定目标文件属组;


    mktemp命令:

    mktemp - create a temporary file or directory


    mktemp [OPTION]... [TEMPLATE]


     常用选项:

       -d:创建临时目录


    注意:mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存起来;


以上是关于Linux基础之权限管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础篇(12)小白如何学习Linux?权限管理之文件权限

Linux运维基础-系统管理之权限管理

Python基础之Linux基础:用户权限相关命令

Linux基础之用户组和权限管理

Linux基础知识之用户和用户组以及 Linux 权限管理

linux基础:用户与组,权限管理