shell实践:新增和删除用户

  前言      

        使用useradd命令添加用户,这个命令在红帽和ubuntu中的执行效果有点不一样?实际上可以修改配置文件/etc/login.defs   让ubuntu自动创建/home/xxx 目录的。

Red Hat中执行

会自动在/home目录下创建对应的用户名目录

$ sudo useradd ting
$ ls /home 
csdn  ting

或者加-d 指定家目录

$ sudo useradd ting2 -d /home/ting2_home
$ ls /home 
csdn  ting  ting2_home

在红帽中会自动创建不存在的家目录。

ubuntu中执行

lkmao@ubuntu:~$ sudo useradd ting
lkmao@ubuntu:~$ ls /home/
csdn  hhe  lkmao  root
lkmao@ubuntu:~$

并没有创建ting目录,这是什么情况?系统差异吗?

        我们使用’useradd 用户名’ 创建新用户时系统为我们规定好了许多新用户的默认设置,这些设置主要包括:

1 在/etc/passwd里面创建一行与账号有关的数据;
2 在/etc/shadow里将此账号密码相关参数填入,但此时未有密码;
3 在/etc/group里加入一个与账号名称一模一样的组名;
4 在/home 下建立于账号同名的目录作为家目录,权限为700

        为什么会主动建立家目录?家目录里的数据来自哪里?为什么预设使用/bin/bash这个shell?这就需要了解useradd的参考文件。

我们通过’useradd -D’ 可以查看基本的配置:

lkmao@ubuntu:~$ useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
lkmao@ubuntu:~$

这个数据其实是由 /etc/default/useradd里面设置的,可以使用vim去观察内容。如下所示:

  1 # Default values for useradd(8)
  2 #
  3 # The SHELL variable specifies the default login shell on your
  4 # system.
  5 # Similar to DHSELL in adduser. However, we use "sh" here because
  6 # useradd is a low level utility and should be as general
  7 # as possible
  8 SHELL=/bin/sh
  9 #
 10 # The default group for users
 11 # 100=users on Debian systems
 12 # Same as USERS_GID in adduser
 13 # This argument is used when the -n flag is specified.
 14 # The default behavior (when -n and -g are not specified) is to create a
 15 # primary user group with the same name as the user being added to the
 16 # system.
 17 # GROUP=100
 18 #
 19 # The default home directory. Same as DHOME for adduser
 20 # HOME=/home
 21 #
 22 # The number of days after a password expires until the account
 23 # is permanently disabled
 24 # INACTIVE=-1
 25 #
 26 # The default expire date
 27 # EXPIRE=
 28 #
 29 # The SKEL variable specifies the directory containing "skeletal" user
 30 # files; in other words, files such as a sample .profile that will be
 31 # copied to the new user's home directory when it is created.
 32 # SKEL=/etc/skel
 33 #
 34 # Defines whether the mail spool should be created while
 35 # creating the account
 36 # CREATE_MAIL_SPOOL=yes
 37

  创建用户的默认设置文件—/etc/login.defs             

        /etc/login.defs 文件用于在创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等。

        需要注意的是,该文件的用户默认配置对 root 用户无效。并且,当此文件中的配置与 /etc/passwd 和 /etc/shadow 文件中的用户信息有冲突时,系统会以/etc/passwd 和 /etc/shadow 为准。如果我们想修改默认配置即可修改配置项的值即可。

设置项含义
MAIL_DIR /var/spool/mail创建用户时,系统会在目录 /var/spool/mail 中创建一个用户邮箱,比如 lamp 用户的邮箱是 /var/spool/mail/lamp。
PASS_MAX_DAYS 99999密码有效期,99999 是自 1970 年 1 月 1 日起密码有效的天数,相当于 273 年,可理解为密码始终有效。
PASS_MIN_DAYS 0表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0。
PASS_MIN_LEN 5指定密码的最小长度,默认不小于 5 位,但是现在用户登录时验证已经被 PAM 模块取代,所以这个选项并不生效。
PASS_WARN_AGE 7指定在密码到期前多少天,系统就开始通过用户密码即将到期,默认为 7 天。
UID_MIN 500指定最小 UID 为 500,也就是说,添加用户时,默认 UID 从 500 开始。注意,如果手工指定了一个用户的 UID 是 550,那么下一个创建的用户的 UID 就会从 551 开始,哪怕 500~549 之间的 UID 没有使用。
UID_MAX 60000指定用户最大的 UID 为 60000。
GID_MIN 500指定最小 GID 为 500,也就是在添加组时,组的 GID 从 500 开始。
GID_MAX 60000用户 GID 最大为 60000。
CREATE_HOME yes指定在创建用户时,是否同时创建用户主目录,yes 表示创建,no 则不创建,默认是 yes。
UMASK 077用户主目录的权限默认设置为 077。
USERGROUPS_ENAB yes指定删除用户的时候是否同时删除用户组,准备地说,这里指的是删除用户的初始组,此项的默认值为 yes。
ENCRYPT_METHOD SHA512指定用户密码采用的加密规则,默认采用 SHA512,这是新的密码加密模式,原先的 Linux 只能用 DES 或 MD5 加密。

修改配置文件/etc/login.defs ,在文件尾部添加

sudo vi /etc/login.defs

然后先删除用户ting,然后再次添加用户,对比发现出现了/home/ting文件夹,操作如下:

lkmao@ubuntu:~$ sudo userdel ting
lkmao@ubuntu:~$ ls /home/
csdn  hhe  lkmao  root
lkmao@ubuntu:~$ sudo useradd ting
lkmao@ubuntu:~$ ls /home/
csdn  hhe  lkmao  root  ting
lkmao@ubuntu:~$

删除用户

sudo userdel ting:这样删除不会删除对应的家目录

sudo userdel -r ting,这样删除会同时删除对应的家目录,也会删除其他一些信息。

小结

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千册

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值