Linux的用户、组和权限管理

一、linux用户和组的概念

   Linux是一个多用户多任务的操作系统,多用户是指多个用户可以在同一时间使用计算机系统。

 用户:

     1.什么是用户:用户是能够获取系统资源的权限的集合

     2.用户分为三类:

       管理员:具有使用系统所有权限的用户

  普通用户:即一般用户,其使用系统的权限受限

   系统用户主要服务于应用,维护系统运行的用户,一般不提供密码登录系统。

3.用户的相关信息存放位置

       用户解析库:/etc/passwd 

       name:password:UID:GID:GECOS:directory:shell

       用户的认证信息库:/etc/shadow    

4.用户管理:

       (1) useradd命令:创建新用户 

         useradd  [选项]  登录名

             -c,--comment  COMMENT:注释信息,一般为Full Name;

        -d,--home /PATH/TO/HOME_DIR:家目录路径,目标路径不能事先存在,否则会有警告,不会创建skel相关的文件给用户。指定用来取代默认的/home/username的主目录;

        -g,--gid GROUP :指定用户的基本组组名或GID;

        -G:用户所属的附加组列表,彼此间用逗号隔开,中间没有空格;

        -m,--create-home:强制创建家目录;

        -M:不创建用户主目录,即更改系统在/etc/login.defs中的设置(CREATE_HOME)为yes;

        -r,--system:创建一个系统用户;

        -s,--shell SHELL: 用户的登录shell名,默认为留空,让系统根据/etc/default/useradd中的SHELL变量选择默认的登录shell。

        -u--uid UID :用户ID的数字值。

       -e:用户账号的过期期限,过期后会被锁定,日期格式YYYY-MM-DD

         -f:密码过期后,账户被 彻底禁用之前的天数。0表示立即禁用,-1表示禁用这个功能。

     useradd  -D:显创建用户时的默认设置;

     useradd  -D 选项:设置某默认选项;

     为用户提供默认配置的配置文件:

      /etc/login.defs  ,  /etc/default/useradd

(2) usermod:修改账户信息

           -c,--comment  COMMENT:注释信息,一般为Full Name;

          -d:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会被移动到新            的目录中;

          -g:修改用户的GID或私有组名称;

          -G:修改用户的附加组,修改时会覆盖原来的附加组,一同使用-a选项,表示为用户添加新的附            加组;

          -l:修改当前用户的用户名

          -u:修改用户的UID

          -s:修改用户的登录shell

          -L:锁定用户的密码,会在用户加密的密码之前放置一个“!“

          -U:解锁用户的密码,这将移除加密的密码之前的”!“

       (3)userdel命令:删除用户账号

           -r,--remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除;

       (4)passwd命令:密码管理命令

           passwd:修改自己的密码;

           passwd username :修改其他用户的密码,仅root由此权限。

             -l:锁定密码

             -u:解锁密码

             -d:清除密码

    --stdin:从标准输入接收密码:echo “PASSWORD” | passwd --stdin USERNAME

       (5)其他常用命令:

         id命令:查看用户相关的id信息;

            -u:仅查看uid

            -g:仅查看gid

            -G:查看所属的所有组的ID

            -n:显示名称,而非ID

         su命令:switch user  切换用户

             su  USERNAME  :不读取目标用户的配置文件(非登录式切换,半切换)

             su -l USERNAME   su - USERNAME :读取目标用户的配置文件(登录式切换,完全切换)

             su -c command :仅以指定的用户的身份运行此处指定的命令,而不执行真正的身份切换操作

 

   组:

1.什么是组:用户组是具有相同特征用户的逻辑集合,是权限的容器。

2.组分类

     管理员组:

              普通用户组:可以加入多个用户

              系统组:一般加入一些系统用户

              私有组(也称基本组):当创建用户时,如果没有为其指明所属组,则就为其定义一个私有的用               户组,其名称与用户名同名.

    注:私有组可以变成普通用户组,当把其他用户加入到该组中,则其就变成了普通组。

     3.组信息存放位置:

           组解析库文件:/etc/group

              GRPNAME:x:GID:user1, user2, ...

             组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔

           组的认证信息库:/etc/gshadow

4.组管理

           groupadd命令:添加组

           groupadd  [选项]  group

                      -g  GID:指明GID;

                      -r--system:系统组;


            groupmod命令:修改组信息

               groupmod [选项] GROUP

                       -g :GID 

                       -n NEW_NAME:修改组名;


              groupdel命令:删除组

                  groupdel [选项] GROUP

              gpasswd :为组添加密码

 

二、文件系统文件权限分类

 1.

Linux的用户、组和权限管理_Linux


 

权限: r: readable,可读

        w: writable, 可写

        x:excutable, 可执行

 2.例:   drwxr-xr-x    d表示是目录文件。

  三类用户:

        属主:owner, u  : rwx,表示目录文件的拥有者有读、写和执行权限。

        属组:group, g  : r-x,表示属于此组的用户对此目录文件有读和执行权限。

        其它:other, o  : r-x,表示其他用户对此目录文件有读和执行权限。        

3.对文件来说:

        r:可获取文件的数据;

        w:可修改文件的数据;

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

4.对目录来说:

        r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以              cd至此目录中;

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

        x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中;

5.权限组合机制:

      以owner为例:

            --- 000   0

            --x  001   1

            -w-  010   2

            -wx  011   3

            r--  100   4 

            r-x  101   5

            rw-  110   6

            rwx  111   7

 

三、权限的管理

 1.用户类型(标识符):u:属主   g:属组   o:其它    a: 所有

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

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

            u=

            g=

            o=

            a=

            两类用户权限相同:ug=, go=

            不同类的用户权限不同:u=,g=,o=

        授权表示法:操作一类用户一位或多位权限;

            u+, u-

            g+, g-

            o+, o-

            a+, a-

              两类用户权限收授机制相同:ug+, ug-, ...

              不同类的用户权限不同:u+,g+,o+

 3.chmod [OPTION]...  

        --reference=RFILE FILE…   参照某个文件的权限来进行授权操作

        -R,--recursive:递归修改

         NOTE:普通用户仅能修改属主为自己的那些文件的权限;root可以更改所有用户

 4.chown命令: 更改文件目录的所有者,也可以更改所属组

 5.chgrp命令: 更改文件目录的所属组

 6.umask:显示或设定文件模式掩码

         文件默认权限:666-umask

         目录默认权限:777-umask

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

         显示当前用户的umaskumask

         设定:umask MASK

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