博客
关于我
Linux用户与用户组,文件权限及所有权
阅读量:625 次
发布时间:2019-03-13

本文共 2150 字,大约阅读时间需要 7 分钟。

Linux系统安全和用户管理是操作系统的重要组成部分。在这一节中,我们将详细介绍如何查看和修改用户信息,以及如何通过文件权限控制数据安全。

查看用户信息

要查看当前登录用户的信息,可以使用以下命令之一:

  • whoamiid -un:这两个命令都会显示当前用户的登录名和用户ID。

例如:

$ whoami$ id -un

若要查看用户所属的组,可以使用:

  • id -gnid -Gn:这将显示当前用户所属的组名及其组ID。

此外,用户和组的信息主要存储在以下文件中:

  • /etc/passwd:这是一个纯文本文件,记录了系统用户的信息。每一行对应一个用户记录,格式如下:

用户名:密码:用户ID:组ID:备注:主目录:默认shell

- **`/etc/shadow`**:同样是一个纯文本文件,但其中存储的是用户密码的哈希值,并非明文。`/etc/passwd`中的密码字段填充了`x`,以避免公开真实密码。默认情况下,各字段的意义如下:- **用户名(Username)**:每个用户的登录名。- **密码(Password)**:通常为`x`,表示实际密码存储在`/etc/shadow`中。- **用户ID(UserID)**:数字型表示用户的唯一标识符(UID)。UID为0的用户属于`root`用户,即使其用户名不是`root`。- **组ID(GroupID)**:表示用户所属的默认组ID。组信息存储在`/etc/group`中。- **备注(Comment)**:用户的备注信息,可以为空。- **主目录(Home Directory)**:用户的主用户目录路径,默认为`/home/用户名`。- **默认shell(Default Shell)**:用户登录时使用的shell命令执行环境。为空时,默认使用`/bin/sh`。### 查看文件和组信息要查看用户所属组的详细信息,可以使用以下命令:```bash$ cat /etc/shadow$ cat /etc/passwd

需注意,/etc/shadow中的密码信息具有加密性,建议不要直接修改此文件。修改用户信息时应使用专用工具,如usermod

延伸阅读

  • usermod命令:这是一个强大的用户管理工具,可以用来修改用户的多种属性。例如:

    usermod -c '备注信息' 用户名

    这将修改指定用户的备注栏。

  • 组信息管理:组的信息存储在/etc/group文件中,格式类似于/etc/passwd文件。组的权限与用户权限类似。

Linux文件权限管理

Linux系统通过文件属性(Mode)实现对文件和目录的访问控制。文件属性由12个二进制位(即4位八进制数字)表示,为权限位和特殊标志位的组合。

文件权限位解读

文件模式字符串由以下部分组成:

  • 权限位(3位):分别表示读、写、执行权限(例如rwx)。
  • 特殊标志位(3位):表示SUID、SGID和Sticky属性。

具体来说:

  • SUID(Set User ID):标志位设置后,可执行文件(如脚本)将继承文件所属用户的权限属性。但需谨慎设置,避免 stehen安全漏洞。

  • SGID(Set Group ID):类似于SUID,设置后可执行文件将继承文件所属组的权限。

  • Sticky位:设置该位后,文件或目录的拥有者、组和其他用户都不能对此文件或目录的某些操作进行改写操作,具体取决于目录是否具有 Sticky 权力。

使用umask设定权限

umask命令用于设定文件创建时的默认权限掩码。例如:

$ umask 022

对应的默认权限掩码为8进制数022,解读为:

  • 0 2 2:默认设置为r--r--,即只允许读和执行权限的文件和目录,组和其它用户被禁止写入。

默认情况下,umask的值为022,对应文件权限644,目录权限755

使用chmod修改权限

chmod命令用于改变文件或目录的访问模式。它的语法及选项非常丰富。例如:

# 取消某个用户的权限$ chmod -r --preserve-uid /path/to/directory# 设置文件所有人可读$ chmod a+r file_name

chmod的八进制模式如下:

  • 0:清空所有权限。
  • 1:仅有执行权限。
  • 2:可读权限。
  • 3:可读和执行权限。
  • 4:可写权限。
  • 5:可写和可执行权限。
  • 6:可读、可写和可执行权限。
  • 7:完全的权限。

权限覆盖模式采用符号规则:

  • -:取消权限。
  • +:增加权限(仅适用于不存在的权限位)。
  • =:精确设定权限。

对于目录和文件的区别:

  • 对于目录,默认的执行权限会启用子shell访问的权限。

在实际应用中,应谨慎设置文件和组的权限,避免信息泄露和安全漏洞。

实令命令示例

使用ls -l命令可以查看文件和目录的详细权限信息:

# 查看文件权限$ ls -l file.txt# 查看目录权限$ ls -l /path/to/directory

识别特殊文件类型:

  • b:块设备文件。
  • c:字符设备文件。
  • d:目录。
  • l:符号链接。
  • s:套接字。
  • p:管道。
  • -:普通文件。

通过合理配置文件权限和组权限,可以有效实现用户间的访问控制,保障系统和数据的安全。

转载地址:http://qlboz.baihongyu.com/

你可能感兴趣的文章
Accessibility
查看>>
08-信息收集之端口收集(总结版)
查看>>
15种下载文件的方法&文件下载方法汇总&超大文件下载
查看>>
anaconda、python卸载后重装以及anaconda--443
查看>>
AWVS工具太顶了,漏洞扫描工具AWVS介绍及安装教程
查看>>
CentOS 系列:CentOS 7 使用 virt-install + vnc 图形界面/非图形界面 创建虚拟机
查看>>
CentOS 系列:CentOS 7文件系统的组成
查看>>
CentOS系列:【Linux】CentOS7操作系统安装nginx实战(多种方法,超详细)
查看>>
CSDN----Markdown编辑器
查看>>
Docker容器进入的4种方式(推荐最后一种)
查看>>
Docker部署postgresql-11以及主从配置
查看>>
EnvironmentNotWritableError: The current user does not have write permissions to the target environm
查看>>
Golang起步篇(Windows、Linux、mac三种系统安装配置go环境以及IDE推荐以及入门语法详细释义)
查看>>
Hyper-V系列:windows11开启系统自带安卓虚拟机并安装apk包
查看>>
Hyper-V系列:微软官方文章
查看>>
idea打war包的两种方式
查看>>
Java系列:【注释模板】IDEA中JAVA类、方法注释模板教程
查看>>
JS系列(仅供参考):【浏览器编程】浏览器F12调试工具面板详解和JavaScript添加断点
查看>>
Kali 更换源(超详细,附国内优质镜像源地址)
查看>>
kali安装docker(亲测有效)
查看>>