Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
系统解析用户的时候,并不能直接的去解析用户名 root,能够识别解析的是ID号
一、Linux系统用户账号的管理
用户:
用法 : useradd 选项 用户名
选项:
-u | 指定UID |
---|---|
-g | 指定基本组,组先存在 ,如果没有指定,则使用与用户名相同的组名 |
-G | 指明附加组 |
-c | 添加注释信息 |
-d | 指定家目录,复制/etc/skel并重命名实现 |
-s | 指定默认shell |
-r | 创建系统用户 |
-D | 显示创建用户的默认配置 |
- -u UID:定义在/etc/login.defs
如果没有指定UID则依次使用最近一次的UID
[root@xiaoagiao ~]# useradd -u 4230 gentoo
//添加一个用户,用户名为gentoo,uid为4230。
- -g GID:指定基本组。
[root@xiaoagiao ~]# useradd -g tom gentoo
//指定用户gentoo在组tom组。
- -G GROUP1,GROUP2:指定用户的附加组,可以有多个,用逗号隔开,组必须事前存在。
[root@xiaoagiao ~]# useradd -G tom gentoo
//为用户gentoo指明附加组tom。
- -d :指定用户的家目录
[root@xiaoagiao ~]# useradd -d /etc/gentoo
//为用户gentoo指指定家目录/etc/gentoo。
- -c “ ” :用户的注释信息
[root@xiaoagiao ~]# useradd -c "测试用户" gentoo
//为用户gentoo添加注释信息。
- -s SHELL:指定用户的默认shell,可用的shell列表在/etc/shells
[root@xiaoagiao ~]# useradd -s /bin/sh gentoo
//为用户gentoo指定shell环境。
2.修改用户属性 usermod
用法 :usermod 选项 用户名
选项:
-u | 更改UID |
---|---|
-g | 更改基本组 |
-G | 更改附加组 |
-c | 更改注释信息 |
-d | 更改家目录 |
-s | 更改默认shell |
-r | 更改系统用户 |
-l | 锁定用户 |
-u | 解锁用户 |
-m | 与-d一起使用,将原来的家目录转移到新的位置,原来的家目录依然可用 |
-a | 向用户中添加附加组,覆盖之前的附加组,和G同时用 |
- -m -d
[root@xiaoagiao ~]# usermod -m -d /var/tmp/gentoo gentoo
//为用户gentoo家目录转移到 /var/tmp/gentoo之前的目录依然可用。
3.删除用户。userdel
用法 :userdel [-option] 用户
- -r :与家目录下的所有内容一并删除。
4.创建或修改用户密码。passwd
- passwd -->更改当前用户密码。
- passwd username 修改指定用户密码 只有root有权限
选项 :
-l | 锁定用户 |
---|---|
-u | 解锁用户 |
-d | 清除用户密码串 |
-e date | 过期期限 |
-n days | 最短使用期限 |
-x days | 最长使用期限 |
-w days | 告警时间 |
- -stdin | 非交互式创建密码 |
[root@xiaoagiao ~]#echo "password" | passwd --stdin username
//非交互式为用户创建密码
二、Linux系统用户组的管理
1.添加组 groupadd
用法 ;groupadd [-option] groupname
选项 :
- -g :指定GID, 默认是上一个组的GID+1
- -r: 创建系统组。
2.修改组属性。groupmod
用法:groupmod [选项] groupname
选项 ;
- -g GID:修改GID
- -n new_name:修改组名
[root@xiao ~]# gruopmod -g 2300 gentoo
//修改gid为2300。
[root@xiao ~]# gruopmod -n jerry gentoo
//将gentoo名字改为jerry
3.删除组属性。groupdel
用法 : groupdel + groupname
4.创建或修改组密码。gpasswd
选项:
- -a username groupname :向组中添加用户
- -d username groupname :从组中删除用户
[root@xiao ~]# gruopmod -a tom jerry
//将tom用户添加到jerry组中
[root@xiao ~]# gruopmod -d tom jerry
//将tom用户从jerry组中删除
三. 查看用户id号。UID GID
id
用法 : id [-option]
选项 :
-u | 仅显示有效的UID |
---|---|
-g | 仅显示用户的基本组ID |
-G | 仅显示用户所属的所有组的ID |
-n | 需要和-u -g -G 配合使用显示名字而非ID |
四 . 更改用户密码过期信息 chage
用法 :chage [选项] 登录名
选项 :
-d | 指定用户密码修改日期 |
---|---|
-E | 设置密码到期日期,到期后不可用,0表示快过去,-1表示已过期 |
-W+天数 | 设置过期警告天数 |
-m+天数 | 设置两次改变密码之间相距的最小天数 |
-M+天数 | 设置两次改变密码之间相距的最大天数 |
如; chage -w 10 -->距离密码过期十天,提醒警告。
五.解析库文件。
/etc/passwd(每一行对应一个用户)
例如 ;
root: x: 0:0:root:/root:/bin/bash
解释 (以冒号为分隔符)
注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
- root(第一段):代表用户名长度不超过八个字符。
- x(第一段): 口令:password 使用x占位符
- 0(第一段): 用户的标识符UID
- 0(第一段): 用户组的标识符GID
- root(第一段): 注释信息
- /root (第一段) :用户的家目录
- /bin/bash/ (最后一段) : 默认的shell环境。
/etc/shadow(主要用来存放密码)
例如 :
root:$6$AJBYeS/80NGXHLft$YAym9primtpg4RPgEyzP05971JVZtCOs6GC5ICWqIkRn4aBhOTNaWCm/oOzAQqBTRCb7gr.skRCHldiKgok6f0:18301:0:99999:7:::
解释 : (以冒号为分隔符)
- root (第一段):代表用户名。
- $ 6$ AJBYeS/80NGXHLft$YAym9primtpg4RPgEyzP05971JVZtCOs6GC5ICWqIkRn4aBhOTNaWCm/oOzAQqBTRCb7gr.skRCHldiKgok6f0
– ->(第二段)代表用户加密口令。 - 18301(第三段):代表口令最后一次修改时间。
- 0(第四段):代表两次口令修改的最小间隔天数。
- 99999(第五段):代表两次口令修改的最大间隔天数。
- 7(最后一段):警告天数(提前7天提醒警告。)。
注:口令组成
$ 6$ :—> 加密算法。
$ AJBYeS/80NGXHLft$ :—>加密因子。
YAym9primtpg4RPgEyzP05971JVZtCOs6GC5ICWqIkRn4aBhOTNaWCm :—>密码
/etc/group (组信息)
root:x:0:
bin:x:1:bin,daemon
解释 : (以冒号为分隔符)
第一段 :组名
第二段 :口令
第三段 : GID
最后 :附加组的组内用户