您的当前位置:首页正文

【Linux】彻底搞懂Linux权限(超详细解析,小白必看系列)

2024-11-06 来源:个人技术集锦

1 linux权限概念

1. 1 用户分类

2.1 语法

2.2 功能

2 Linux权限管理

2.1 文件访问者的分类(人)

2.2 权限表示

1 文件类型

2 基本权限

3 文件权限值的表示方法

2.3 权限管理命令

1. chmod 命令

2. chown 命令

3. chgrp 命令

4. umask 命令

2.4 特殊权限(粘滞位)

1 粘滞位的作用

2 设置粘滞位

3 示例

4 注意事项


1 linux权限概念

1. 1 用户分类

Linux下有两种用户:超级用户(root)、普通用户

  • 超级用户:可以再linux系统下做任何事情,不受限制

  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

2.1 语法

su [用户名]

2.2 功能

切换用户

2 Linux权限管理

2.1 文件访问者的分类(人)

2.2 权限表示

1 文件类型

  • d:文件夹
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

2 基本权限

  • 读取(r):允许查看文件内容或列出目录内容。
  • 写入(w):允许修改文件内容或在目录中创建、删除文件。
  • 执行(x):允许执行文件或进入目录。
  • “—”:表示不具有该项权限

3 文件权限值的表示方法

a)字符表示方法

b)8进制数值表示方法

2.3 权限管理命令

在 Linux 中,权限管理主要通过以下几个命令来实现:

1. chmod 命令

chmod [options] mode file
  • 示例
    chmod u+rwx file.txt  # 给文件所有者增加读、写、执行权限
    chmod g-w file.txt    # 去掉组用户的写权限
    chmod o=rx file.txt   # 设置其他用户只有读和执行权限
    chmod 755 file.txt    # 设置文件权限为 rwxr-xr-x
    chmod -R 755 directory  # 递归更改目录及其子目录的权限
    

2. chown 命令

chown [options] owner[:group] file
  • 示例
    chown user file.txt  # 将文件所有者改为 user
    chown user:group file.txt  # 将文件所有者改为 user,组改为 group
    chown -R user:group directory  # 递归更改目录及其子目录的所有者和组
    

3. chgrp 命令

chgrp [options] group file
  • 示例
    chgrp group file.txt  # 将文件所属组改为 group
    chgrp -R group directory  # 递归更改目录及其子目录的所属组
    

4. umask 命令

umask [options] [mask]
  • 示例
    umask 022  # 设置新文件默认权限为 755,新目录默认权限为 755
    umask 077  # 设置新文件和目录默认权限为 700
    
a) 权限掩码的工作原理
b) 计算方法

假设 umask 值为 022

  • 文件默认权限666 - 022 = 644(rw-r–r–)
  • 目录默认权限777 - 022 = 755(rwxr-xr-x)
c) 设置和查看 umask
  • 查看当前 umask
    umask
    
  • 设置 umask
    umask 022
    
d) 示例
  1. 查看当前 umask
    $ umask
    0022
    
  2. 创建文件和目录
    $ touch newfile
    $ mkdir newdir
    
  3. 查看权限
    $ ls -l newfile newdir
    -rw-r--r-- 1 user user 0 Aug 16 09:04 newfile
    drwxr-xr-x 2 user user 4096 Aug 16 09:04 newdir
    
e) 修改 umask

要永久修改 umask,可以在用户的 shell 配置文件(如 .bashrc.profile)中添加一行:

umask 022
f) 特殊情况
  • umask 000:新文件和目录将具有最大权限(666 和 777),这通常不推荐使用,因为它会导致安全风险。
  • umask 077:新文件和目录将只有所有者有完全权限(600 和 700),适用于需要高安全性的场景。

2.4 特殊权限(粘滞位)

1 粘滞位的作用

  • t:表示该目录的其他用户有执行权限。
  • T:表示该目录的其他用户没有执行权限。

2 设置粘滞位

使用 chmod 命令可以设置粘滞位:

chmod +t directory  # 为目录设置粘滞位
chmod -t directory  # 移除目录的粘滞位

3 示例

  1. ls -ld /tmp
    drwxrwxrwt 10 root root 4096 Aug 16 09:04 /tmp
    
  2. mkdir mydir
    chmod 1777 mydir  # 设置粘滞位并赋予所有用户读、写、执行权限
    ls -ld mydir
    drwxrwxrwt 2 user user 4096 Aug 16 09:04 mydir
    

4 注意事项

  • 粘滞位只对目录有效,对文件无效
  • 设置粘滞位后,其他用户仍然可以修改文件内容,但不能删除或移动文件。

显示全文