第三节:用户和用户组管理
理论知识
- 用户和用户组的概念:在 Linux 系统中,用户是使用系统资源的个体,每个用户都有一个唯一的用户名和用户 ID(UID)。用户组是一组用户的集合,每个用户组都有一个唯一的组名和组 ID(GID)。
- 用户账号的创建和删除:使用
useradd
命令可以创建一个新用户,使用userdel
命令可以删除一个用户。在创建用户时,可以指定用户的主目录、登录 shell 等信息。 - 用户密码的管理:使用
passwd
命令可以为用户设置或修改密码。超级用户可以为任何用户设置密码,普通用户只能修改自己的密码。 - 用户组的创建和删除:使用
groupadd
命令可以创建一个新的用户组,使用groupdel
命令可以删除一个用户组。 - 用户的默认配置文件:每个用户都有自己的默认配置文件,如
.bashrc
、.bash_profile
等。这些文件包含了用户的环境变量、别名等信息。 - 用户的主目录:用户的主目录是用户登录系统后默认的工作目录,通常位于
/home
目录下,以用户名命名。 - 用户的登录 shell:登录 shell 是用户登录系统后使用的命令解释器,常见的登录 shell 有
/bin/bash
、/bin/sh
等。 - 用户的权限管理:用户的权限可以通过用户组和文件权限来控制。不同的用户组可以拥有不同的权限,文件的权限也可以针对不同的用户组进行设置。
- 用户的账户锁定和解锁:使用
usermod
命令可以锁定或解锁用户账户。例如,锁定用户testuser
的账户:
sudo usermod -L testuser
解锁用户 testuser
的账户:
sudo usermod -U testuser
- 用户的账户过期设置:可以为用户账户设置过期时间,当账户过期后,用户将无法登录系统。使用
chage
命令可以设置用户账户的过期时间。例如,设置用户testuser
的账户在 30 天后过期:
sudo chage -E $(date -d '+30 days' +%Y-%m-%d) testuser
- 用户的账户信息查看:使用
id
命令可以查看用户的账户信息,包括 UID、GID、所属组等。例如:
id testuser
- 用户的账户切换:使用
su
命令可以切换用户。例如,切换到 root 用户:
su - root
实践案例
- 创建一个新用户:创建一个名为
newuser
的用户,并指定其主目录为/home/newuser
:
sudo useradd -d /home/newuser -m newuser
- 为新用户设置密码:为
newuser
用户设置密码:
sudo passwd newuser
- 创建一个新的用户组:创建一个名为
newgroup
的用户组:
sudo groupadd newgroup
- 将用户添加到用户组:将
newuser
用户添加到newgroup
用户组:
sudo usermod -G newgroup newuser
- 查看用户所属的用户组:查看
newuser
用户所属的用户组:
id newuser
- 修改用户的登录 shell:将
newuser
用户的登录 shell 修改为/bin/sh
:
sudo usermod -s /bin/sh newuser
- 锁定用户账户:锁定
newuser
用户的账户:
sudo usermod -L newuser
- 解锁用户账户:解锁
newuser
用户的账户:
sudo usermod -U newuser
- 设置用户账户的过期时间:设置
newuser
用户的账户在 10 天后过期:
sudo chage -E $(date -d '+10 days' +%Y-%m-%d) newuser
- 查看用户账户的过期信息:查看
newuser
用户账户的过期信息:
sudo chage -l newuser
- 删除一个用户:删除
newuser
用户:
sudo userdel -r newuser
- 删除一个用户组:删除
newgroup
用户组:
sudo groupdel newgroup