用户管理

6.2    用户管理 

6.2.1    添加用户 

      useradd  用于创建用户,在 Linux 里,adduser 也是用于创建用户,adduser 是软链接指向useradd,所以两者效果是一样的。 

      在默认创建用户时,会自动指定 UID、GID、默认的 UID 和 GID 都 1000 以上的,用户家目录、Shell 类型,在一般情况下创建用户 UID 和 GID 都是相同的,如果在特殊情况下造成不相同,在权限分配时,可能会出错,默密码为空,/etc/shadow 文件中的密码位是两个!!号,没有密码不能直接登录系统,只能让其他用户在登录系统以后切换到该用户,创建用户时不指定其附加组时,默认会创建一个与用户相同名的组,这些默认属性是根据/etc/default/useradd  文件中所定义的创建用户默认。 

 

命令使用格式:useradd [选项]  用户名称   

useradd -d -u “UID” -g "初始组" -G "附加组" -s "登陆的shell” 用户

常用选项: 

    -d:指定用户家目录路径,  可以指定用户家目录。 

    -M:不创建用户的主目录。 

    -g:设置用户初始组的名称或数字 ID,该组必须是存在的,如果没有设置该选项,useradd

会 根 据 /etc/login.defs 文 件 中 的 USERGROUPS_ENAB 环 境 变 量 迚 行 设 置 。 默 认

USERGROUPS_ENAB yes  会用和用户名相同的名字创建群组,GID 等于 UID。 

    -G:用户要加入的附加组列表;使用逗号分隔多个组,不要添加空格;如果不设置,用户仅

仅加入初始组。(一个用户只允许有一个主组,可以有多个附属组)。 

    -s:用户默认登录 shell 的路径;启动过程结束后,默认启动的登录 shell 在此处设定;请确

保使用的 shell 已经安装,默认是 bash。有时候需要禁止某些用户执行登录动作,例如用来执行系统

服务的用户。将 Shell 设置成 /sbin/nologin 就可以禁止用户登录。 

 

例 6.1:添加一个名为 harry 的用户,并使用 bash 作为登录的 Shell。 

# useradd harry    #如果使用-s 指定 Shell 时,默认为 bash。 

 

# tail -1 /etc/passwd    #查看/etc/passwd 最后一行内容。 

harry:x:1001:1001::/home/harry:/bin/bash 

 

说明:此命令会自动创建 harry 组,并成为 harry 用户的默认主组,同时默认的登录 Shell 是 bash 

用户帐户的全部信息被保存在/etc/passwd 文件,这个文件以如下格式保存了每一个系统帐户的所有

信息  (字段以“:”分割),每段含义如图  6-2  所示。 

harry:x:1001:1001::/home/harry:/bin/bash 

 image.png

图  6-2  用户信息含义分解图 

⑴ harry:用户名 

⑵   x:密码占位符 

⑶   1001:用户的 UID,它都是用数字来表示的 

⑷   1001:用户所属组的 GID,它都是用数字来表示的 

⑸   用户描述信息:对用户的功能或其它来迚行一个简要的描述 

⑹   /home/harry:用户主目录(shell 提示符中“~”代表的那个) 

⑺   /bin/bash:用户登录系统后使用的 Shell 

 

1.   查看系统中,支持哪些 Shell: 

# cat /etc/shells        #查看系统中,支持哪些 Shell。 

/bin/sh 

/bin/bash 

/sbin/nologin 

/bin/csh 

 

2.   指定用户 UID:useradd -u  用户ID  用户名

# useradd   -u 1100 oracle    #创建 oracle 并指定 UID 为 1100。 

# id oracle          #使用 id 命令查看 oracle 用户信息。 

uid=1100(oracle) gid=1100(oracle)  组=1100(oracle) 

# tail -1 /etc/passwd      #查看/etc/passwd 最后一行内容。 

oracle:x:1100:1100::/home/oracle:/bin/bash 

 

# ls /home/oracle/ -a    #查看用户家目录文件,通常都是隐藏文件。 

.    ..    .bash_logout    .bash_profile    .bashrc    .mozilla 

 

3.   指定用户主目录: useradd -d  家目录   用户名

# useradd    -d /opt/mk1 mk1 #创建用户并指定其家目录/opt/mk1。 

# tail -1 /etc/passwd      #查看/etc/passwd 最后一行内容。 

mk1:x:1102:1102::/opt/mk1:/bin/bash 

 

4.   指定用户的主组 :useradd -g 主组名  用户名 

例 6.2:创建用户 xuegod2 用户并指定其主组为 xuegod  。 

[root@xuegod63 ~]# useradd    xuegod   #创建 xuegod 用户。 

[root@xuegod63 ~]# id xuegod        #使用 id 命令查看 xuegod 用户信息如下。 

uid=1103(xuegod) gid=1103(xuegod)  组=1103(xuegod)   

 

# useradd -g xuegod xuegod2    #创建用户 xuegod2 用户并指定其

主组为 xuegod  。 

 

[root@xuegod63 ~]# id xuegod2      #经查看 xuegod2 用户信息,组=1103(xuegod)。 

uid=1104(xuegod2) gid=1103(xuegod)  组=1103(xuegod) 

 

5.   指定用户的附属组: useradd -G 附属组1,附属组2,附属组3  用户名 

我们也可以把这个附属组称为补充组,用户可以有 0 个或多个附加组的成员。 

如果一个组有多个成员,我们是可以在/etc/group 文件中最后一个字段看到的。 

 

6.   创建 xuegod3 用户,并指出多个组 

[root@xuegod63 ~]# useradd -G xuegod,harry,root xuegod3 

[root@xuegod63 ~]# id xuegod3    #输出结果如图  6-3  所示。 

 uid=1105(xuegod3) gid=1105(xuegod3) 组=1105(xuegod3),0(root),1001(harry),1103(xuegod)

图  6-3  查看 xuegod3 用户信息 

 

[root@xuegod63 ~]# vim /etc/group        #在文件的最后可看到 xuegod63 用户组,如图  6-4 所示。 

 image.png

          图  6-4 /etc/group 

 

7.   创建用户的另外一个命令:adduser

[root@xuegod63 ~]# adduser xuegod4   #创建 xuegod4 用户。 

[root@xuegod63 ~]# id xuegod4 

uid=1106(xuegod4) gid=1106(xuegod4)  组=1106(xuegod4) 

[root@xuegod63 ~]# which    adduser      #查看 adduser 所在的位置。 

/usr/sbin/adduser 

[root@xuegod63 ~]# ll /usr/sbin/adduser      #以长格式查看 adduser 文件。 

lrwxrwxrwx. 1 root root 7 9 月    19 2017 /usr/sbin/adduser -> useradd     

注:  adduser 是 useradd 的软链接。 

 

8.   删除用户。 

usage: userdel [options] LOGIN 

选项:-r  删除的时候,会同时删除用户的家目录和/var/mail 下的目录。 

例: 

[root@xuegod63 ~]# userdel xuegod3  #删除 xuegod3 用户。 

[root@xuegod63 ~]# ls /home      #xuegod3 用户家目录仍然存在。 

cjk    dir4    harry    xuegod    xuegod3 

 

[root@xuegod63 ~]# userdel harry -r    #删除 herry 用户,但使用-r 选项。 

[root@xuegod63 ~]# ls /home      #同时把用户的家目录也删除了。 

cjk    dir4    xuegod    xuegod3 

 

9.   控制添加用户规则文件。 

两个文件:/etc/default/useradd  和    /etc/login.defs 

  /etc/login.defs 

使用 egrep 命令过虑 login.defs 中的空白行和注释行(#开头的行),该文件定义创建用户时,用户属性相关的默认值,当在创建用户时,有明确指定其值时,则不需要从此文件中获取默认值。 

# egrep -v "^$|^#" /etc/login.defs 

MAIL_DIR /var/spool/mail 

PASS_MAX_DAYS  99999 

PASS_MIN_DAYS  0 

PASS_MIN_LEN 5 

PASS_WARN_AGE  7 

UID_MIN                                    1000        #用户 ID 开始的数字。 

UID_MAX                                  60000        #用户 ID 结束的数字。 

SYS_UID_MIN                              201 

SYS_UID_MAX                              999 

GID_MIN                                    1000 

GID_MAX                                  60000          #组 ID 结束的数字。 

SYS_GID_MIN                              201 

SYS_GID_MAX                              999 

CREATE_HOME yes              #是否为用户建立 home 目录。 

UMASK                      077 

USERGROUPS_ENAB yes 

ENCRYPT_METHOD SHA512            #shadow 文件的加密算法。 

 

  /etc/default/useradd  该文件用于指定默认创建用户的属性,如果修改默认创建用户属性,可以修改此文件的相对应内容即可。 

# cat /etc/default/useradd     

/etc/default/useradd    文件中的内容如下: 

GROUP=100          #表示可以创建普通组。users 组 ID 为 100  。如果不指定此项,或者把users 这一项组删除了,当再创建用户时,将会提示:useradd: group '100' does not exist  。 

HOME=/home          #哪个目录作为用户主目录存放目录。如果你不想让用户家目录在/home下,可以修改这个地方。 

INACTIVE=-1     #是否启用帐号过期。passwd 文件中第7栏。即:密码过期后是否会失效的设定值 。INACTIVE:无效。-1 表示启用。 

EXPIRE=              #帐号终止日期  shadow 中第 8 栏。账号失效的日期 就是  shadow  内的第八字段,你可以直接设定账号在哪个日期后就直接失效,而不理会密码的问题。  通常不会设定此项目,但如果是付费的会员制系统,或许这个字段可以设定。 

SHELL=/bin/bash      #默认 shell 使用哪个。 

SKEL=/etc/skel        #模板目录。 

CREATE_MAIL_SPOOL=yes      #是否创建邮箱文件。

版权声明:
作者:WaterBear
链接:https://l-t.top/1233.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>