useradd
格式说明
useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM]
[-c 说明栏] [-d 家目录的绝对路径] [-s shell] [其他选项]用户名
上面参数主要对应的就是/etc/passwd档案中的那7个字段的含义。
-m :表示要建立用户家目录
-M:表示不要建立用户家目录
-r:建立一个系统的账号,这个账号的UID会有限制,会参考/etc/login.defs
-e:后面接一个日期,日期格式为[YYYY-MM-DD],此项目会写入/etc/shadow的第八个字段
-f:后面接shadow的第七个字段,指定密码是否会失效。0为立即失效,-1为永远不会失效
相关过程
- 在/etc/passwd里面建立一行与账号有关的数据,包括建立UID/GID/家目录
- 在/etc/shadow里面将此账号的密码相关参数写入,但是尚未有密码,因为我们还没有设置密码。
- 在/etc/group底下建立一个与账号名称一模一样的组名,注意如果-g参数后面接的是一个已经存在的群组名称,(即初始群组是一个已经存在的群组),那么系统就不会主动去建立一个与账号名称一模一样的群组。
- 在/home底下(或者指定的目录中)建立一个与账号同名的目录作为用户家目录,默认权限为700
useradd的相关参考档案
1.使用useradd -D可以查看useradd的默认设置
这个数据是放在/etc/default/useradd中的
其中SKEL=/etc/skel:表示用户家目录的参考基准目录。意思是如果我们新建了一个用户userName,他的家目录假如是/home/userName,那么这个目录下的所有数据都是通过/etc/skel复制过去的,也就是说/skel下面有什么,/home/userName下面就有什么。
2.UID/GID以及密码参数的参考档案是/etc/login.defs
综上:useradd会参考的目录有:
- /etc/default/useradd
- /etc/login.defs
- /etc/skel/*
passwd
在用useradd命令建立的账号,该账号暂时是被封锁的,即我们无法用这个账号登录。必须通过建立密码。
passwd [--stdin] /* 所有人都可以用这个来修改密码 */
passwd [-l] [-u] [--stdin] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号 /* root功能 */
–stdin:可以通过来自前一个管线的数据,作为密码的输入
-l:Lock,将/etc/shadow第二栏最前面加上!,使得密码失效
-u:UnLock
-S:列出密码相关参数,即shadow档案内的大部分信息
-n:/etc/shadow第四字段,多久不可以修改密码
-x:/etc/shadow第5字段,多久内要修改密码
-w:/etc/shadow第6字段,密码过期前的警告天数
-i:/etc/shadow第7字段,密码失效日期
例子:
echo "abc1234567" | passwd --stdin vbird2
表示用standard input来个vbird2更改密码。因为这是一个shell指令,所以可以通过/root/.bash_history找到这个密码。
chage
显示密码参数的详细内容
chage [-ldEImMW] 账号名
usermod
对于账号相关信息的微调
userdel
删除用户的相关数据
finger
finger [-s] username
-s:仅列出用户的账号,全名,终端机代号与登录时间
-m:列出与后面接的账号相同者
id
id [username]
显示uid ,gid等信息
groupadd
groupadd [-g gid] [-r] 组名
-g:后面接某个特定的GID,用来直接赋值给某个GID
-r:建立系统群组。与/etc/login.defs中的GID_MIN有关
groupmod
groupmod [-g gid] [-n group_name] 群组名
-g:修改当前的GID为gid
-n :修改目前的群组名为group_name
groupdel
groupdel [groupname]
删除群组
gpasswd
群组管理员功能