用户和用户组
三种用户 UID
在 Linux 系统中,用户可以分为以下三个主要类型:
超级用户(Superuser):超级用户也称为 root 用户,是系统的管理员账户。超级用户具有系统的最高权限,可以访问和修改系统的任何文件和配置。超级用户在执行敏感操作时需要谨慎,并且需要提供管理员密码进行验证。
系统用户(System User):系统用户是由系统或安装过程中自动生成的用户账户。这些用户账户专门用于运行系统进程或服务,并且不允许登录系统进行交互。系统用户没有登录系统的权限,因此无法直接与系统交互。
普通用户(Regular User):普通用户是由系统管理员或超级用户创建的一般用户账户。普通用户登录到系统后可以执行一般任务并运行应用程序,但没有访问系统关键文件和配置的特权。普通用户通常只能访问自己的用户目录和一些共享的资源。
每个类型的用户在系统中有不同的权限和角色,这样可以确保系统的安全性和管理的灵活性。超级用户用来管理整个系统,而系统用户和普通用户则是为了实现更细粒度的权限控制和用户管理。
用户组 GID
一对一,一对多,多对一,多对多
在 Linux 系统中,用户组(User Group)是一种将用户进行逻辑分组的机制。用户组可以用来授权和管理组中的用户访问文件、目录和其他系统资源。
以下是 Linux 系统中常见的用户组:
主用户组(Primary Group):每个用户在系统中都有一个主用户组,它是用户创建时分配的默认用户组。主用户组通常与用户的用户名相同,并且在用户的配置文件(如 /etc/passwd
文件)中定义。
辅助用户组(Supplementary Group):除了主用户组外,用户还可以加入一个或多个辅助用户组。可以从这些辅助用户组中获取额外的权限,以便用户可以访问组内其他用户所拥有的资源。
用户组在权限管理、访问控制以及文件和目录的所有权方面发挥重要作用。通过将用户放入特定的用户组,可以方便地授予或撤销组中用户对某些资源的访问权限。同时,用户组还可以用于文件和目录的权限设置,以允许组内用户共享访问或限制访问。
在 Linux 系统中,可以使用 groupadd
命令创建用户组,使用 groupmod
命令修改用户组,使用 groupdel
命令删除用户组。使用 usermod
命令可以将用户添加到或移出用户组。
三个重要文件
etc/passwd
/etc/passwd
是一个位于 Linux 系统中的文件,用于存储系统中的用户账户信息。
具体而言,/etc/passwd
文件包含了每个用户账户的以下信息(以冒号分隔):
/etc/passwd
中,但现在通常是用一个占位符(如 x
或 *
)表示密码存储在 /etc/shadow
文件中。现代的 Linux 系统通常使用 /etc/shadow
文件存储用户密码的加密哈希值,以提高密码的安全性。/etc/passwd
文件仍然存在,但只包含有关用户账户的基本信息。
Linux是认准UID并不是用户名,若将普通用户的UID在
etc/passwd
改为0,普通用户将有root权限。
/etc/shadow
/etc/shadow
是 Linux 系统中的一个重要文件,用于存储用户账户的加密密码哈希值和其他与密码相关的安全信息。
具体而言,/etc/shadow
文件包含了每个用户账户的以下信息(以冒号分隔):
/etc/shadow
文件的权限非常重要,只有系统管理员(root 用户)才能读取和修改该文件,以确保密码信息的安全性。
需要注意的是,使用直接编辑 /etc/shadow
文件的方式是不推荐的,通常应该使用专门的命令(如 passwd
)来管理用户密码和相关设置,以保证密码的安全性和一致性。
/etc/group
/etc/group
是 Linux 系统中的一个文件,它存储了用户组(Group)的信息。
具体而言,/etc/group
文件中的每一行都表示一个用户组,行中的字段由冒号分隔,通常包含以下信息:
/etc/group
中,但现在通常是用一个占位符(如 x
或 *
)表示组密码存储在 /etc/gshadow
文件中。/etc/group
文件用于管理和组织用户。通过将用户添加到特定的用户组,可以轻松管理对文件、目录和其他系统资源的访问权限。用户组还可以用于共享文件以及对文件和目录的权限设置。
需要注意的是,同样地,直接编辑 /etc/group
文件并不被推荐。应该使用专门的管理命令(如 groupadd
、groupmod
、groupdel
)来创建、修改和删除用户组,以确保数据的一致性和安全性。
文件权限
在 Linux 系统中,每个文件和目录都有相应的文件权限,用于控制对它们的访问和操作权限。文件权限由三个方面组成:所有者权限、群组权限和其他用户权限。
所有者权限:表示文件或目录的所有者对其具有的权限。所有者权限包括读取权限(r,数值为4)、写入权限(w,数值为2)和执行权限(x,数值为1)。
群组权限:表示文件或目录所属的用户组对其具有的权限。群组权限的设置方式与所有者权限相同。
其他用户权限:表示除所有者和群组外的其他用户对文件或目录具有的权限,也被称为“其他”权限。
通过将不同权限的数值相加,可以为每个文件或目录分配一个三位数的权限模式。例如,权限模式为 755 表示所有者具有读、写和执行权限(7),而群组和其他用户具有读和执行权限(5)。
以下是常见的文件权限模式及其含义:
- rwx:具有读、写和执行权限。
- rw-:具有读和写权限,但没有执行权限。
- r-x:具有读和执行权限,但没有写权限。
- r--:只具有读权限,没有写和执行权限。
- -wx:具有写和执行权限,但没有读权限。
- -w-:只具有写权限,没有读和执行权限。
- --x:只具有执行权限,没有读和写权限。
- ---:没有任何权限。
文件权限可以使用 chmod
命令进行更改。例如,使用 chmod 755 file.txt
命令将文件 file.txt
的权限更改为 755。
需要注意的是,修改文件权限可能需要足够的权限,通常需要使用 root 用户或具有超级用户权限的用户才能执行此操作。