Linux 的用户和用户组管理

用户和用户组管理

越是对服务器要求高的服务器,越需要建立合理的用户权限等级制度和服务操作规范。

1. 用户配置文件

1.1 用户信息文件 /etc/passwd

在Linux中主要是通过用户配置文件来查看和修改用户信息。

1.1.1 /etc/passwd

vim /etc/passwd
man 5 passwd
Linux 的用户和用户组管理
Linux 的用户和用户组管理
x 代表有密码。具体密码看shadow。
家目录 也被称为 宿主目录。

1.1.2 初始组和附加组

初始组:就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组作为这个用户的初始组。

不推荐大家修改初始组。

附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。

1.1.3 Shell 是什么

Shell 就是 Linux 的命令解释器。

在/etc/passwd 当中,除了标准Shell是/bin/bash之外,还可以写如 /sbin/nologin(暂时禁止登录)。

用户和操作系统的交互需要命令解释器。

1.2 影子文件 /etc/shadow

影子文件权限是000,权限更小。
Linux 的用户和用户组管理
Linux 的用户和用户组管理
Linux 的用户和用户组管理

1.2.1 时间戳换算

  • 把时间戳换算为日期:
    data -d '1970-01-01 16066 days"
  • 把日期换算为时间戳
    echo $(($(date --date='2014/01/06" +%s)/86400+1))
    echo 是输出命令

1.3 组信息文件 /etc/group 和组密码文件 /etc/gshadow

1.3.1 组信息文件 /etc/group

Linux 的用户和用户组管理

1.3.2 组密码文件 /etc/gshadow

Linux 的用户和用户组管理
不推荐,会降低安全性。

2. 用户管理相关文件

2.1 用户的家目录

普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700 wxr------

超级用户:/root/,所有者和所属组都是root用户,权限是550. -xr-x----

普通用户变为超级用户,方法是:更改uid = 0. 家目录不发生更改。

2.2 用户的邮箱

/var/spool/mail/用户名/
给每个用户创建一个邮箱。

2.3 用户模板目录

/etc/skel

3. 用户管理命令

3.1 用户添加命令 useradd

(1)useradd的命令格式
Linux 的用户和用户组管理
(2)添加默认用户
Linux 的用户和用户组管理
(3)指定选项添加用户
useradd -u 550 -G root,bin -d /home/lampl -c "test user" -s /bin/bash sc

(4) 用户默认值文件
Linux 的用户和用户组管理
Linux 的用户和用户组管理

3.2 修改用户密码 passwd

3.2.1 passwd 命令格式

Linux 的用户和用户组管理

3.2.2 查看密码状态

Linux 的用户和用户组管理

3.2.3 锁定用户和解锁用户

Linux 的用户和用户组管理

3.2.4 使用字符串作为用户的密码

Linux 的用户和用户组管理

3.3 修改用户信息 usermod

3.3.1 修改用户信息 usermod

修改一个已经存在的用户信息。
Linux 的用户和用户组管理
Linux 的用户和用户组管理

3.3.2 修改用户密码状态 chage

Linux 的用户和用户组管理
Linux 的用户和用户组管理
设置为 0,系统默认用户没有修改过密码。因此用户一登录就要求修改密码。

3.4 删除用户 userdel

3.4.1 删除用户userdel

Linux 的用户和用户组管理
手工删除用户
Linux 的用户和用户组管理
在passwd, shadow, group, gshadow (即前4个)中删除 lamp 用户。

查看用户ID
Linux 的用户和用户组管理

3.4.2 用户身份切换 su

Linux 的用户和用户组管理
Linux 的用户和用户组管理

4. 用户组管理命令

4.1 添加用户组

Linux 的用户和用户组管理

4.2 修改用户组

Linux 的用户和用户组管理

4.3 删除用户组

Linux 的用户和用户组管理

4.3.1 把用户添加入组或从组中删除

Linux 的用户和用户组管理