/ Linux

Linux 中的用户和组

Linux 系统下用户分为管理员,虚拟用户和普通用户 3 类,每个用户都有唯一的 UID。

在系统中一般把 UID 的范围划分为 3 个部分。其中

0 作为第一部分,1~999 作为第二部分 而 1000 之后作为第三部分。UID 是 0 的用户拥有系统最高的权限,只属于 root 用户所有;1~999 属于系统的虚拟用户所有,是用于特殊的服务,而 1000 之后的 UID 属于系统的普通用户所有。

系统管理员用户账号

root 用户拥有非常大的权限,如果操作不当可能会对整个系统造成灾难性的损失,因此在工作中除非是非常必要,一般情况下应该尽量避免使用 root 用户登陆系统。在日常的系统检查工作和学习中,尽可能不适用 root 用户来操作

系统普通用户账号

普通用户是指那些可以登陆系统,拥有属于自己独立目录且能够控制属于自己目录和文件的用户。普通用户受来自于系统管理员的权限,而且只拥有极少数系统资源但具有能够独立执行属于自己任务的权限。
由于普通用户对系统造成的危害不大且基本可以满足日常的学习需要,因此日常的学习中建议使用普通用户。

添加用户

在执行 useradd 命令来创建用户时,相关的进程就会读取 /etc/default/useradd 文件的参数来初始化用户,不过这个命令并不能给用户设置密码,因此还需要执行 passwd 命令来为用户账户设置密码。

useradd user1
passwd user1

切换到新创建的用户账号。

su - user1 
// 如果不带参数 - 的话 切换到其他用户,但是不切换环境变量
// 所以建议大家在切换用户时,尽量用su - [user],否则可能会出现环境变量不对的问题。

用户信息都记录在 /etc/passwd 和 /etc/shadow 文件中

用户组

用户组是对用户集中权限控制的一种方法,在同一个用户组中的用户具有相同的权限。通常情况下每个用户都会对应一个用户组。

创建用户组

groupadd group1
gpasswd group1 // 设置密码
gpasswd -a user1 group1 // 将 user1 添加到 group1
gpasswd -d user1 group1 // 移除用户
gpasswd -A user1 group1 // 设置用户组管理员

组信息存放在 /etc/group 和 /etc/gshadow

用户环境配置

在 Linux 系统中用户通过安全认证并登陆后,系统就会通过读取 /etc/profile , ~/.bash_profile , ~/.bashrc 及 ~/.bash_login 或 ~/.profile 等文件的配置来为用户初始化工作环境。

/etc/profile 配置文件

这个文件是系统用于为每个用户初始化的工作环境,当用户首次登陆时系统就会读取该文件的参数,并从 /etc/profile.d 目录的配置文件中搜集 shell 的相关设置信息,使得在用户登陆后就可以正常对系统的相关资源进行操作。

~/.bash_profile

这个文件用于记录用户自定义 shell。

~/.bashrc

在系统执行 ~/.bash_profile 文件时就会判断 ~/.bashrc 文件是否存在,如果存在就执行。