为了实现Linux系统中对不同的用户或不同用户所属的主组、附加组的不同权限设置,我们需要掌握一些必要的管理类命令。

  1. 用户和组管理类命令

    1.1 用户命令

    用户命令主要包括useradd(创建用户)usermod(修改用户)userdel(删除用户)

    1.1.1 useradd

    useradd命令可以创建新的Linux用户,其格式为“useradd [options] LOGIN”,常见选项包括:

    ①-u UID:指明创建用户的UID

    ②-g GID:指明用户所属主组

    ③-d:以指定的路径(不存在)为家目录

    ④-s SHELL:指明用户的默认shell模式,可用列表在/etc/shells文件中

    ⑤-G:为用户指明附加组,组须事先存在

    ⑥-N:不创建私用组做主组,使用users组做主组

    ⑦-r:创建系统用户,其中CentOS6及之前版本的创建的系统用户ID<500,CentOS6开始的系统用户ID<1000

    ⑧-m:创建家目录,一般用户系统用户

    ⑨-M:不创建家目录,一般用户非系统用户

    ⑩-p:指定加密的mi码

    1.1.2 usermod

    usermod用于修改用户信息,其命令格式为“usermod [option] login”,常见的选项包括:

    ①-u UID:修改UID

    ②-g GID:修改为指定主组

    ③-G:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项

    ④-s SHELL:修改使用新的shell类型

    ⑤-d HOME:修改用户家目录,新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项

    ⑥-l login_name:修改用户名

    ⑦-L:锁定用户

    ⑧-U:解锁用户

    ⑨-e:设置账号的有效期,即修改/etc/shadow文件第8个字段,EXPIRE_DATE要格式为YYYY-MM-DD

    ⑩-f:指定天数,即修改/etc/shadow文件第7个字段

    1.1.3 userdel

    userdel命令可以用于删除Linux用户,其命令格式为“userdel [option] Login”,常见选项包括:

    ①-f:强制删除

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

    1.2 组命令

    组命令和用户命令相似,包括groupadd(创建组)groupmod(修改组)groupdel(删除组)三部分。

    1.2.1 groupadd

    groupadd命令用于创建组,其格式为“groupadd [option]... group_name”,常见的选项包括:

    ①-g GID:指定创建组的GID

    ②-r:创建系统组,CentOS6及之前版本系统组ID<700,CentOS7及之后版本系统组ID<1000

    ③-K:使用指定值,覆盖/etc/login.defs的默认值

    ④-p:使用加密的mi码

    1.2.2 groupmod

    groupmod命令用来修改组属性,其格式为“groupmod [option]... group”,常见选项包括:

    ①-g GID:修改组的GID

    ②-n:修改组名

    ③-o:允许组的GID不唯一

    1.2.3 groupdel

    groupdel命令可以删除组,其格式为“groupdel [options] GROUP”,常见选项部分为“-f”,执行该命令时可以进行强制删除,即使是用户的主组也会被删除掉,这也会导致无主组的用户出现不可用或无法登录的现象。


  1. 用户和组管理类命令练习

    2.1 创建组distro,其GID为2019

    创建组用命令groupadd,指定了GID为2019,则需要用到-g选项,执行命令groupadd -g 2019 distro则完成指定操作(如下图)

Linux系统中用户和组管理类命令的使用方法总结及练习_创建用户

    2.2 创建用户mandriva, 其ID号为1005;基本组为distro

    创建用户用命令useradd,指定了ID为1005,需要用到-u选项,同时指定了基本组为distro,即指定了主组,需要用到-g选项,执行命令useradd -u 1005 -g distro mandriva 则完成指定操作,执行命令id distro 也可以查看distro的相关信息(如下图)

Linux系统中用户和组管理类命令的使用方法总结及练习_centos_02

    2.3 创建用户mageia,其ID号为1100,家目录为/home/linux

    指定了家目录,需要用到-d选项,执行命令useradd -u 1100 -d /home/linux mageia即完成操作,可以通过id查看相关信息,也可以用ls命令查看是否在/home目录下(如下图)

Linux系统中用户和组管理类命令的使用方法总结及练习_centos_03

    2.4 给用户mageia添加mi码,mi码为mageedu,并设置用户mi码7天后过期

    执行passwd mageia为mageia设置mi码,mi码需填写两次(如下图)

Linux系统中用户和组管理类命令的使用方法总结及练习_创建用户_04

    这里要将mageia的mi码设置成7天后过期,需要使用passwd -x的命令格式,其中-x选项表示修改mi码的最长有效期的天数,指的是shadow文件中的第5个内容。执行passwd -x 7 mageia即完成指定操作(如下图)

Linux系统中用户和组管理类命令的使用方法总结及练习_创建用户_05

    2.5 删除mandriva,但保留其家目录

    删除用户用userdel命令,执行userdel mandriva后,通过id去查看会发现不存在了,但通过ls /home 去查看,会发现仍然保留在家目录中(如下图)

Linux系统中用户和组管理类命令的使用方法总结及练习_创建用户_06

    2.6 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin

    该条与2.3条创建megaia操作相似,但多了添加附加组的选项,需用到-G选项,执行useradd -u 2002 -g distro -G peguin slackware命令,若提示尚无peguin组时,我们新建一个,然后再执行以上命令,通过id可查看到已完成相关操作(如下图)

Linux系统中用户和组管理类命令的使用方法总结及练习_创建用户_07

    2.7 修改slackware的默认shell为/bin/tcsh

    这里要用到的是usermod命令,修改shell类型要加-s选项,执行usermod -s /bin/tcsh slackware 命令即可完成相关操作。我们也可在执行前后通过cat /etc/passwd | grep slackware 来对比修改前后的shell区别(如下图)

Linux系统中用户和组管理类命令的使用方法总结及练习_centos_08

    2.8 为用户slackware新增附加组admins,并设置不可登陆

    这里要用到的命令包括groupadd(创建组)和usermod(修改用户)。usermod部分,因为是新增附加组,要用到-aG选项,同时是为slackware新增即锁定用户,需用到-L选项。修改完毕后,当我们切换到slackware时,会提示账户当前不可用,即不可登录,具体操作如下:

Linux系统中用户和组管理类命令的使用方法总结及练习_centos_09