导航

Linux之穿越useradd

注明:参考了苦逼运维useradd文章,下面是链接,有兴趣的同学可以阅读一下,讲的有深度:

https://www.cnblogs.com/diantong/p/9430258.html

 

 

useradd [选项] 登录名

useradd命令行上可以指定参数值,同时useradd存在两个默认配置文件/etc/default/useradd和/etc/login.defs,里面存在useradd创建新用户时的默认操作。useradd在创建新用户时,会更新以下文件:/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow,最后还存在一个隐性的文件/etc/skel:骨架目录。

 

一、配置文件/etc/default/useradd:

GROUP          在/etc/login.defs文件USERGROUPS_ENAB字段为no时生效,非常有意思

HOME            用于创建新用户主目录位置。同时/etc/login.defs文件CREATE_HOME字段对其控制

INACTIVE           active活跃,该字段表示账户过期停权? -1表示永不过期,不启用

EXPIRE              expire到期,表示密码到期天数,比如今天到期,但是EXPIRE=1,那么明天还可以再使用一天

SHELL             新用户使用的shell

CREATE_MAIL_SPOOL        是否使用邮箱,/etc/login.defs文件MIAL_DIR就是邮箱目录

SEKL           该字段时新用户的骨架目录,如同Windows新建用户,C盘Users目录用户文件夹下包含的隐藏文件,应该是用户环境,在每创建一个新用户时,都会将该字段拷贝一份到新用户的主目录下,如果没有这些隐藏文件,则用户无法使用

 

举一个简单的例子一步到位:

修改/etc/default/useradd文件HOME字段,那么以后使用useradd命令创建用户,都会影响主目录位置

 用户xie主目录从/home转到/opt目录下,shell从/bin/bash转成了/sbin/nologin

 

 

二、配置文件/etc/login.defs

/etc/login.defs文件UID_MIN  、 UID_MAX 、 GID_MIN 、 GID_MAX 分别表示useradd新建用户UID、GID最小和最大的分配范围

 

 SYS_UID_MIN  、SYS_UID_MAX  、 SYS_GID_MIN 、 SYS_GID_MAX 时系统用户的分配范围,useradd使用-r,--system参数创建系统用户

 

CREATE_HOME是否生成用户主目录(家目录),yes生成,useradd会再次读取/etc/default/useradd文件HOME字段,然后在该字段后路径创建用户的家目录,no,则不会创建家目录

 

USERGROUPS_ENAB字段,在useradd未使用-g,--gid参数时,该字段值为yes,则useradd创建gid与登录名相同的用户组;no,useradd则会再次读取/etc/default/useradd文件GROUP字段,使用gid为100的组

 

MAIL_DIR 字段规定新建用户的邮箱路径,如果/etc/default/useradd文件CREATE_MAIL_SPOOL值为yes,则useradd在/var/spool/mail创建用户邮箱

/etc/login.defs最后一个UMASK   077 表示设置掩码,该值与默认权限有关。

 

 

三、常用参数结合两个配置文件(所有的参数都优先于配置文件,参数指定了,则配置文件该项目就失效了)

-e, --expiredate          新账户到期停权日期

-f, --inactive             新账户密码到期后,账户彻底被禁用的天数

这两个参数完美配合/etc/default/useradd文件EXPIRE  、 INACTIVE 字段,-e到期日期格式YYYY-MM-DD,2021-04-30。如果没有指定-e参数,则useradd使用EXPIRE到期时间,同样useradd没有指定--inactive参数,则使用/etc/default/useradd文件。

 

 /etc/login.defs文件这四个参数可以对-e和--inactive的补充,

PASS_MAX_DAYS密码最大使用天数

PASS_MIN_DAYS两次修改密码最小的时间间隔

PASS_MIN_LEN密码的长度

PASS_WARN_AGE距离密码到期日提前几天提醒用户,与--inactive密码之后的有效天数,两极

-d,--home-dir      指定新用户的主目录(未指定-d参数,login.defs文件默认允许创建CREATE_HOME  yes,则/etc/default/useradd文件HOME=/home创建主目录)

 

 

-g,--gid          新建用户的主要组(该组一定是事先存在的组)

-G,--groups       新建用户的附加组

-u, --uid          指定用户的uid(该uid一定是事先不存在的,因为uid在linux系统中唯一标识,操作的是uid,其次才是uid对应的登录名)

 

-k,--skel        指定新建用户的骨架目录。技术厉害的完全可以通过--skel参数配置个性化的新用户环境

-s,--shell        指定用户登录的shell,默认/etc/default/useradd设置登录的shell为/bin/bash

-r,--system        useradd --system创建系统用户,系统用户的uid、gid不同于普通用户,/etc/login.defs文件SYS_UID_MIN等等字段设置

 

-U,--user-group      创建与用户名相同的组

-N,--no-user-group    不创建同名的组

 

 

END

posted on 2021-05-02 21:19    阅读(173)  评论(0)    收藏  举报