• Linux用户及用户组管理


    Linux是一个多用户的操作系统,引入用户,可以更加方便管理Linux服务器,系统默认需要以一个用户的身份登入,而且在系统上启动进程也需要以一个用户身份去运行,用户可以限制某些进程对特定资源的权限控制。每个用户实际上是代表一组权限,而这些权限分别表示可以执行不同的操作,是能获取系统资源的权限的集合。

    这里将介绍Linux系统如何管理创建、删除、修改用户角色、用户权限配置、组权限配置及特殊权限深入剖析。


    一、 Linux用户及组的识别符,UID与GID

    当我们登录Linux主机的时候是输入的用户帐号,但是Linux系统并不会直接识别你的帐号名称,他仅识别帐号的ID。这个ID就是UID(User ID)

    Linux操作系统可以有多用户,所谓用户组是指一组权限和功能相似的用户的集合,每个用户可以在一个独立的组,或同时在多个组,每个组的权限都会传递个这个用户,每个组也可以有零个用户或者多个用户。组也有他的ID这个ID就是GID(Group ID)

    Linux系统用户是根据用户UID来识别的,从默认UID编号从0开始,分别如下:

    系统管理员 (UID 0) #当UID是0时,代表这个用户是root用户,当你让其他帐号也具有root权限时,将该帐号的UID改为0即可。这里需要注意的是一个UID可有多个用户名,但不建议这样设置会有问题。

    系统帐号 (UID 1-999) #保留给系统使用的UID,用于满足文件或者服务启动的需要。这些帐号通常不可以登录。

    普通用户 (ID 1000以上) #给普通用户使用的

    Linux系统中的每个文件或者文件夹,都有一个所属用户及所属组,使用id命令可以显示当前用户的信息,使用passwd命令可以修改当前用户密码。Linux操作系统用户的特点如下:

    每个用户拥有一个UserID,操作系统实际读取的是UID,而非用户名;

    每个用户属于一个主组,属于一个或多个附属组,一个用户最多有31个附属组;

    每个组拥有一个GroupID;

    每个进程以一个用户身份运行,该用户可对进程拥有资源控制权限;

    每个可登陆用户拥有一个指定的Shell环境。


    二、 Linux用户管理

    Linux用户在操作系统可以进行日常管理和维护,涉及到的相关配置文件如下:

    /etc/passwd          保存用户信息

    /etc/shadow         保存用户密码(以加密形式保存)

    /etc/group     保存组信息

    /etc/login.defs    用户属性限制,密码过期时间,密码最大长度等限制

    /etc/default/useradd     显示或更改默认的useradd命令的配置文件

    /etc/passwd文件结构
    在/etc/passwd文件中每行代表一个用户帐号,有几行就代表有几个帐号在你的系统中。里面有很多帐号是系统正常运行所必须的,例如:bin nobody等,这些帐号不要随便删掉。查看/etc/passwd文件,只摘录一部分
    -----------------------------------------------------------------
    openSUSE:~ # cat /etc/passwd
    avahi:x:468:472:User for Avahi:/run/avahi-daemon:/bin/false
    bin:x:1:1:bin:/bin:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    tftp:x:476:477:TFTP account:/srv/tftpboot:/bin/false
    vnc:x:465:467:user for VNC:/var/lib/empty:/sbin/nologin
    pipci:x:1000:100:Pipci:/home/pipci:/bin/bash
    ------------------------------------------------------------------
    通过上面的摘录信息可以看出每一行都使用“:”冒号分隔,共有7个字段,每个字段的含义如下:

    账号名称:账号密码:账号UID:账号GID:用户说明:用户家目录:shell解析

    接下来,给大家分别介绍这 7 个字段。

    1、账号名称:  和用户UID对应,这是用户登录时使用的账号名称,在系统中是唯一的,不能重复。

    2、账号密码:  早期的Unix系统中,该字段是存放账号密码的,由于安全原因,后来把这个密码字段内容移动到/etc/shadow中,这里可以看到一个字母表示该用户密码在/etc/shadow中保护

    3、账户UID:  账号UID一般由一个整数表示的,范围是0~65535,新的内核版本会比这个更大。

    4、账户GID:  账号GID一般也是由一个整数表示的,范围是0~65535,当添加账户时,默认情况下会同时建立一个与用户同名且UID和GID相同的组,这个与发行版有关。

    5、用户说明:  这个字段是对这个账号二队描述说明,一般为用户的全名。

    6、用户家目录:  用户登录后首先进入的目录,一般为(/home/用户名)这样的目录

    7、shell解析器:当前用户登录后所使用的shell,在centos/rhel等linux中,默认的shell为bash,就是在这里设置的。如果不希望用户登录系统,可以用个usermod或者手工修改passwd配置,将该字段改为/sbin/nologin即可。如果仔细看passwd文件,会发现大部分内置系统账号的这个字段都是/sbin/nologin,表示禁止登录系统,这是出于安全考虑的。

    /etc/shadow文件结构
    /etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。前面介绍了 /etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了此文件中。/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。注意,如果这个文件的权限发生了改变,则需要注意是否是恶意攻击。
    查看/etc/shadow文件,只摘录一部分
    ----------------------------------------------------------
    openSUSE:~ # cat /etc/shadow
    avahi:!:18033::::::
    bin:!:18033::::::
    pulse:!:18033::::::
    root:$6$a4hM/suhtofw$DwRlYLvjWboyMny0Xz9ZwNXGs5fN1jMe8HyGjaL1zc4uvH2EBzQUeG/NnIGmnwxHWhfk3Tec8QPC2X1urI62l/:18033::::::
    vnc:!:18033::::::
    pipci:$6$WzSE91rBbzYf$ZCAOoKaKF2TQ1Vke03tgspLKnVqA3v2IhXLdKEiM80CAYEdBVeq.WIMVHNpBf5UVYWL22R1NNg9JhbndzaXSa1:18033:0:99999:7:::
    uucp:!:18046::::::
    ----------------------------------------------------------
    同 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段。每个字段的含义如下:

    用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

    接下来,给大家分别介绍这 9 个字段。
    1、账户名称
    同 /etc/passwd 文件的用户名有相同的含义。

    2、加密后的密码,如果这一栏的第一个字符为!或者*的话,说明这是一个不能登录的账户,ubuntu系统默认的不启用root账户。
    这里保存的是真正加密的密码。目前 Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法。SHA512 散列加密算法的加密等级更高,也更加安全。注意,这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上 "!"、"*" 或 "x" 使密码暂时失效。所有伪用户的密码都是 "!!" 或 "*",代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 "!!",代表这个用户没有密码,不能登录。

    3、最近改动密码的日期(这个是从1970年1月1日算起的总的天数)。
    Linux 计算日期的时间是以 1970 年 1 月 1 日作为 1 不断累加得到的时间,到 1971 年 1 月 1 日,则为 366 天。这里显示 15775 天,也就是说,此 root 账号在 1970 年 1 月 1 日之后的第 15775 天修改的 root 用户密码,如果是0代表下次用户登录必须更改密码。
    通过下面的命令可以把累加时间转化成正常可读取时间
    openSUSE:~ # date -d "1970-01-01 18033 days"        #累加时间为18033,这里可以改成自己想要转换的时间

    通过下面的命令可以把想要设置的时间转换成累加时间
    openSUSE:~ # echo $(($(date --date="2019/10/10" +%s)/86400+1))   #这里是把2019/10/10换算成累加时间,可以改成自己想要设置的目标时间。

    4、密码不可被变更的天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则没有限制
    该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。

    5、密码需要重新变更的天数:如果为99999则没有限制
    经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段。
    该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期。管理服务器时,通过这个字段强制用户定期修改密码。

    6、密码需要变更前的警告天数
    与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 "再过 n 天你的密码就要过期了,请尽快重新设置你的密码!"。该字段的默认值是 7,也就是说,距离密码有效期的第 7 天开始,每次登录系统都会向该账户发出 "修改密码" 的警告信息。

    7、密码过期的宽限时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数
    也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。

    8、账号失效日期,过了这个日期账号就无法使用
    同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!
    该字段通常被使用在具有收费服务的系统中。

    9、保留的
    这个字段目前没有使用,等待新功能的加入。


    三、Linux用户组,有效用户组和初始用户组

    所有的Linux或者Windows系统都有组的概念,通过组可以更加方便的管理用户,组的概念应用于各行行业,例如企业会使用部门、职能或地理区域的分类方式来管理成员,映射在Linux系统,同样可以创建用户,并用组的概念对其管理。

    Linux组有如下特点:

    每个组有一个组ID;

    组信息保存在/etc/group中;

    每个用户至少拥有一个初始用户组,同时还可以拥有31个附属组。

    通过命令groupadd、groupdel、groupmod来对组进行管理,后就将介绍

    /etc/group文件结构
    /ect/group 文件是用户组配置文件,即用户组的所有信息都存放在此文件中。此文件是记录组 ID(GID)和组名相对应的文件。前面讲过,/etc/passwd 文件中每行用户信息的第四个字段记录的是用户的初始组 ID,那么,此 GID 的组名到底是什么呢?就要从 /etc/group 文件中查找。
    查看/etc/group文件,只摘录一部分
    ------------------------------------------------------------
    openSUSE:~ # cat /etc/group
    audio:x:492:pulse
    avahi:x:472:
    bin:x:1:daemon
    vboxusers:x:463:pipci
    video:x:484:
    root:x:0:
    vnc:x:467:
    wheel:x:496:
    winbind:x:469:
    users:x:100:
    ------------------------------------------------------------
    此文件中每一行各代表一个用户组。各用户组中,还是以 ":" 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为:

    用户组名称:用户组密码:GID:此用户组包含的用户账号名称

    接下来,给大家分别介绍这 4 个字段。

    1、用户组名称  :就是用户组名称啦!

    2、用户组密码:  通常不需要设置,这个设置通常是给“用户组管理员”使用的,目前很少有这个机会设置用户组管理员。同样,密码已经移动到/etc/gshadow去,因此这个字段只会存在一个“x”而已。

    3、GID 就是用户组的ID。我们/etc/passwd第四个字段使用的GID对应的用户组名就是由这里对应出来的。

    4、此用户组包含的账号名称:我们知道一个账号可以加入多个用户组,那某个账号想要加入此用户组时,将该账号填入这个字段即可。举例来说,如果我想要让pi1与pi2加入到root这个用户组,那么在root组这一行的最后面加上”pi1,pi2”,注意不要有空格,使其成为“root:x:0:pi1,pi2”就可以了。

    初始用户组:
    在/etc/passwd中用户对应的那一行的第4个字段,就是所谓的初始用户组。也就是说,当用户登录系统,立刻就拥有这个用户组的相关权限。但是如果不是初始用户组,则必须要在/etc/group对应的某一行的第4个字段中添加用户名,才能把该用户添加进该用户组。/etc/group的每行的第4字段列出每个群组包含的所有用户。需要注意的是,如果该用户组是这个用户的初始组,则该用户不会写入这个字段,而该字段显示的用户都是这个用户组的附加用户。

    有效用户组
    如果一个账号同时在多个用户组内,那如果该用户新建一个新的文件或目录时,新文件的组是哪个呢?这个就跟当时的有效用户组有关了。
    想要知道用户自己当前的有效用户组和支持的用户组,使用groups命令即可。
    ---------------------------------------------------------
    pipci@openSUSE:~> groups
    users vboxusers
    pipci@openSUSE:~> touch ii
    pipci@openSUSE:~> ll ii
    -rw-r--r-- 1 pipci users 0 6月 29 06:56 ii
    ---------------------------------------------------------
    在上面这个输出的信息中列出了pipci用户支持的用户组只有两个,第一个输出的用户组就是当前的有效用户组了,后面的组就是次要用户组,新建的ii文件所属组就是users这个有效用户,如果不做有效用户组的切换默认的初始用户组就是有效用户组。

    使用newgrp命令可以切换有效用户组,注意只能切换当前账号支持的用户组。
    --------------------------------------------------------------
    pipci@openSUSE:~> newgrp vboxusers
    pipci@openSUSE:~> groups
    vboxusers users
    pipci@openSUSE:~> touch uu
    pipci@openSUSE:~> ll uu
    -rw-r--r-- 1 pipci vboxusers 0 6月 29 06:57 uu
    --------------------------------------------------------------
    上面的例子通过newgrp命令将用户pipci的有效用户在切换成vboxusers,再新建文件uu,可以看出uu这个文件所属组已经是vboxusers了。这个命令是以另外一个shell来提供这个功能的,换句话说,用户使用了另一个shell来登录,而且新的shell给予该用户的有效GID是新切换的用户组。由于是新取得一个shell,因此如果想回到原来的shell,则需要输入exit。


    四、添加帐号

    如需创建新用户,可以使用命令useradd,执行命令#useradd pi1即可创建pi1用户。

    useradd pi1 命令默认创建用户pi1,会根据如下步骤进行操作:

    1、读取/etc/default/useradd,根据配置文件执行创建操作;

    2、在/etc/passwd文件中添加用户信息;

    3、如使用passwd命令创建密码,密码会被加密保存在/etc/shadow中;

    4、为pi1创建家目录:/home/pi1; #CentOS7会默认创建,Debian9.5和OpenSUSE15不会创建,只有加-m参数才会主动创建。

    5、会将/etc/skel中的文件复制至/home/pi1家目录;

    6、创建与用户名相同的pi1组; #在CentOS7与Debian9.5系统中会同时创建一个同名的组pi1,默认该用户的初始和有效用户组为pi1。而OpenSUSE15系统下面不会创建同名的用户组,初始和有效用户组在为users组。

    7、pi1组信息保存在/etc/group配置文件中。

    ------------------------------------------------------

    在使用useradd命令创建用户时,可以支持如下参数:

    用法:useradd [选项] 用户名

    选项:

    -b,   指定新账户的基目录,如果通过useradd -m添加用户会创建用户主目录,这个目录会在/home目录下创建用户名同名的目录,如果指定基目录后再创建
    用户主目录就会在基目录下创建用户同名的目录而不是在/home下创建,比如基目录指定为opt,创建的用户为pi1那么pi1用户的主目录就为/opt/pi1目录;

    -c,   新账户的说明内容,也就是/etc/passwd第5字段的内容,一般设置为用户的全名;

    -d,   指定某个目录为新账户的主目录,必须使用绝对路径指定,CentOS7如果指定的目录不存在会主动创建,Debian9和openSUSE15不会主动创建;

    -D,    显示或更改默认的 useradd 配置;

    -e,   新账户的过期日期也就是/etc/shadow的第8字段的内容,格式YYYY-MM-DD,如果没有指定,则使用/etc/default/useradd文件中的EXPIRE变量的值;如果为空字符串,则表示永远不过期。

    -f,      密码过期的宽限时间,为/etc/shadow的第7字段的内容,0表示立即失效,-1表示永不失效;

    -g,    指定新账户的初始组的名称或ID;

    -G,   为新账户添加的附加组列表;

    -h,   显示此帮助信息并推出;

    -m,   创建用户的主目录,默认会在/home目录下创建与用户同名的目录,CentOS7默认不用-m也会创建,Debian9和openSUSE15不会主动创建需要加-m参数才会创建;

    -M,    不创建用户的主目录,CentOS7不创建需要加-M参数,Debian9和openSUSE15不需要加;

    -r,   创建一个系统账户,不创建用户的主目录,UID为1000以下;

    -R,   chroot 到的目录

    -s,    新账户的登录shell,需要使用绝对路径,CentOS7和openSUSE15会默认添加/bin/bash,Debian9需要指定;

    -u,   指定新账户的用户UID;

    -U,   创建与用户同名的初始用户组,openSUSE15默认创建用户的初始用户在为users可以通过这个选项指定创建同名的初始用户组;

    Useradd案例演示:

    新建pi1用户,同时创建pi1初始用户组,同时自动在/home下创建用户主目录,登录shell为/bin/bash, 用户的名为Pi1;
    ------------------------------------------------------
    [root@CentOS7 ~]# useradd pi1 -c Pi1

    root@debian:~# useradd -m pi1 -c Pi1 -s /bin/bash

    OpenSUSE:~ # useradd -mU pi1 -c Pi1 -s /bin/bash
    ------------------------------------------------------
    同样的需求不同的发行版,创建时候所需要的参数不同,主要因为/etc/default/useradd, /etc/login.defs两个文件的默认配置不同。

    新建pi2用户,同时创建pi2初始用户组,同时指定/opt到的目录;/pi2目录为用户的主目录,登录shell为/bin/bash ,用户的名为Pi1;;
    ------------------------------------------------------------------------------------
    [root@CentOS7 ~]# useradd pi2 -d /opt/pi2 -c Pi2                            #CetnOS7如果指定的目录如果不存在会自动创建

    root@debian:~# useradd pi2 -d /opt/pi2 -c Pi2 -s /bin/bash               #Debian9.5如果指定的目录如果不存在不会自动创建,需要自己创建

    OpenSUSE:~ # useradd pi3 -d /opt/pi3 -c Pi3 -s /bin/bash -U           #openSUSE15如果指定的目录如果不存在不会自动创建,需要自己创建
    ------------------------------------------------------------------------------------

    五、更改用户密码

    使用passwd命令创建和更改用户密码

    使用useradd创建了帐号之后,在默认的情况下,该帐号是被暂时封锁的,也就是说该帐号是无法登录的,可以去看下/etc/shadow文件的第二个字段是感叹号,通过passwd命令为用户创建密码。

    用法:passwd [选项] 用户名

    选项:

    -d,    删除用户密码,仅能以root权限操作;
    -l,     锁住用户,被锁定的用户将无法登录系统,仅能通过root权限操作,也就是在/etc/shadow文件的第二个字段加上感叹号;
    -u,    解除锁定,与-l选项相反,也就是在/etc/shadow文件的第二个字段删除感叹号;
    -f,     强制操作;仅root权限才能操作;
    -x,    后面接天数,shadow的第5字段的内容,多久内必须改动密码,仅能root权限操作;
    -n,    后面接天数,shadow的第4字段的内容,多久内不可修改密码,仅能root权限操作
    -w,    后面接天数,shadow的第6字段的内容, 在距多少天提醒用户修改密码;仅能root权限操作;
    -S,     查询用户的密码状态,仅能root用户操作;

    passwd案例演示:

    在root用户下为新用户pi1创建密码
    -------------------------------------------------------------
    [root@CentOS7 ~]# passwd pi1
    更改用户 pi1 的密码
    新的 密码:   #要求输入用户的新密码
    重新输入新的 密码:   #要求再次输入用户的新密码,两次输入同样的密码,防止你输错。
    passwd:所有的身份验证令牌已经成功更新。
    [root@CentOS7 ~]#
    -------------------------------------------------------------

    普通用户自己更改密码
    -------------------------------------------------------------
    [pi1@CentOS7 ~]$ passwd pi1
    passwd:只有根用户才能指定用户名。   #普通用户只能更改自己的密码,没有权限更改他人的
    [pi1@CentOS7 ~]$ passwd         #普通用户更改自己的密码不用在命令后面加上自己的用户名
    更改用户 pi1 的密码 。
    为 pi1 更改 STRESS 密码。
    (当前)UNIX 密码:     #普通用户更改自己的密码需要输入原始密码
    新的 密码:
    无效的密码: 密码少于 8 个字符          #有密码复杂读要求
    新的 密码:
    无效的密码: 密码与原来的太相似      #有密码复杂读要求
    新的 密码:
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    [pi1@CentOS7 ~]$
    -------------------------------------------------------------

    六、更改密码策略

    使用chage命令修改帐号和密码的有效期限。

    用法 chage [选项] 用户名

    选项
    -l,  列出帐号的详细密码参数。
    -d,  后面接天数,修改shadow的第3字段的内容,最近一次更改密码的日期,格式YYYY-MM-DD。
    -m,  后面接天数,修改shadow的第4字段的内容,密码最短保留天数。
    -M,  后面接天数,修改shadow的第5字段的内容,密码多久需要进行修改。
    -w,  后面接天数,修改shadow的第6字段的内容,密码过期前的警告天数。
    -I,   后面接天数,修改shadow的第7字段的内容,密码失效日期。
    -E,  后面接天数,修改shadow的第8字段的内容,帐号失效日期,格式YYYY-MM-DD。

    chage案例演示:

    显示密码的详细信息
    --------------------------------------------------------------
    [root@CentOS7 ~]# chage -l pi1   #查看pi1用户密码的详细信息
    最近一次密码修改时间 :10月 01, 2019
    密码过期时间 :从不
    密码失效时间 :从不
    帐户过期时间 :从不
    两次改变密码之间相距的最小天数 :0
    两次改变密码之间相距的最大天数 :99999
    在密码过期之前警告的天数 :7
    [root@CentOS7 ~]#
    --------------------------------------------------------------

    设置新用户下次登录时候必须更改密码才能登录
    --------------------------------------------------------------
    [root@CentOS7 ~]# chage -d 0 pi1
    --------------------------------------------------------------

    七、修改用户信息

    通过usermod命令可以修改以创建用户的属性,包括用户名,用户主目录,所属用户组以及登录Shell等信息,

    用法 usermod [选项] 用户名

    选项

    -c, 修改/etc/passwd文件第5段说明内容,
    -d, 修改用户的主目录,如果指定-m选项,则会把旧的主目录下的内容复制到新的主目录下
    -e, 指定用户帐号禁用的日期,格式YY-MM-DD,也就是/etc/shadow第8段的内容
    -f, 密码过期的宽限时间,也就是/etc/shadow第8段的内容,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
    -g, 修改用户的初始用户组,修改的用户组必须存在,用户主目录中,属于原来的主组的文件将转交新组所有,主目录之外的文件所属的组必须手动更改
    -G, 把用户追加到某些附加组中,多个用户组之间用逗号隔开
    -l, 修改用户的登录名称
    -L, 锁定用户的密码,被锁定的用户将无法登录系统,也就是在/etc/shadow文件的第二个字段加上感叹号
    -m, 将用户的主目录中的文件移动到新的位置,通常和-d选项一起使用
    -s, 修改用户的默认shell
    -u, 改用户的uid,该uid必须唯一
    -U, 解锁用户的密码,与-L选项相反,也就是在/etc/shadow文件的第二个字段删除感叹号

    usermod案例演示:

    将pi1用户添加到pi2,pi3用户组
    --------------------------------------------------------------
    [root@CentOS7 ~]# usermod -G pi2,pi3 pi1
    --------------------------------------------------------------

    将pi1用户的主目录改为/home/pii 同时将用户的主目录中的文件移动到新的位置
    --------------------------------------------------------------
    [root@CentOS7 ~]# usermod -d /home/pii -m pi1
    --------------------------------------------------------------

    八、删除用户

    userdel命令用来将一个用户从Linux系统中删除。

    用法 userdel [选项] 用户名

    选项

    -f, 强制删除指定的用户,即使该用户处于登录状态
    -r, 删除用户的同时用户主目录和用户的邮箱也一起删除,用户主目录以为的文件需要手动删除。

    usermod案例演示:

    将pi1用户及主目录一同删除
    --------------------------------------------------------------
    [root@CentOS7 ~]# userdel -r pi1
    --------------------------------------------------------------

    九,显示用户的信息

    id命令可以显示真实有限的用户标识号和组标识号。

    用法 id [选项] 用户名

    选项,这个命令一般不需要加选项直接id回车显示全部信息最直观

    -g, 显示用户所属群组的ID。
    -G, 显示用户所属附加群组的ID。
    -n, 显示用户,所属群组或附加群组的名称。

    id案例演示:

    显示pi1用户的信息
    --------------------------------------------------------------
    [pi1@CentOS7 ~]$ id #已经登录pi1用户直接输入id命令就好了
    uid=1000(pi1) gid=1000(pi1) 组=1000(pi1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    [pi1@CentOS7 ~]$
    --------------------------------------------------------------


    十、Linux添加用户组

    Linux系统通过groupadd命令添加用户组

    用法 groupadd [选项] 组名

    选项

    -g,   为新组指定GID;
    -r,   创建一个系统工作组,工作组的GID小于1000;
    -o,   允许使用重复的 GID

    十一、更改用户组信息

    如果想更改组名或组ID可以通过groupmod命令来完成

    用法 groupmod [选项] 组名

    选项

    -g,   修改组 GID;
    -n,   修改组名;
    -o,   允许使用重复的 GID;


    十二、删除用户组

    删除用户组的命令为groupdel,但是初始用户组不能直接删除,只有把对应的用户删除或给成其他的初始用户组才可以。

    groupdel用法

    用法 groupmod 组名

    组管理案例演示:

    新建用户组pig
    --------------------------------------------------------------
    [root@CentOS7 ~]# groupadd pig
    --------------------------------------------------------------

    更改用户组pig名称为gpi
    --------------------------------------------------------------
    [root@CentOS7 ~]# groupmod -n gpi pig
    --------------------------------------------------------------

    删除用户组gpi
    --------------------------------------------------------------
    [root@CentOS7 ~]# groupdel gpi
    --------------------------------------------------------------

  • 相关阅读:
    JS 利用数组拼接html字符串
    IE浏览器下读取客户端上传的文件大小
    PrintWriter out = response.getWriter() 输出中文乱码问题
    非常有用的Java程序片段
    sql之left join、right join、inner join的区别
    JAVA 数组常用技巧
    java 图片文件格式转换(多页tif转jpg 、jpg转tif)
    SQL Server 字段状态判断语句
    sql server 2008中id如何设为自增
    java基于xml配置的通用excel单表数据导入组件(五、Action处理类)
  • 原文地址:https://www.cnblogs.com/jjp816/p/15033338.html
Copyright © 2020-2023  润新知