Linux用户管理
用户名文件
/etc/passwd
cat /etc/passwd
显示结果如下:root:x:0:0:root:/root:/bin/bash
- 用户名:密码占位符:uid:gid:注释说明:家目录:用户shell
密码文件
/etc/shadow
cat /etc/shadow
显示结果如下:
user1:$6$fsqEwGKM$e/sqvmDS.2g5NRAnVuAhxjRd6zbjlp1rB3/bUZcqj5CyKLEZvpr0R1nVcjbq7HI3t9fTYEA6LQkWiBuVy9Eel1:17236:0:99999:7:::
- 用户名
- 加密后的用户密码,*表示账户被锁定,!!表示账户还没有密码
- 上次更改密码的日期,距离1970年1月1日的天数
- 再过多少天才可以更改密码,默认为0,无限制
- 密码多少天后过期,默认99999,即永远不需要更改
- 密码到期前的警告期限
- 账号失效期限,到期之后几天后失效
- 账号的生命周期
- 保留使用
用户管理
- 增加用户
useradd
useradd -u UID -g GID -d HOME -M -s /sbin/nologin
useradd -u 501 -g 501 -M -s /sbin/nologin user1
-M
不创建用户家目录,用户名文件中还会有该字段内容-g
指定不存在的用户组会报错useradd user2
此时在创建用户的同时会创建相同名字的用户组
- 删除用户
userdel
userdel [-r] username
-r
删除账号的时候连带账户家目录一起删除
- 修改用户属性(跟添加用户选项类似)
-u -g -d -s
- 增加用户
用户组管理
- 文件:
/etc/group
和/etc/gshadow
- 增加用户组
- groupadd [-g GID] groupname
- 删除用户组
- groupdel groupname
- 如果该组内还有用户,则不能删除
- 文件:
修改用户密码
passwd [username]
- 建立用户后是没有密码的,也是不能登录系统的,只有设置好密码后才能登录。
passwd
修改当前用户密码passwd username
以root用户登录,修改指定用户密码
切换用户
su username
切换到指定用户su - username
切换到指定用户,并初始化当前用户的环境变量- 不加用户名,则切换到root用户
su - user1 -c "touch /tmp/1.txt"
以user1的身份去执行命令
sudo
- su输入的密码是root用户密码,而sudo输入的是当前用户的密码
- 只有当root用户预先设定之后,用户才能使用sudo命令
visudo
命令编辑/etc/sudoersroot ALL=(ALL) ALL
- 用户名,指定哪个用户将拥有sudo权利
- 用户名,可以切换到哪个用户的身份
- 主机名或主机ip
- 可以使用的命令
user1 ALL=(ALL) NOPASSWD:ALL
常用
禁止root使用ssh远程登录
修改/etc/ssh/sshd_config
,将#PermitRootLogin yes
修改为PermitRootLogin no
,修改之后重启ssh服务。