插件窝 干货文章 如何在Linux上设置文件权限

如何在Linux上设置文件权限

权限 文件 所有者 filename 502    来源:    2025-04-16

在Linux上设置文件权限

Linux文件权限系统是系统安全的重要组成部分。以下是设置和管理文件权限的详细指南:

基本权限概念

Linux文件有三种基本权限: - r (read) - 读取权限 - w (write) - 写入权限 - x (execute) - 执行权限

这些权限分别分配给三类用户: 1. 所有者(user) - 文件创建者/所有者 2. 组(group) - 文件所属组的成员 3. 其他用户(other) - 系统上的其他所有用户

查看文件权限

使用ls -l命令查看文件权限:

ls -l filename

输出示例:

-rw-r--r-- 1 user group 1024 Jan 1 10:00 filename

(第一个字段-rw-r--r--表示权限)

使用chmod设置权限

数字模式(八进制表示法)

每个权限对应一个数字: - r = 4 - w = 2 - x = 1

组合示例: - 7 (4+2+1) = rwx - 6 (4+2) = rw- - 5 (4+1) = r-x - 4 = r-- - 0 = ---

设置权限命令格式:

chmod [权限数字] 文件名

示例:

chmod 755 filename  # 所有者rwx,组和其他用户r-x
chmod 644 filename  # 所有者rw-,组和其他用户r--

符号模式

使用字母表示权限变更: - u = 所有者 - g = 组 - o = 其他用户 - a = 所有用户 - + = 添加权限 - - = 移除权限 - = = 设置精确权限

示例:

chmod u+x filename      # 给所有者添加执行权限
chmod g-w filename      # 移除组的写入权限
chmod o=r filename      # 设置其他用户只有读取权限
chmod a+w filename      # 给所有用户添加写入权限

使用chown更改文件所有者

chown 新所有者:新组 文件名

示例:

chown user1:developers filename

特殊权限

  1. SUID (Set User ID) - 以文件所有者身份执行

    chmod u+s filename
    
  2. SGID (Set Group ID) - 以文件所属组身份执行

    chmod g+s filename
    
  3. Sticky Bit - 常用于/tmp目录,防止用户删除他人文件

    chmod +t directory
    

默认权限(umask)

umask决定新创建文件的默认权限:

umask  # 查看当前umask
umask 022  # 设置新的umask值

最佳实践

  1. 遵循最小权限原则
  2. 对可执行文件使用755权限
  3. 对配置文件使用644权限
  4. 对敏感数据使用更严格的权限(如600)
  5. 谨慎使用SUID/SGID权限

高级技巧

  1. 递归修改目录及其内容权限:

    chmod -R 755 directory/
    
  2. 仅修改目录权限(不修改文件):

    find /path/to/dir -type d -exec chmod 755 {} \;
    
  3. 仅修改文件权限(不修改目录):

    find /path/to/dir -type f -exec chmod 644 {} \;
    

通过合理设置文件权限,您可以有效保护系统安全并确保正确的文件访问控制。