Linux系统是一个多用户、多任务的操作系统!所谓的多用户是指多人同时使用系统资源、多任务则是指同时运行多个程序。

    用户分为管理员和普通用户,普通用户又分为系统用户和登录用户。其中管理员的权限是最大的,管理员具有在有限资源的情况下给不同用户分配资源,以及对不同用户的监控、管理。系统用户仅运行服务程序,而登录用户是系统资源的正常使用者

   在不同的CentOS版本上每个用户的用户标识(UID)也是不一样的。具有一定的限制。而管理员的UID是"0"。

   如在,CentOS 5,6版本上   系统用户的UID是1-499   普通用户的UID是500+

       CentOS 7.0版本上   系统用户的UID是1-999   普通用户的UID的1000+


   实现用户账号的管理,要完成的工作主要有:用户账号的添加、修改、删除、密码管理、用户组的管理……等等,下面将会介绍到这些!

  

   一、用户管理

      用户账号的管理工作主要涉及到账号的添加、修改和删除。

     1、添加新的用户账号使用"useradd"命令,常规选项如下。

      -g:指定用户的用户组      -G:指定用户的附加组

      -c:注释信息            -d:指定用户的家目录

      -m:强制创建家目录        -s:用户登录的Shell名

 例:

      Linux_用户、组及权限管理_第1张图片

    如上图所示,新建一个用户"lweim",其登录Shell名是"bin/ksh",主目录是"/home/lweim";另一个新建用户"slackware",其登录Shell是"/bin/bash",主目录是"/usr/slackware"

     注意:新建用户"useradd"后面加"-d"和不加"-d"或加"-s"和不加"-s"是不同的。不加"-d"则是系统默认的家目录"/home/lweim"。加了"-d"则是指定的家目录"/usr/slackware"

        不加"-s"则是系统默认的登录Shell,加"-s"则是指定的登录Shell

  

    2、如过一个账号不在使用,可以从系统中删除掉,删除一个账号要使用到"userdel"命令,常规选项如下。

     -r:一并删除家目录

 例:

       Linux_用户、组及权限管理_第2张图片

  由图可知。在删除用户"wangtc"时没有加"-r",其还有家目录。

        在删除用户"wangzix"时加了"-r",其家目录一并删除。


   3.用户的修改。就是修改用户的相关属性。如家目录、用户组、登录Shell……等等,用户修改要使用"usermod"命令,常规选项如下。

        -c:注释信息           d-:修改家目录的位置

        -s:修改登录Shell名

   例:

       

    使用"usermod"命令后,用户"lweim"的家目录从"/home/lweim"变更成"/usr/lweim"。登录Shell名从"/bin/ksh"变更成"/bin/bash"


   4.密码管理;

      用户管理的一项重要内容就是密码管理,超级用户(管理员)可以改变自己和其他用户的密码,普通用户只能修改自己的密码。其修改密码需要用到"passwd"命令,常规选项如下;

        -l:锁定密码             -u:解锁密码

        -d:清除密码

   例:

       wKiom1bgGgrDBbAkAAApBwTQjdw701.png



   二、用户组管理

      每一个用户都有一个用户组,也可以拥有多个附加组(即额外组)。用户组的管理涉及到用户组的添加、修改和删除。

     1、增加一个新的用户组使用"groupadd"命令,常规选项如下;

         -g:指定新用户组的组标识号     -r:创建一个系统组

  例:

         Linux_用户、组及权限管理_第3张图片

    第一条命令是创建了一个名为"group1"的用户组,其组标识号为1001;

    第二条命令是创建了一个名为"group2"的系统组,其组标识号为986;


   

    2、修改用户组的属性使用"groupmod"命令,常规选项如下;

        -g:为用户组指定一个新的组标识号      -n:为用户组改一个新名字

    例:

            Linux_用户、组及权限管理_第4张图片

        此命令是将用户组"group4"命名为新的名字"group5",且用户组标识号从"2223"变更成"3333"。


    3、如果要删除一个已有的用户组,要使用"groupdel"命令。

    例:

              

    此用户的命令是将用户组"group5"删除。


   

    三、权限管理

     Linux是一种典型的多用户系统,不同的用户处于不同的地位,也就具有不同的权限。每位用户访问同一文件或目录的权限也就不同。

     我们可以使用命令"ll""ls -l"来显示一个文件或目录的属性及所属的用户和组。常规选项如下;

    例:

        Linux_用户、组及权限管理_第5张图片

     实例中,目录"etc"文件的第一个属性用"d"来表示,"d"在Linux中代表该文件是一个目录文件。其他属性如下;

     [-]:表示文件

     [l]:表示为链接文档

     [b]:表示为装置文件里面的可供存储的接口设备(可随机存取装置)

     [c]:表示为装置文件里面的串行端口设备,例如键盘、鼠标。

  

     "wKioL1bgJkbRUzgkAAABNr1pI6k584.png",除去第一个字符"d",接下来的字符中,以三位为一组,左三位是属主的访问权限(user)、中三位是属组的所有用户的访问权限(group)、右三位是其他用户的访问权限(others)。且均为[rwx]的三个参数组合。其中"r"代表可读权限、"w"代表可写权限、"x"代表可执行权限。"-"代表没有任何权限。

     注意:这三个权限的位置不会改变,且存在两种状态“要么有权限(用1表示)、要么没权限(用0表示)”。八进制的数都是由三位二进制的数组成,如下;

          ---:000   0

          --x:001   1

          -w-:010   2

          -wx:011   3

          r--:100   4

          r-x:101   5

          rw-:110   6

          rwx:111   7

      例:wKiom1bgKhnS6y92AAAEejhPkOg775.png

       目录"etc"的权限是[rwxr-xr-x]

       user=rwx=5   group=r-x=5    others=r-x=5

      即目录"etc"的权限可表示为"755"


   1、想要变更权限,有三种方法。都需要使用"chmod"命令,常规选项如下;

       -R:进行递归的变更,即目录本身和目录以下的文件的权限会一同改变。

     (方法1):使用"u=,g=,o=或ug=等等"的方法来改变权限!

     例:

         Linux_用户、组及权限管理_第6张图片

      上图所示,此命令使"etc"的权限从[rwxrwxr-x]变更成[rw-rw--x]。但是没有更改目录下的文件。想要更改连同目录下文件的属性一起更改,需要使用"-R"选项。如下图

        

  

    (方法二):使用"u+,g+,o+或ug+等等"的方法来改变权限!

    例:由(方法1)中的图所知目录"etc"的权限是[drw-rw---x],现在想要变更权限为[drwxrwxr-x],方法如下:

   例:   

          Linux_用户、组及权限管理_第7张图片

     由上图可得,目录本身即目录下文件的权限都变更为[drwxrwxr-x]


     (方法三):上面说到,每一个权限都可以表达成一个八进制的数。例如"775"可表示权限为[drwxrwxr-x]、664可表示权限为[drw-rw-r--]。所以我们可以依据这个来改变目录及文件的权限。如果想把文件及目录的权限改为770(drwxrwx---),则方法如下;

     例:

        Linux_用户、组及权限管理_第8张图片

     图中显示目录及目录下的文件的权限都改变为770.即[drwxrwx---];


  注意:方法一和方法二中的"u="和"u+"是不同的。

     "u="是某一组中的三位权限同时改变

     "u+"是改变某一组中某一位的权限

      例如:权限为"r-x-wx---"

          "u=r"则显示为[r---wx---]

          "u+w"则显示为[rwx-wx---]




    2、更改目录或文件的属组需要用到"chgrp"命令,常规选项如下。

        -R:目录下的所有文件的属组一同改变。

     例:

          

      图中显示,目录"etc"及目录下所有文件的属组都从"root"变更成"mageedu"


   3、更改目录或文件的属主需要用到"chowm"命令,也可以同时更改目录或文件的属组。常规选项如下;

       -R:目录下的所有文件的属组一同改变。

    例:

         Linux_用户、组及权限管理_第9张图片 

    图中目录"etc"及目录下所有文件的属主都从"root"变更成"wtc",属组都从"mageedu"变更成"lweimin"