centos中与用户相关的系统文件有两个:/etc/passwd和/etc/shadow。前者记录用户相关的信息,后者记录用户相关口令(加密后的密码),后者只有管理员可以看见。两个文件都是一行表示一个与用户相关信息,中间用冒号(:)隔开。
/etc/passwd由―:分割成7个字段,每个字段的具体含义是:
该文件储存的密码相关的口令,只有管理员可见。分为9个字段。
有了这些知识,就可以批量添加用户了。【待续/…】
useradd [-options] 用户名
可选参数有:
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
-D:变更预设值。
-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。
-G:指定用户所属的附加群组。
-m:自动复制到home目录下的文件所在的文件夹,默认是/etc/skel
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。默认值为/bin/bash。
-u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。
最常用法:指定home目录,并从/etc/skel目录下复制home文件
useradd -d /data/liugroup/home/test1 -g LiuGroup -m -u 2000 test1
userdel [-options] 用户名
可选参数有:
-r 同时删除用户home目录
例如:
userdel -r test1
usermod [-options] 用户名
可选参数有:
-u 指定uid或属主名字
-g 指定gid或属组名字
-G 添加扩展组,可以一次性添加多个组,使用“,”分开
-s 指定shell
-d 指定用户家目录,是会在/etc/paswd文件中修改。实际位置上的文件夹还需要自己创建
id 用户名
例如:
id test1
groupadd [-options] 组名
可选参数有:
-g 指定gid
例如:
groupadd -g 5000 group1
groupdel 组名
用倾向用python脚本调用系统命令来完成批量任务。
user_name = ['testt','tterwer']
user_id = [9000,9001]
user_dir = '/data/liugroup/home/'
for name, id in zip(user_name,user_id):
# 创建用户
add_cmd = 'useradd -d /data/liugroup/home/%s -g LiuGroup -m -u %d %s'%(name,id,name)
os.system(add_cmd)
#修改密码
add_passwd = 'echo "nuture500" | passwd --stdin %s'%name
os.system(add_passwd)
path = os.path.join(user_dir,name)
# 修改home用户目录所有者
os.system('chown -R %s:LiuGroup %s'%(name, path))
# 修改home用户目录权限
os.system('chmod 700 %s'%path)
运行两个命令,第一个是useradd,添加用户,第二个是用一个技巧修改密码。"passwd123"是密码
其他批量方法:
https://www.cnblogs.com/lanxuezaipiao/archive/2012/12/01/2797440.html