// 安全研究 · 2024-11-06

Linux基础(二):用户管理、文件权限与系统日志

@[TOC](内容预览 ≧∀≦ゞ

Linux基础2:用户账号管理、文件权限与系统日志


声明

笔记内容参考了B站UP主 泷羽sec 的学习视频,如有侵权,将立即删除。 本笔记旨在促进网络安全学习,任何不当使用均与作者无关,请勿逾越法律红线,否则后果自负。 希望这些内容能对各位师傅有所帮助,欢迎您的点赞和评论!


在 Linux 系统中,用户管理、文件权限控制和系统日志记录是日常操作中至关重要的内容。本文将围绕这几个主题详细介绍相关命令和操作方法。

1. 用户与组账号管理

1.1 用户账号信息

/etc/passwd 文件

/etc/passwd 文件用于存储系统中的所有用户账户的基本信息。每行代表一个用户,各字段之间以冒号分隔,包括以下信息:

  • 用户名:用户的登录名
  • 密码占位符:通常表示为 x,密码实际存储在 /etc/shadow 文件中
  • 用户 ID (UID):用户的唯一标识
  • 组 ID (GID):用户所在组的标识
  • 用户描述:一般用于存储用户的描述信息(如全名等)
  • 家目录:用户登录后的主目录
  • 默认 Shell:用户登录后默认使用的 Shell 在这里插入图片描述

/etc/shadow 文件

/etc/shadow 文件存储了用户的加密密码以及密码安全相关属性,只有 root 和拥有相应权限的用户才能访问。

字段包括:

  • 用户名:与 /etc/passwd 中的用户名对应
  • 加密密码:用户的加密密码(若无密码则为 * 或 !!)
  • 密码上次修改时间:自1970年1月1日以来的天数
  • 最短/最长密码间隔:两次密码修改的最短间隔和有效期
  • 密码到期警告期:密码到期前的警告天数
  • 宽限期与账户失效时间:密码到期后的宽限天数与账户失效日期

在这里插入图片描述

1.2 用户组信息

/etc/group 文件

/etc/group 文件保存了系统中所有组的相关信息。包括:

  • 组名:组的名称
  • 组密码:通常为空
  • 组 ID (GID):组的唯一标识
  • 组成员:组内的所有用户

在这里插入图片描述

1.3 禁用用户账号

禁用用户或设置账户失效:

  • 禁用用户:

    sudo passwd -l username

    该命令使用 passwd 锁定用户账号,使 username 用户无法登录。

  • 设置账号过期日期:

    sudo chage -E 1990-01-01 username

    此命令将 username 账户设置为在指定日期过期,不再允许登录。

  • 查看用户密码状态:

    sudo passwd -S username

    显示用户账号的状态,包括密码是否设置、是否被锁定以及上次修改时间。


2. 文件权限管理

在 Linux 系统中,一切皆文件,包括普通文件、目录、链接、设备等。文件权限管理是系统安全的核心。

2.1 查看文件权限

使用 ls -la 命令可以查看文件或目录的详细信息,包括权限、所有者、组用户、文件大小等。可以配合其他选项使用,例如 ls -liah,其含义如下:

  • -l:显示详细格式,包括权限、所有者、组、大小等。
  • -i:显示 inode 号,这是文件的唯一标识。
  • -a:显示所有文件,包括隐藏文件。
  • -h:以人类易读的方式显示文件大小。
ls -liah /etc/passwd

2.2 更改文件所有者

使用 chown 命令更改文件的所有者或所属组。例如,将文件 file 的所有者更改为 root:

sudo chown root file

若要同时更改文件的所有者和所属组,可以使用:

sudo chown root:groupname file

2.3 修改文件权限

文件权限决定了文件的读取、写入和执行权。使用 chmod 命令可以设置或修改文件权限,既可以用字符模式指定权限,也可以用数字模式表示。

  • 字符模式示例:

    sudo chmod u=rwx,g+rw,o-r file
    • u=rwx:将所有者权限设为读、写、执行。
    • g+rw:为组用户添加读、写权限。
    • o-r:移除其他用户的读权限。
  • 数字模式示例:

    chmod 400 file
    • 400 表示所有者有读权限,而组和其他用户没有任何权限。

2.4 文件权限详解

权限位说明

文件权限在 ls -l 命令的输出中以十个字符显示,前三个字符决定文件类型:

  • 第一个字符:文件类型,如 - 表示普通文件,d 表示目录,l 表示链接文件。
  • 后九个字符:文件权限,按照所有者、组用户、其他用户的顺序排列,每三位表示一种用户权限,例如 rwxr-xr--。

权限类型

  • r(读权限):允许读取文件内容或列出目录内容。
  • w(写权限):允许修改文件内容或添加、删除、重命名目录中的文件。
  • x(执行权限):允许执行可执行文件或进入目录。
  • s(SetUID/SetGID 权限):
    • SetUID (u+s):当可执行文件具有 SetUID 权限时,执行该文件的用户临时获得文件所有者的权限。
    • SetGID (g+s):当目录具有 SetGID 权限时,文件创建后继承该目录的组权限。
  • t(粘滞位,Sticky Bit):设置在目录上时,仅文件所有者或 root 用户可删除文件,通常用于公共目录(如 /tmp)。

chmod 权限模式详解

  1. 用户类型:

    • u:文件所有者(User)。
    • g:用户组(Group)。
    • o:其他用户(Others)。
    • a:所有用户(All)。
  2. 操作符:

    • +:添加权限。
    • -:移除权限。
    • =:设置指定权限,覆盖现有权限。
  3. 权限数值表示法:

    • 权限组合可通过八进制数值表示,常用的权限数值如下:

      • 4:读权限 (r)。
      • 2:写权限 (w)。
      • 1:执行权限 (x)。

      数值权限的组合方式:

      • 7(rwx):读、写、执行。
      • 6(rw-):读、写。
      • 5(r-x):读、执行。
      • 4(r--):仅读。

    常见的权限组合示例:

    chmod 755 file   # 所有者:rwx;组:r-x;其他用户:r-x
    chmod 644 file   # 所有者:rw-;组:r--;其他用户:r--
    chmod 700 file   # 所有者:rwx;组和其他用户无权限

3. 系统日志管理

日志文件帮助管理员记录系统事件、审查用户行为,便于系统故障排查和安全监控。

3.1 查看日志目录

系统日志通常位于 /var/log 目录下:

ls -l /var/log

3.2 查看认证日志

认证日志记录用户的登录、认证失败等事件,帮助管理员排查认证问题。

sudo tail -3 /var/log/auth.log
  • auth.log:在 Debian 和 Ubuntu 系统中记录认证相关信息
  • secure.log:在 Red Hat 和 CentOS 系统中记录认证相关信息

3.3 查看二进制日志

/var/log/wtmp 是一个二进制文件,记录用户的登录和注销信息,可使用 who 命令查看最近的登录/注销记录:

who /var/log/wtmp | tail -5

3.4 查看内核日志

dmesg 命令显示内核缓冲区的内容,包括硬件检测、驱动加载等信息。

dmesg

3.5 systemd 日志查看

journalctl 命令是 systemd 系统日志管理的工具,用于查询系统和服务的启动、运行和错误信息:

journalctl

总结

本篇文章介绍了 Linux 系统中的用户账号管理、文件权限配置以及系统日志查看的基本方法和命令。通过了解这些基础操作,可以帮助管理员更好地管理系统、提高安全性,并在发生问题时迅速定位故障。掌握这些技能对于系统运维和安全管理至关重要。

原文 https://blog.csdn.net/2301_79518550/article/details/143582405