插件窝 干货文章 linux怎么修改权限

linux怎么修改权限

权限 所有者 递归 chmod 517    来源:    2025-04-07

在Linux系统中,修改文件或目录权限主要通过chmod命令实现,以下是详细操作指南:


1. 使用chmod命令

符号模式(直观)

chmod [who][+/-/=][permissions] 文件名
  • who:指定用户类型
    • u:所有者(user)
    • g:所属组(group)
    • o:其他用户(others)
    • a:所有用户(all,默认)
  • 操作符
    • +:添加权限
    • -:移除权限
    • =:精确设置权限
  • permissions
    • r:读(4)
    • w:写(2)
    • x:执行(1)

示例

chmod u+rwx file.txt      # 给所有者添加读、写、执行权限
chmod g-w file.txt        # 移除所属组的写权限
chmod a=rx file.txt       # 所有用户设为读和执行权限

数字模式(快捷)

用三位八进制数表示权限(分别对应所有者、组、其他用户):

chmod 755 文件名
  • 7(所有者):4(r) + 2(w) + 1(x) = 7
  • 5(组和其他):4(r) + 1(x) = 5

常见权限: - 755:所有者可读/写/执行,其他用户可读/执行(常用于可执行文件) - 644:所有者可读/写,其他用户仅读(普通文件) - 777:所有用户可读/写/执行(慎用!)


2. 修改所有者/组(chown

sudo chown 新所有者:新组名 文件名

示例

sudo chown root:admin file.txt  # 将所有者改为root,组改为admin
sudo chown user1 file.txt       # 仅修改所有者

3. 递归修改目录权限

添加 -R 参数可递归修改目录及其内容:

chmod -R 755 /path/to/dir      # 递归修改目录权限
chown -R user:group /path/to/dir  # 递归修改所有者和组

4. 特殊权限

  • SUID(4):允许以文件所有者身份执行 bash chmod 4755 file # 设置SUID
  • SGID(2):目录下新建文件继承组权限 bash chmod 2775 dir # 设置SGID
  • Sticky Bit(1):仅允许所有者删除文件(如/tmp) bash chmod 1777 dir

5. 查看当前权限

ls -l 文件名      # 查看详细权限
stat 文件名      # 查看权限的数字表示

注意事项

  1. 修改系统文件或他人文件需sudo权限。
  2. 777权限会带来安全风险,尽量避免。
  3. 目录需x权限才能进入,文件需x权限才能执行。

通过以上命令,你可以灵活控制Linux系统中的文件权限。