初学Linux,现将对用户、组和权限及管理做了一些整理,希望大家相互学习!

用户:

   即在系统内将有限的资源在多个使用者之间进行分配的一个系统组件;

   用户分类:Linux环境中用户一般分为管理员和普通用户;

      管理员(root)是系统中的超级用户,被授予对系统资源所有的访问权限,可以对其它其它用户及组进行管理;

       普通用户又分为系统用户和登录用户:

     系统用户:仅用于运行服务程序,保障系统正常运行;

     登录用户:系统资源的正常使用者,访问资源的权限需要Root管理指定;

用户IDUser ID UID):每个用户都有其ID号,用于系统对其识别;不同类型用户其ID号范围也有所不同,各类UID范围如下:

    管理员:0

    系统用户:CentOS 56版本:1-499CentOS 7版本:1-999

    登录用户:CentOS 56版本:500+CentOS 7版本:1000+

用户名称解析库:实现用户名和UID之间的转换,并存储用户名、UID及其它属性信息;

        解析库路径;/etc/passwd

可使用 cat/etc/passwd 查看系统内所有用户的信息;显示格式如下:

     wKiom1bhfAKjBrl9AAAuIJLd5tU871.png

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

  name:用户名;

    password:密码占位符;

    UID:用户ID

    GID:用户所在组ID

    GECOS:注释用户信息;

    directory:用户家目录;

    shell:用户默认shell

用户组

   用户组:即完成统一授权的容器,具有相同特征用户的集合;

   用户组分类:Linux系统中用户组分为管理员组和普通用户组;

     管理员组是具有管理员特征所有用户的集合;

     普通用户组又分为系统用户组和登录用户组:

       系统组:具有系统用户特征用户的集合;

       登录组:具有登录功能用户的集合;

   组IDGroup ID GID):用于系统对不同组的识别;各类组ID范围如下:

    管理员组:0

    系统组:CentOS 56版本:1-499CentOS 7版本:1-999

    登录组:CentOS 56版本:500+CentOS 7版本:1000+

 组名称解析库:实现组名和GID之间的转换,并存储组、UID及其它属性信息;

        解析库路径;/etc/group

    可使用 cat /etc/group 查看系统内所有用户的信息;显示格式如下:

        wKioL1bhfaDBdod1AAAbj48RglQ212.png

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

            GRPNAME:组名称;

            X:密码占位符;

            GID:组ID

            user1,user2,…:以此组为附加组的用户列表,以逗号分隔;

用户和组的管理

   1、  用户管理

     用户管理就是对用户账号的添加、修改和删除,以及查看用户账号信息。详细情如下:

1)添加用户:就是在系统中创建新用户账号,并对新账号分配用户名、UID、用户组、家目录、默认shell等资源。

命令:useradd

格式:useradd [选项] 登录名

常用选项:

   -c COMMENT:注释信息,一般为用户的全名;

 -d/PATH/TO/HOME_DIR:家目录路径,目标路径不能事先存在,否则会有警告,不会复               制skel相关文件给用户;

    -g GROUP:用户的基本组组名或GID

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

    -m:强制创建家目录;

    -M:不创建家目录;

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

    -s SHELL:指定用户默认shell

    -u UID:用户UID号;

例如:创建一个新用户testUID2016,基本组为M18,家目录和工作shell为默认。

操作命令:#useradd -u 2016–g M18 test

查看验证:#id username    如图: wKioL1bhfpuzihyZAAAnsJtP9uc413.png

也可使用 #tail -1 /etc/passwd查看更多详细内容:

wKioL1bhftSzSn1ZAAAebB_8slE843.png       

2)修改用户:当用户权限等信息发生变化时,可能用户信息进行修改。

 命令:usermod

 格式:usermod [选项] 登录名

 常用选项:

    -c COMMENT:修改注释信息,一般为用户的全名;

    -d/PATH/TO/HOME_DIR:修改家目录路径,使用-m选项,当前家目录内容将移动到新家                   目录,如果不存在,则创建;

    -g GID:修改基本组组名或GID

    -G GROUP1[,]:修改附加组,修改时覆盖原有附加组;一同使用-a,表示为用户添加              新的附加组;

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

    -s--shellSHELL:修改默认shell

    -u--uid UID:修改用户UID,使用-0,同一UID可多用户使用;

    -L--lock:锁定用户密码;

    -U--ulock:解锁;

例如:修改test用户注释信息为:My-test,并将用户添加至M1818附加组,并修改用户默认shell/bin/csh

操作命令:#usermod  -c My-test -G M1818  -s /bin/csh  test

验证结果如下:

wKioL1bhf7iwkgZDAABGn_x4z7k362.png

3)用户密码管理:即管理用户账号密码及账号各种期限

 密码设置命令:passwd

 格式:[选项] 登录名

 常用选项:

    -i:锁定密码

    -u:解锁密码

    -d:清除密码

    -e:有效期限

    --stdin:从标准输入接收密码

   echopasswd passwd --stdin username

 在个人用户下可修改自己的密码,管理员可修改其它用户密码。

 例如:为test用户添加密码为:test123456

 操作命令:#passwdtest

 用户密码交互式输入,如下图:

 wKiom1bhf6LgGbRbAAA_tvzEJH8408.png

 密码期限修改命令:chage

 格式:chage [选项] 登录名

 此命令可直接用chage 登录名交互式设置密码各种期限。

 例如:将test用户密码最大使用期限设置为30天,告警时间为提前7天,开启非活动期限,其它选项默认。

 操作命令:#chagetest

 交互式输入各选项,如下图:

wKioL1bhgJbxg_P5AABe5tA8InU999.png

4)删除用户:即删除用户信息

 命令:userdel

 格式:userdel [选项] 登录名

 常用选项:

    -r:删除用户家目录和邮箱

 例如:删除用户test,并删除test用户家目录和邮箱。

 操作命令:#userdel -r test

 即用户test信息已删除,验证如下:

 wKiom1bhgFmCKPwjAAAllsd5MUs462.png      

   2、用户组管理

     用户组管理,即对用户组的添加、修改、删除等一些管理

1)添加用户组

  命令:groupadd

  格式:groupadd [选项] 组名称

  常用选项:

     -g GID:指定GID

     -r:创建系统组

     -n NEW_NAME:修改组名

 例如:创建用户组M18GID2001

   操作命令:groupadd –g 2001M18

   可通过tail -1 /etc/group命令查看创建结果

   wKioL1bhgVeSKUpJAAAlZdHG_QY804.png   

2)修改用户组

   命令:groupmod

   格式:groupmod [选项] 组名称

   常用选项:

      -g GID:修改GID

      -n:修改组名称 

 例如:将用户组M8GID改为3001,并将组名称改为M1818.

   操作命令:groupmod –g 3001–n M1818 M18

   验证结果如下:

  wKiom1bhgWyyZSdAAAAqvqUqghk247.png

3)删除用户组

  命令:groupdel

  格式:groupdel [选项] 组名称

  例如:删除用户组M1818

  操作命令:groupdel M1818

  wKioL1bhgjqiovrGAAARwUDMtcc192.png

权限及管理

   用户权限即是用户对目录和文件进行操作的行为控制,具体可分为三类:

      rreadable,可读;

      wwriteable,可写;

      xexcuteable,可执行;

   目录或文件权限可授予不同用户不同权限,Linux系统中对目录或文件的权限的执行的用户分为三类:

     owneru:属主

     groupg:属组

     alla:所有

   在Linx系统中,权限是三位一组相组合的,权限组合机制如下:

   三位一组权限  二进制表示  八进制表示  表示权限

    ---       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- r-- r--   644

              属主属组其它   644

   权限管理又分为权限位(mode)的管理和权限所属(ownership)的管理常用权限管理命令如下:

1chmod命令:

作用:修改权限位

格式:chmod[OPTION]... MODE[,MODE]... FILE...

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

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

现将三种命令格式分别详解:

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

  表示直接修改权限位,方法如下:

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

  表示方法:如:u=rw-g=-w-o=--x…

   例如:将/etc/fstab文件复制到/tmp中,并将新复制文件属主权限改为rwx,属组和其它权限改为rw-

  操作命令:#cp/etc/fstab /tmp

       #chmod u=rwx,g=rw-,o=rw /tmp/fstab

修改完成后可使用 #ll/tmp/fstab 命令查看修改情况,如图:

wKiom1bhhNiAHsneAABPbnGMR8Q395.png

修改成功。

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

表示方法:如:u+xg-wo+x…

         例如:将上题中/tmp/fstab文件,取消属主x权限,添加属组x权限,取消其它r权限。

         操作命令:#chmodu-x,g+x,o-r

         查看验证:#ll/tmp/fstab    如图:

         wKioL1bhhbXwmYO6AAAy_Yl27lg625.png

       修改成功。

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

       表示用八进制授权表示法,方法如下:

            chmod八进制数 文件

       例如:将上题中/tmp/fstab文件,属主权限修改为r-w,属组和其它权限修改为---

       操作命令:#chmod544 /tmp/fstab

       查看验证:#ll/tmp/fstab    如图:

         wKiom1bhhauAv4tHAAAx8Z-1-kY870.png

         修改成功。

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

       表示引用参考文件或目录的权限修改目录或文件权限

         --reference=RFILE:表示参考文件模型

       例如:参考/etc/yum.conf文件,修改/tmp/fstab文件权限

       操作命令:#chmod----reference=/etc/yum.conf  /tmp/fstab

       查看验证:#ll/etc/yum.con

             #ll/tmp/fstab    如图:

        wKiom1bhhgjzQE2NAAA94QbQk4Q900.png

      常用选项:

          -R--recursive:递归修改

      例如:将/tmp/test.yum目录及目录下所有文件属组权限位改为r

      操作命令:#chmod –Rg+r /tmp/test.yum

      查看验证:#ll –a /tmp/test.yum    如图:

       wKiom1bhhk2gZKfCAABpPM_4_lg098.png

注意:此选项在第一种方法中可用,在后两种方法中使用有风险!可自行验证!

    (2)chonw命令:

      作用:修改文件属主、属组

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

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

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

       表示直接修改属主或属组;

       例如:将/tmp/test.yun目录属主改为test,属组为test.yum.

       操作命令:#chowntest:test.yum /tmp/test.yum

       查看验证:#ll –d/tmp/test.yum    如图:

       wKiom1bhhrDS24lPAAAuQkV7De8723.png

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

       表示引用参考文件或目录权限修改目录或文件权限

       操作工作机制同chmod命令,不再详述。

       常用选项:

          -R--recursive:递归修改

         操作机制同上,不再详述。

  3chgrp命令:

     作用:修改属组

    格式:chgrp [OPTION]...GROUPFILE...

         chgrp [OPTION]... --reference=RFILEFILE...

     [1]chgrp [OPTION]... [OWNER][:[GROUP]] FILE...

       表示直接修改属组

       例如:将/tmp/fstab文件属组改为test.yum

       操作命令:chgrp test.yum/tmp/fstab

       查看验证:ll/tmp/fstab    如图:

       wKiom1bhh1nQ4h20AAAuoNnxgUs844.png

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

     表示表示引用参考文件或目录权限修改目录或文件权限。

     操作机制同上,不再详述。

   以上便是个人对用户、组权限及管理的基本总结,希望对初学Linux的小伙伴有所帮助,大家相互学习。