linux下useradd命令实战

  • linux下useradd命令实战已关闭评论
  • 36 views
  • A+
所属分类:linux命令 存储应用

实例一

创建无密码用户

我们先创建一个xubo的账号,命令如下:

useradd xubo

然后我们看看该用户的一些属性值,用如下:

 

用户组信息:
[xubo@localhost home]$ id xubo
uid=1000(xubo) gid=1000(xubo) 组=1000(xubo)
当前shell:
[xubo@localhost home]$ echo $SHELL
/bin/bash
用户home目录:
[xubo@localhost home]$ ls -l /home/
总用量 0
drwx------ 2 xubo xubo 79 4月 18 06:06 xubo

综上所述,除了密码以及一些权限,基本上都用了

实例二

指定home目录

刚才我们创建了个用户,现在我们想更换一下home目录,命令如下:

useradd -r  admin

系统账号,一般是不设置密码的,也就是不让被登录的,一般用于程序部署类使用。

注意:useradd 不会为这种用户创建主目录,无论 /etc/login.defs (CREATE_HOME)中是的默认设置是怎样。如果想为要创建的系统账户创建主目录,需要指定 -m 选项。

实例三

创建用户设置过期时间

设置过期时间,时间的格式为YYYY-MM-DD,命令如下:

useradd -e 2019-4-18 xubogood

然后我们通过chage查看结果如下:

[root@localhost xubo]# useradd -e 2019-4-18 xubogood
[root@localhost xubo]# chage -l xubogood
最近一次密码修改时间 :4月 17, 2019
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :4月 18, 2019
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7

如上所示,账号的过期时间为2019-4-18日,这里默认不写的话会按照/etc/default/useradd模板来处理,我们看看该文件内容,顺便说一下,-D参数就是读取的该文件内容,如下:

[root@localhost xubo]# more /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

[root@localhost xubo]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost xubo]#

如上所示:

  • INACTIVE=-1意思是否启用账号过期提权,-1表示不启用;
  • EXPIRE= 是账号终止日期,不设置或为空表示不启用;
  • SKEL=/etc/skel 意思是配置新用户家目录的默认文件存放路径。前文提到的/etc/skel,即当我们用useradd添加用户时,用户家目录下的文件,都是从这里配置的目录中复制过去。

说道这里,有必要给说一下之前遇到多的一个问题,就是有人不小心把home目录给删了,导致该用户找不到主目录以及该用户下的环境变量全没了。这时不要担心,可以从/etc/skel下拷贝过来就OK了,我来给大家演示一下吧,比如我把/home/下的xubo目录删了,如下:

[root@localhost home]# ls -al
total 3
drwxr-xr-x. 4 root root 32 Apr 18 06:46 .
dr-xr-xr-x. 18 root root 4096 Apr 18 06:19 ..
drwx------ 2 xubo xubo 79 Apr 18 06:06 xubo
[root@localhost home]# rm -rf xubo
[root@localhost home]# su xubo
bash-4.2$

通过上面删除xubo目录后,切换到xubo账号下,找不到环境变量了,就成这样了,那么怎么还原呢,如下:

[root@localhost home]# ls
[root@localhost home]# mkdir xubo
[root@localhost home]# chown -R xubo:xubo xubo
[root@localhost home]# cp /etc/skel/.bash* /home/xubo/
[root@localhost home]# su xubo
[xubo@localhost home]$

如上所示,还原好了,注意的一点是创建文件夹后要设置成该用户的权限,如果你不知道的话就到/etc/passwd文件中找一下。

实例四

创建用户设置组权限

我们这里创建一个xubo2的用户,home目录指定到/xubo2下,备注为hello xubo ,设置用户id为899,设置组列表为root和xubo两个组,命令如下:

useradd -c "hello xubo" -u 899 -G root,xubo -s /bin/sh -d /xubo2 xubo2

查看结果如下:

[root@]# useradd -c "hello xubo" -u 899 -G root,xubo -s /bin/sh -d /xubo2 xubo2 
[root@localhost home]# id xubo2
uid=899(xubo2) gid=1002(xubo2) groups=1002(xubo2),0(root),1000(xubo)
[root@localhost home]# grep "xubo2" /etc/passwd
xubo2:x:899:1002:hello xubo:/xubo2:/bin/sh

如上所示,这就是指定组了,然后如果没指定组,是什么情况呢,上面的实例都没指定组,那个那些账户的组是哪里来的,这个官方文档是这样说的,如下:

如果没有指定 -g, -N 和 -U 选项,默认行为由 /etc/login.defs 中的 USERGROUPS_ENAB 变量指定

该文件中内容如下:

#邮件路径
MAIL_DIR /var/spool/mail
#密码相关的
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7

#用户(普通和系统)ID
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999

#组(普通和系统)ID
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
#是否创建home目录
CREATE_HOME yes
#homeumask
UMASK 077
#删除用户的同时是否删除组
USERGROUPS_ENAB yes 
#加密算法
ENCRYPT_METHOD SHA512

 

  • 安卓客户端下载
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar