目录
useradd选项
批量创建用户
userdel -r
usermod
useradd选项
-D 查看创建用户的默认值
example]# useradd -D GROUP=100 #新用户会被添加到GID为100的公共组; HOME=/home #新用户的HOME目录将会位于/home/loginname; INACTIVE=-1 #新用户账户密码在过期后不会被禁用; EXPIRE= #新用户账户未被设置过期日期; SHELL=/bin/bash #新用户账户将bash shell作为默认shell; SKEL=/etc/skel #系统会将/etc/skel目录下的内容复制到用户的HOME目录下 CREATE_MAIL_SPOOL=yes #系统为该用户账户在mail目录下创建一个用于接收邮件的文件
/etc/skel目录存放的是该用户的环境变量,useradd之后会将/etc/skel目录中的文件复制过来。
useradd 的其他参数
- -c comment 给新用户添加备注
- -d home_dir 为主目录指定一个名字(如果不想用登录名作为主目录名的话)
- -e expire_date 用YYYY-MM-DD格式指定一个账户过期的日期
- -f inactive_days 指定这个账户密码过期后多少天这个账户被禁用; 0表示密码一过期就立即禁用, 1表示
- 禁用这个功能
- -g initial_group 指定用户登录组的GID或组名
- -G group ... 指定用户除登录组之外所属的一个或多个附加组
- -k 必须和-m一起使用,将/etc/skel目录的内容复制到用户的HOME目录
- -m 创建用户的HOME目录
- -M 不创建用户的HOME目录(当默认设置里要求创建时才使用这个选项)
- -n 创建一个与用户登录名同名的新
- -r 创建系统账户
- -p passwd 为用户账户指定默认密码
- -s shell 指定默认的登录shell
- -u uid 为账户指定唯一的UID
#!/bin/bash # 批量创建用户 # 2022年1月2日17:25:42 # cat user.txt # ninesun01 123456 # ninesun02 123456 # ninesun03 654321 # 读取如上文件创建用户。 if [ $# -ne 1 ];then echo "useage: ./createuser.sh user.txt" exit 1 fi # 判断是否为file if [ ! -f $1 ];then echo "$1 is not a file" exit 2 fi IFS=$'n' for line in `cat $1`;do #判断文件中空行 if [ ${#line} -eq 0 ];then # line="ninesun";echo ${#line} -> 7 continue # 如果为空,跳出本次循环不执行后续的useradd fi user=`echo $line|awk '{print $1}'` pass=`echo $line|awk '{print $2}'` # 判断user是否已存在 id $user &>/dev/null if [ $? -eq 0 ];then echo "$user already exist" else useradd $user echo "$pass" | passwd --stdin $user >&/dev/null if [ $? -eq 0 ];then echo "$user create successful" fi fi doneuserdel -r
ninesun02 03已存在,有两个个warning : home目录已存在、mailbox 已存在。如何删除呢?
userdel -r 这个 *** 作比较危险,最好备份一下用户目录,以免删除重要文件。
usermod-p修改账户的密码。
-L锁定账户,使用户无法登录。
-U解除锁定,使用户能够登录。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)