Linux 文件与目录权限管理指南

文章目录


Linux 文件与目录权限管理指南

在 Linux 系统中,文件和目录的权限管理是保证系统安全性和多用户环境下资源合理使用的基础。通过对文件和目录权限的控制,管理员可以指定哪些用户可以读取、写入或执行特定的文件。

本文将介绍 Linux 文件与目录权限的基本概念和常用命令,帮助你更好地理解和管理文件的访问权限。

文件与目录权限的基本概念

每个文件和目录在 Linux 中都有以下三类权限控制:

  • 读取权限 (read, r):允许查看文件内容或列出目录内容。
  • 写入权限 (write, w):允许修改文件内容或在目录下创建、删除文件。
  • 执行权限 (execute, x):允许执行文件(如脚本、程序)或进入目录。

权限针对三类用户:

  • 所有者 (owner):文件的创建者或拥有者。
  • 所属组 (group):与文件所有者相同组的用户。
  • 其他用户 (others):系统中除了所有者和所属组外的其他用户。

权限以 rwx 的形式表示,分别对应读取写入执行 权限。权限可以通过字母或数字表示(数字表示法通常使用 chmod 命令来修改权限)。

例如,-rw-r--r-- 表示:

  • 所有者有读取和写入权限 (rw-)。
  • 所属组有读取权限 (r--)。
  • 其他用户也有读取权限 (r--)。

常用权限管理命令

ls -l:查看文件权限

要查看文件或目录的权限,可以使用 ls -l 命令。

bash 复制代码
ls -l

输出示例:

-rw-r--r-- 1 user group 4096 Sep  7 10:00 file.txt

解释:

  • -rw-r--r--:文件权限(文件类型和权限)。
  • user:文件所有者。
  • group:文件所属组。
  • 4096:文件大小(字节)。
  • Sep 7 10:00:最后修改时间。
  • file.txt:文件名。

chmod:修改文件权限

chmod 命令用于更改文件或目录的权限。权限可以通过符号模式数字模式来设置。

符号模式

bash 复制代码
chmod u+x file.sh   # 为文件所有者添加执行权限
chmod g-w file.txt  # 移除文件所属组的写入权限
chmod o=r file.txt  # 为其他用户设置只读权限

符号表示法说明:

  • u:所有者 (user)。
  • g:所属组 (group)。
  • o:其他用户 (others)。
  • a:所有用户 (all)。
  • +:添加权限。
  • -:移除权限。
  • =:设置指定权限。

数字模式

使用八进制数来表示权限:

  • 读 (r) = 4
  • 写 (w) = 2
  • 执行 (x) = 1

总和表示权限组合。例如,7 表示 rwx5 表示 r-x

bash 复制代码
chmod 755 file.sh  # 为所有者设置rwx权限,组和其他用户设置r-x权限
chmod 644 file.txt # 为所有者设置rw-权限,组和其他用户设置r--权限

chown:更改文件所有者和所属组

chown 命令用于修改文件的所有者或所属组。

bash 复制代码
chown newuser file.txt       # 更改文件所有者为newuser
chown newuser:newgroup file.txt  # 更改文件所有者和所属组

chgrp:只更改文件所属组

bash 复制代码
chgrp newgroup file.txt  # 更改文件所属组为newgroup

umask:设置默认权限

umask 用于设置新建文件和目录的默认权限。它会从默认权限中减去相应的权限位。

默认情况下,新建文件的权限为 666,目录的权限为 777

例如:

bash 复制代码
umask 022  # 新文件的默认权限为644,目录的默认权限为755

示例:管理目录权限

创建目录并查看默认权限

bash 复制代码
mkdir mydir
ls -ld mydir

输出示例:

drwxr-xr-x 2 user group 4096 Sep  7 10:10 mydir

说明:默认情况下,目录有 rwx 权限(可读、可写、可进入)。

修改目录权限,限制其他用户进入

bash 复制代码
chmod o-x mydir
ls -ld mydir

输出:

drwxr-x--- 2 user group 4096 Sep  7 10:12 mydir

说明:其他用户无法进入此目录。

允许所有者独享读写执行权限

bash 复制代码
chmod 700 mydir
ls -ld mydir

输出:

drwx------ 2 user group 4096 Sep  7 10:14 mydir

说明:只有文件所有者可以访问该目录,其他用户没有权限。

特殊权限

除了基本权限外,Linux 还提供了三种特殊权限:SUIDSGIDsticky bit

  • SUID (Set User ID):文件以文件所有者的权限执行,而非执行者的权限。通常用于某些系统程序。
  • SGID (Set Group ID):目录内新建的文件继承该目录的组,而不是创建者的组。
  • sticky bit :只允许文件所有者或 root 删除该目录下的文件。常用于 /tmp 目录。
bash 复制代码
chmod u+s file.sh   # 设置SUID
chmod g+s mydir     # 设置SGID
chmod +t mydir      # 设置sticky bit

总结

通过合理管理文件和目录的权限,可以有效地保护系统的安全性,并确保文件资源的合理使用。了解并掌握 chmodchownumask 等命令,可以帮助你更灵活地管理 Linux 环境下的文件与目录。

相关推荐
Yz987626 分钟前
Hive安装-内嵌模式
大数据·linux·数据仓库·hive·hadoop·hdfs·bigdata
多练项目36 分钟前
公开仓库改私有再配置公钥后Git拉取仍需要输入用户名的问题
运维·git
cqbzcsq2 小时前
Nginx简易配置将内网网站ssh转发到外网
运维·nginx·ssh
SmallBambooCode2 小时前
【人工智能】阿里云PAI平台DSW实例一键安装Python脚本
linux·人工智能·python·阿里云·debian·脚本·模型训练
纯小白是我2 小时前
CentOS 7系统中更改YUM源为阿里云的镜像源
linux·阿里云·centos
嵌入式Linux,2 小时前
BUG: scheduling while atomic
linux·运维·服务器·bug
小兔子酱#2 小时前
【Linux 29】传输层协议 - UDP
linux·运维·服务器·网络·网络协议·udp
CYRUS_STUDIO2 小时前
Android下的系统调用 (syscall),内联汇编syscall
android·linux·汇编语言
想不到好名字了()2 小时前
负载均衡式在线oj项目开发文档2(个人项目)
linux·网络·c++
liuhaoodng6262 小时前
浮动路由:实现出口线路的负载均衡冗余备份。
运维·网络·网络协议·负载均衡