Skip to content

用户和用户组

Linux 下用户和用户组的基本概念

在服务器环境中,「用户」的概念是明确的:服务器的管理员可以为不同的使用者创建用户,分配不同的权限,保障系统的正常运行;也可以为网络服务创建用户,通过权限限制,以减小服务被攻击时对系统安全的破坏。

在 Linux 系统中,用户的信息存储在 /etc/passwd 文件中,用户的密码存储在 /etc/shadow 文件中,用户组的信息存储在 /etc/group 文件中。

用户

root 用户

CAUTION

我们知道,root 用户可以对系统做极其危险的操作。当使用 root 权限执行命令时(如使用 sudo),一定要小心、谨慎,理解命令的含义之后再按下回车。请不要复制网络上所谓的「Linux 优化命令」等,以 root 权限执行,否则可能会带来灾难性的后果。 以下是一些会对系统带来毁灭性破坏的例子。 再重复一遍,不要执行下面的命令!

  • rm -rf / 删除系统中的所有可以删除的文件,包括被挂载的其他分区。即使不以 root 权限执行,也可以删掉自己的所有文件。
  • mkfs.ext4 /dev/sda 将系统的第一块硬盘直接格式化为 ext4 文件系统。这会破坏其上所有的文件。
  • dd if=/dev/urandom of=/dev/sda 对系统的第一块硬盘直接写入伪随机数。这会破坏其上所有的文件,并且找回文件的可能性降低。
  • :(){ :|: & };: 被称为「Fork 炸弹」,会消耗系统所有的资源。在未对进程资源作限制的情况下,只能通过重启系统解决,所有未保存的数据会丢失。

系统用户

除了你、root 和其他在用你的电脑/服务器的人(如果有)以外,剩下还有很多用户,如 nobody, www-data 等。它们由系统或相关程序创建,用于执行服务等系统任务。不要随意删除这些用户,以免系统运行出现问题。

TIP

一般地,在 Linux 中,系统用户的 UID 有一个指定范围,而这段范围在各个发行版中可能不同。如 Debian 使用了 100-999, 60000-64999 等区间分配给系统用户。 此外,由于系统用户的特殊性,它们一般默认禁止使用密码登录。

普通用户

切换用户:使用 su 和 sudo

TIP

sudo !! 是一个非常有用的技巧。当你在执行一个命令时,发现自己忘记加 sudo,可以直接输入 sudo !!,这样就会以 root 权限重新执行上一条命令。

用户组

用户组的基本概念

用户组