-
用户配置文件
-
用户信息文件 /etc/passwd
-
man 5 passwd查看帮助
-
每一行代表一个用户 7个字段各自含义,用冒号分割
-
1.用户名称
-
2.密码标志 密码文件其实是shadow passwd中x表示用户有密码
-
3.用户ID就是UID root 0 普通用户500 500以内系统用户
-
4.用户初始组ID GID
- 初始组就是用户一登录就立刻拥有这个用户组的相关权限 每个用户的初始组只能有1个 一般是和这个用户的用户名相同的组名作为这个用户的初始组
- 附加组是指用户可以加入多个其他的用户组 并拥有这些组的权限 附加组可以有多个
-
5.用户说明
-
6.家目录
-
7.登陆以后的shell 就是命令解释器 在passwd中,除了标准shell是/bin/bash之外,还可以写如/sbin/nologin
- root用户和普通用户是标准shell
- 伪用户的解释器 /sbin/nologin
- 理论上shell可以有多个 可以更改
- 简单说所有用户都必须写成/bin/bash 写到nologin下用户就失效
-
-
影子文件 /etc/shadow
- shadow文件权限是000
- 它有9个字段
- 1.用户名
- 2.经过加密后的真正密码
- sha512散列加密
- !!或者*表示没有密码 不能登陆
- 密码前边加一个感叹号 可以临时禁用密码
- 3.密码最后一次修改日期 事件戳表示
- 4.两次密码修改间隔 如果写10 表示10天后才能改密码
- 5.密码有效期
- 6.密码修改到期前的警告天数
- 7.密码国企后的宽限天数
- 0 代表密码过期后立即失效
- -1 代表密码永远不会失效
- 8.账号失效时间 要用时间戳表示
- 把日期换算成时间戳 echo $(($(date --date="2020/01/01" +%s)/86400+1))
- 把事件戳换算成日期 date -d "2020-01-01 15600 days"
- 9.保留字段
-
组信息文件 /etc/group
- 1.组名 默认情况下每个用户都有一个跟自己名字相同的组
- 2.组密码标志
- 3.GID groupid 靠组ID识别用户
- 4.组中附加用户
-
组密码文件 /etc/gshadow
- 1.组名
- 2.组密码
- 3.组管理员用户名
- 4.组中附加用户
-
用户家目录
- 普通用户 /home/用户名/ 所有者和所属组都是此用户 权限700
- 超级用户 /root/ 所有者和所属组都是root用户 权限是550
- 更改权限的话 是把用户权限改成对应的用户权限 就是修改的UID 用户家目录不会变
-
用户的邮箱
- 系统会给用户在 /var/spool/mail/下创建同名邮箱文件
-
用户模板目录
- /etc/skel/
- 进入 /home/用户名 文件夹下 ls -a 有隐藏文件 是从模板里导入到这里的
- 如果在/etc/skel/下创建文件 会在/home/用户名 下出现这个文件
-
-
用户管理命令
-
添加用户 useradd
-
执行命令后到底干了哪些操作
- 用户的两个文件 组的两个文件 还有家目录里的用户模板 以及邮箱
-
常用选项
- -u 手工指定用户的UID
- -d 家目录
- -c 用户说明
- -g 组名 手工指定用户的初始组
- -G 组名 指定用户的附加组
- -s shell 手工指定用户的登陆shell 默认是/bin/bash
- 实例 usradd -u 555 -G root,bin -c "test user" -d /smitty -s /bin/bash smitty
- 1.不要用g加组,尤其是root组,不会创建相应目录 会很麻烦
- 2.可以直接放在根目录下
- 3.如果指定shell 不要写错了
-
用户默认值文件 /etc/default/useradd
-
GROUP=100 用户默认组
-
HOME=/home 用户家目录
-
INACTIVE=-1 密码过期宽限天数(shadow文件第7字段)
-
EXPIRE= 密码失效时间(8)
-
SHELL=/bin/bash 默认shell
-
SKEL=/etc/skel 模板目录
-
CREATE_MAIL_SPOOL=yes 是否建立邮箱
-
在/etc/login.defs下有其他东西
-
-
简单练习
- passwd -S 用户名 查看用户密码信息
- passwd -l 用户名 锁定用户 -u解锁用户
- echo "mima" | passwd --stdin 用户名 手工设置用户密码 主要是用来shell编程的时候使用
-
-
修改用户信息
- usermod和useradd选项是一样的,这个是给已存在用户操作的
- usermod是用L和U锁定和解锁用户的
- chage 【选项】 用户名
- -l 列出用户的详细密码状态
- -d 修改密码最后一次更改日期
- -m 两次密码修改间隔
- -M 密码有效期
- -W 密码过期前警告天数
- -I 密码过后宽限天数
- -E 账号失效时间
- chage 最经常用就是 chage -d 0 用户名 意思就是让用户登陆先修改密码
-
删除用户userdel
-
-r 删除用户的同时删除用户家目录
-
删除用户相当于执行了下边6个操作
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/gshadow
- rm -rf /var/spool/mail/用户名
- rm -rf /home/用户名
-
id 用户 查看用户id
-
用sudo 切root 环境变量不会换 必须用 su - root 用env查看
-
su - root -c useradd user3 用管理员身份执行一条命令
-
-
用户组管理
- groupadd 【选项】 组名
- -g GID 指定组ID
- -n 新组名 老组名 改名
- groupdel 组名
- 如果有初始用户 删不了组
- 如果没有初始用户 可以删组
- 把已有用户添加到组或删除 是作为附加用户添加的
- gpasswd -a 用户名 用户 把用户加入组
- gpasswd -d 用户名 用户 把用户从组删除