Linux - 安全 - 账户管理

吴宏东 – 记于2018年06月12日
博客 – https://segmentfault.com/u/wu…

Linux 账户管理

用户

用户文件 /etc/passwd

该文件所有用户可读,每一行代表一个用户,包含7个字段,分别用:隔开。

# 查看文件内容
cat /etc/passwd;

内容:

root:x:0:0:root:/root:/bin/bash
wuhd:x:1002:1002::/home/wuhd:/bin/bash

说明:

  • 字段1 = root 用户名
  • 字段2 = x 口令,加密存放在 /etc/shadow 文件中
  • 字段3 = 0 用户标识号 UID,0表示root超级管理用户,1-499表示系统标准用户,500之后为普通用户
  • 字段4 = 0 组标识号 GID
  • 字段5 = root 备注
  • 字段6 = /root 宿主目录
  • 字段7 = /bin/bash 命令解释器,默认为 /bin/bash,无法登录则为 /sbin/nologin

密码文件 /etc/shadow

该文件仅root用户可读,每一行代表一个用户,包含9个字段,分别用:隔开。

# 查看文件内容
cat /etc/shadow;

内容:

root:$6$vI9A.gXT$BpwPk43MYSqEa57nxXvABjB7WtF7do20pi87L2u73hExr2GjxxaNhw.PVH598nHGYl1j9Hpq9ECCsy0NaOhP00:17670:0:99999:7:::
wuhd:$6$Ya3wW9S4$O.SJLPiYAa1EA4V9NpIzk73E7MZxMNqr1WNgqLi2r0xXbCJgO2N1T8e00qr9.I1K7pynqmchIoZjHNzBguyfr.:17690:0:99999:7:::

说明:

  • 字段1 = root 用户名
  • 字段2 = $6$开头 加密口令 $6$表示SHA-512,$1$表示MD5,$2$表示Blowfish,$5$表示SHA-256,!!表示密码过期,*表示锁定,空表示免密码
  • 字段3 = 17670 最后修改时间戳
  • 字段4 = 0 多少天后才能修改密码,默认0
  • 字段5 = 99999 多少天后必须修改密码,默认99999 (两百多年以后啊)
  • 字段6 = 7 密码过期前提前7天提醒修改
  • 字段7 = 空 密码过期后多少天后禁用账号
  • 字段8 = 空 多少天后禁用账号
  • 字段9 = 空 预留字段

用户组

组文件 /etc/group

该文件所有用户可读,每一行代表一个组,包含4个字段,分别用:隔开。
一个组可以有多个用户,一个用户也可以属于多个组。
用户归属多组时,登录的组为主组,其他为附加组。

# 查看文件内容
cat /etc/group;

内容:

root:x:0:
wuhd:x:1002:

说明:

  • 字段1 = root 组名
  • 字段2 = x 组口令,加密存放在 /etc/gshadow 文件中
  • 字段3 = 0 组标识号 GID
  • 字段4 = 空 组成员,多个用户名用逗号隔开

组口令文件 /etc/gshadow

该文件仅root用户可读,每一行代表一个组,包含4个字段,分别用:隔开。

# 查看文件内容
cat /etc/gshadow;

内容:

root:::
wuhd:!::

说明:

  • 字段1 = root 组名
  • 字段2 = 空 组口令,加密字符串
  • 字段3 = 空 组管理员账号
  • 字段4 = 空 组成员,多个用户名用逗号隔开

用户管理

添加 useradd

# 创建用户test
useradd test;
# 创建用户test,加入附加组wuhd
useradd -G wuhd test;
# 创建用户test,指定登录目录/www,不创建宿主目录/home/test
useradd -d /www -M test;

修改 usermod

# 修改用户test的名称为test2
usermod -l test2 test;
# 将用户test添加到附加组wuhd
usermod -G wuhd test;
# 修改用户test的宿主目录为/www
usermod -d /www -m test

删除 userdel

# 删除用户test
userdel test;
# 删除用户test以及宿主目录/home/test
userdel -r test;

用户组管理

添加 groupadd

# 创建组test
groupadd test;

修改 groupmod

# 修改组test的名称为wuhd
groupmod -n wuhd test;

删除 groupdel

# 删除组test
groupdel test;

状态命令

当前用户 whoami

# 显示当前用户名称
whoami;

用户身份 id

# 显示当前用户身份
id;
# 显示用户wuhd的身份
id wuhd;

用户所属组 groups

# 显示指定用户所属的组
groups root;
groups wuhd;

口令管理

命令 passwd

# 显示用户wuhd的口令状态信息
passwd -S wuhd;
# 锁定用户wuhd
passwd -l wuhd;
# 解锁用户wuhd
passwd -u wuhd;
# 交互式修改用户wuhd的口令
passwd wuhd;
# 非交互式直接执行修改用户wuhd的口令为123456
echo 123456|passwd --stdin wuhd;

命令 chpasswd

# 非交互式直接执行修改用户wuhd的口令为123456
echo wuhd:123456|chpasswd;

命令 chage

# 查看用户wuhd的口令失效状态
chage -l wuhd;
# 使用户wuhd下次登录时必须修改口令
chage -d 0 wuhd;
# 使用户wuhd的口令在2020-03-01过期
chage -E 2020-03-01 wuhd;

登录管理

全局文件 /etc/login.defs

# 查看文件
cat /etc/login.defs;
    原文作者:吴宏东
    原文地址: https://segmentfault.com/a/1190000015270776
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞