Linux学习 - 用户和用户组管理
一、用户配置文件
1 用户信息文件 /etc/passwd
vim /etc/passwd
第一字段:用户名
第二字段:密码标志(x表示有密码)
第三字段:用户ID(UID)
0: 超级用户
1-499: 系统用户(伪用户)
500-65536: 普通用户
第四字段:用户初始组ID(GID)
初始组:指用户一登入就立刻拥有这个组的相关权限,每个用户初始组只有一个,一般以用户名作为这个 用户初始组的组名。
附加组:用户可加入多个附加组,并拥有这些组的权限
第五字段:用户说明
第六字段:家目录
超级用户家目录:/root/
普通用户家目录:/home/用户名/
第七字段:登入之后的shall
shell是Linux的命令解释器
/bin/bash 允许登入
/sbin/nologin 不允许登入
2 影子文件 /etc/shadow
vim /etc/shadow
第一字段:用户名
第二字段:加密密码
SHA512散列加密算法
如果密码位是 “ !! ” 或 “ * ”,代表没有密码,不能登入
第三字段:密码最后一次修改日期
使用1970.1.1作为标准时间,每过一天时间戳加1
时间戳换算 | |
日期->时间戳 | echo $(($(date --date="2014/01/06" + %s)/86400 + 1)) |
时间戳->日期 | date -d "1970-01-01 16066 days" |
第四字段:两次密码修改间隔
第五字段:密码有效期
第六字段:密码有效期到期前的警告天数
第七字段:密码有效期到期后的宽限天数
0:代表密码过期后立即失效
-1:代表密码永远不会失效
第八字段:账号失效时间(时间戳表示)
第九字段:保留
3 组信息文件 /etc/group
vim /etc/group
第一字段:组名
第二字段:组密码标志
第三字段:组ID(GID)
第四字段:组中附加用户
4 组密码文件 /etc/gshadow
vim /etc/gshadow
第一字段:组名
第二字段:组密码
第三字段:组管理员用户名
第四字段:组中附加用户
二、用户管理相关文件
1 用户的家目录
普通用户:/home/用户名/
超级用户:/root/
2 用户的邮箱文件
/var/spool/mail/用户名
3 用户模板目录
/etc/skel/
用于保存创建新用户时自动生成的文件,例如在该目录下新建文件notice.msg则在建立新用户时会自动建立notice.msg文件
4 添加用户默认值文件
/etc/default/useradd
GROUP=100 | 用户默认组 |
HOME=/home | 用户家目录 |
INACTIVE=-1 | 密码过期宽限天数 |
EXPIRE= | 密码失效时间 |
SHELL=/bin/bash | 默认shell |
SKEL=/etc/skel | 模板目录 |
CREATE_MAIL_SPOOL=yes | 是否建立邮箱 |
/etc/login.defs
PASS_MAX_DAYS 99999 | 密码有效期 |
PASS_MIN_DAYS 0 | 密码修改间隔 |
PASS_MIN_LEN 5 | 密码最小5位 |
PASS_WARN_AGE 7 | 密码到期警告时间 |
UID_MIN 500 UID_MAX 6000 |
最小最大UID范围 |
ENCRYPT_METHOD SHA512 | 加密模式 |
三、用户管理命令
1 添加用户
useradd [-udcgGs] 用户名
-u UID
-d 家目录
-c 用户说明
-g 组名(初始组)
-G 组名(附加组)
-s 命令解释器shell(默认/bin/bash)
例:useradd -u 666 -G root,bin -c "test user" -d /home/zhw -s /bin/bash zhw
2 修改用户密码
passwd [选项] [用户名]
例:
passwd -S user1 查询user1密码的密码状态(仅root用户)
passwd -l user1 暂时锁定用户(仅root用户)
passwd -u user1 解锁用户(仅root用户)
echo “123” | passwd --stdin 用户名 使用字符串作为用户的密码
3 修改用户信息
usermod [-ucgGdLU] [用户名]
-u UID
-d 家目录
-c 用户说明
-g 组名(初始组)
-G 组名(附加组)
-s 命令解释器shell(默认/bin/bash)
-L 锁定用户
-U 解锁用户
4 修改用户密码状态
chage [-ldmMWIE] 用户名
-l 列出用户详细密码状态
-d 修改密码最后一次更改日期(当-d 0 要求用户一登入就要修改密码)
-m 两次密码修改间隔
-M 密码有效期
-W 密码过期前警告天数
-I 密码过期后宽限天数(i)
-E 账号失效时间
5 删除用户
userdel [-r] 用户名
-r 删除用户的同时删除用户家目录
手动删除包括:vi /etc/passwd
vi /etc/shadow
vi /etc/group
vi /etc/gshadow
rm -rf /var/spool/mail/用户名
rm -rf /home/用户名/
6 查看用户id
id 用户名 可查看用户的uid、gid和所属组
7 查看当前是哪个用户
whoami
8 查看用户环境变量
env
9 用户切换
su - 用户名 将用户的环境变量一起切换
su - root -c "useradd user2" 使用root的权限添加一个用户user2
10 查看登入用户信息
who
显示:登入用户名 登入终端 登入时间
tty 表示本地终端
pts 表示远程终端
11 查看登入用户详细信息
w
显示:当前时间 连续运行时间(uptime) 用户数 负载均衡指数
登入用户名—登入终端—登入IP地址—登入时间—空闲时间—累计占用CPU时间—当前CPU时间—工作命令
四、用户组管理命令
1 添加用户组
groupadd [-g] 组名
-g 指定组ID
2 修改用户组
groupmod [-gn] 组名
-g 修改组ID
-n 修改组名
例:groupmod -n g2 g1 将组g1的名字修改为g2
3 删除组
groupdel 组名
注:不能删除用户的初始组,要先删除用户然后删除组,但是用户的附加组可删除
4 将用户添加入组或从组中删除
gpasswd -a 用户名 组名 将用户加入组
gpasswd -d 用户名 组名 将用户从组中删除