插件窝 干货文章 linux如何修改文件权限

linux如何修改文件权限

权限 chmod 用户 所有者 954    来源:    2025-04-11

在Linux系统中,可以使用chmod命令来修改文件或目录的权限。以下是详细的操作方法:


1. 使用符号模式修改权限

语法:

chmod [who][operator][permissions] 文件名
  • who(用户类别):

    • u:文件所有者(user)
    • g:所属组用户(group)
    • o:其他用户(others)
    • a:所有用户(all,默认值)
  • operator(操作符):

    • +:添加权限
    • -:移除权限
    • =:直接设置权限(覆盖原有权限)
  • permissions(权限):

    • r:读权限
    • w:写权限
    • x:执行权限

示例:

# 给所有者添加执行权限
chmod u+x script.sh

# 给组用户移除写权限
chmod g-w file.txt

# 设置所有用户权限为读写(覆盖原有权限)
chmod a=rw document.txt

# 同时设置多类用户权限(所有者读写执行,组用户读执行,其他用户无权限)
chmod u=rwx,g=rx,o= file.txt

2. 使用数字模式(八进制)修改权限

权限用3位八进制数表示,分别对应所有者组用户其他用户的权限。
每位数字由 r(4) + w(2) + x(1) 相加得到:

数字 权限
4 r--
5 r-x
6 rw-
7 rwx

语法:

chmod [数字组合] 文件名

示例:

# 设置权限为 rwxr-xr--(所有者:7,组用户:5,其他用户:4)
chmod 754 script.sh

# 常见权限:
chmod 644 file.txt   # rw-r--r--
chmod 755 script.sh  # rwxr-xr-x
chmod 600 key.pem    # rw-------

3. 递归修改目录权限

添加 -R 参数可递归修改目录及其子目录/文件的权限:

chmod -R 755 /path/to/directory

4. 特殊权限

  • SUID (4):以文件所有者身份执行(如 chmod 4755)。
  • SGID (2):在目录中创建的文件继承组权限(如 chmod 2755)。
  • Sticky Bit (1):仅允许所有者删除文件(如 /tmp1777权限)。

示例:

chmod 4755 /usr/bin/special   # 设置SUID
chmod 1777 /shared/tmp        # 设置Sticky Bit

5. 查看当前权限

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

ls -l 文件名

输出示例:
-rwxr-xr-- 1 user group 0 Jan 1 10:00 file.txt
(权限部分:rwxr-xr-- = 754)


注意事项

  1. 谨慎使用 777:开放所有权限可能引发安全问题。
  2. 目录需执行权限:目录的 x 权限是进入目录的必要条件。
  3. 权限继承:新建文件的默认权限受 umask 影响。

通过灵活组合上述方法,可以精确控制Linux文件的访问权限。