Linux用户管理与文件权限

用户和用户组

三种用户 UID

在 Linux 系统中,用户可以分为以下三个主要类型:

  1. 超级用户(Superuser):超级用户也称为 root 用户,是系统的管理员账户。超级用户具有系统的最高权限,可以访问和修改系统的任何文件和配置。超级用户在执行敏感操作时需要谨慎,并且需要提供管理员密码进行验证。

  2. 系统用户(System User):系统用户是由系统或安装过程中自动生成的用户账户。这些用户账户专门用于运行系统进程或服务,并且不允许登录系统进行交互。系统用户没有登录系统的权限,因此无法直接与系统交互。

  3. 普通用户(Regular User):普通用户是由系统管理员或超级用户创建的一般用户账户。普通用户登录到系统后可以执行一般任务并运行应用程序,但没有访问系统关键文件和配置的特权。普通用户通常只能访问自己的用户目录和一些共享的资源。

每个类型的用户在系统中有不同的权限和角色,这样可以确保系统的安全性和管理的灵活性。超级用户用来管理整个系统,而系统用户和普通用户则是为了实现更细粒度的权限控制和用户管理。

用户组 GID

一对一,一对多,多对一,多对多

在 Linux 系统中,用户组(User Group)是一种将用户进行逻辑分组的机制。用户组可以用来授权和管理组中的用户访问文件、目录和其他系统资源。

以下是 Linux 系统中常见的用户组:

  1. 主用户组(Primary Group):每个用户在系统中都有一个主用户组,它是用户创建时分配的默认用户组。主用户组通常与用户的用户名相同,并且在用户的配置文件(如 /etc/passwd 文件)中定义。

  2. 辅助用户组(Supplementary Group):除了主用户组外,用户还可以加入一个或多个辅助用户组。可以从这些辅助用户组中获取额外的权限,以便用户可以访问组内其他用户所拥有的资源。

用户组在权限管理、访问控制以及文件和目录的所有权方面发挥重要作用。通过将用户放入特定的用户组,可以方便地授予或撤销组中用户对某些资源的访问权限。同时,用户组还可以用于文件和目录的权限设置,以允许组内用户共享访问或限制访问。

在 Linux 系统中,可以使用 groupadd 命令创建用户组,使用 groupmod 命令修改用户组,使用 groupdel 命令删除用户组。使用 usermod 命令可以将用户添加到或移出用户组。

三个重要文件

etc/passwd /etc/passwd 是一个位于 Linux 系统中的文件,用于存储系统中的用户账户信息。

具体而言,/etc/passwd 文件包含了每个用户账户的以下信息(以冒号分隔):

  1. 用户名:用户账户的登录名。
  2. 密码占位符:在过去,密码是以加密形式存储在 /etc/passwd 中,但现在通常是用一个占位符(如 x*)表示密码存储在 /etc/shadow 文件中。
  3. 用户ID(UID):是一个唯一的数字标识符,用于标识用户账户。
  4. 主用户组ID(GID):与用户相关联的主用户组的标识符。
  5. 用户账户说明信息:一般是用户的全名或其他相关信息。
  6. 用户主目录:用户账户的主目录路径,通常是用户登录后所处位置。
  7. 登录Shell:用户登录后启动的默认 Shell。

现代的 Linux 系统通常使用 /etc/shadow 文件存储用户密码的加密哈希值,以提高密码的安全性。/etc/passwd 文件仍然存在,但只包含有关用户账户的基本信息。

Linux是认准UID并不是用户名,若将普通用户的UID在etc/passwd改为0,普通用户将有root权限。

/etc/shadow /etc/shadow 是 Linux 系统中的一个重要文件,用于存储用户账户的加密密码哈希值和其他与密码相关的安全信息。

具体而言,/etc/shadow 文件包含了每个用户账户的以下信息(以冒号分隔):

  1. 用户名:用户账户的登录名。
  2. 密码哈希值:经过加密算法处理的用户密码的哈希值。实际的密码不会以明文形式存储在此文件中。
  3. 上次密码更改时间:用户最近一次修改密码的时间,以自 1970 年 1 月 1 日以来的天数表示。
  4. 密码过期时间:用户密码过期的时间,以自 1970 年 1 月 1 日以来的天数表示,如果为 0,则意味着密码永远不会过期。
  5. 密码过期前的警告天数:在密码过期之前,系统向用户发送密码过期警告的天数。
  6. 密码过期后的宽限时间:密码过期后允许用户登录的宽限时间,超过宽限时间后,用户将无法登录。
  7. 密码失效时间:用户账户被禁用的时间,以自 1970 年 1 月 1 日以来的天数表示。
  8. 用户账户失效的原因:包含禁用或锁定用户账户的原因。

/etc/shadow 文件的权限非常重要,只有系统管理员(root 用户)才能读取和修改该文件,以确保密码信息的安全性。

需要注意的是,使用直接编辑 /etc/shadow 文件的方式是不推荐的,通常应该使用专门的命令(如 passwd)来管理用户密码和相关设置,以保证密码的安全性和一致性。

/etc/group /etc/group 是 Linux 系统中的一个文件,它存储了用户组(Group)的信息。

具体而言,/etc/group 文件中的每一行都表示一个用户组,行中的字段由冒号分隔,通常包含以下信息:

  1. 组名:用户组的名称。
  2. 组密码占位符:在过去,组密码是以加密形式存储在 /etc/group 中,但现在通常是用一个占位符(如 x*)表示组密码存储在 /etc/gshadow 文件中。
  3. 组ID(GID):是一个唯一的数字标识符,用于标识用户组。
  4. 组成员:属于该组的用户账户列表,它们以逗号分隔。

/etc/group 文件用于管理和组织用户。通过将用户添加到特定的用户组,可以轻松管理对文件、目录和其他系统资源的访问权限。用户组还可以用于共享文件以及对文件和目录的权限设置。

需要注意的是,同样地,直接编辑 /etc/group 文件并不被推荐。应该使用专门的管理命令(如 groupaddgroupmodgroupdel)来创建、修改和删除用户组,以确保数据的一致性和安全性。

文件权限

在 Linux 系统中,每个文件和目录都有相应的文件权限,用于控制对它们的访问和操作权限。文件权限由三个方面组成:所有者权限、群组权限和其他用户权限。

  1. 所有者权限:表示文件或目录的所有者对其具有的权限。所有者权限包括读取权限(r,数值为4)、写入权限(w,数值为2)和执行权限(x,数值为1)。

  2. 群组权限:表示文件或目录所属的用户组对其具有的权限。群组权限的设置方式与所有者权限相同。

  3. 其他用户权限:表示除所有者和群组外的其他用户对文件或目录具有的权限,也被称为"其他"权限。

通过将不同权限的数值相加,可以为每个文件或目录分配一个三位数的权限模式。例如,权限模式为 755 表示所有者具有读、写和执行权限(7),而群组和其他用户具有读和执行权限(5)。

以下是常见的文件权限模式及其含义:

  • rwx:具有读、写和执行权限。
  • rw-:具有读和写权限,但没有执行权限。
  • r-x:具有读和执行权限,但没有写权限。
  • r--:只具有读权限,没有写和执行权限。
  • -wx:具有写和执行权限,但没有读权限。
  • -w-:只具有写权限,没有读和执行权限。
  • --x:只具有执行权限,没有读和写权限。
  • ---:没有任何权限。

文件权限可以使用 chmod 命令进行更改。例如,使用 chmod 755 file.txt 命令将文件 file.txt 的权限更改为 755。

需要注意的是,修改文件权限可能需要足够的权限,通常需要使用 root 用户或具有超级用户权限的用户才能执行此操作。

相关推荐
Komorebi.py1 小时前
【Linux】-学习笔记05
linux·笔记·学习
Mr_Xuhhh1 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
内核程序员kevin4 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
朝九晚五ฺ8 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream9 小时前
Linux的桌面
linux
xiaozhiwise9 小时前
Makefile 之 自动化变量
linux
意疏11 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
BLEACH-heiqiyihu11 小时前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器
一只爱撸猫的程序猿11 小时前
一个简单的Linux 服务器性能优化案例
linux·mysql·nginx