005 权限的理解

shell 命令以及运行原理

1. Shell 是什么?

Shell 是用户与操作系统内核(Kernel)之间的“翻译官”。

你可以把操作系统内核想象成一个国家的总统(Kernel),他直接管理国家资源(CPU、内存、磁盘等)。但普通人(用户)无法直接和总统对话,必须通过一个“秘书”(Shell)来传达需求。

  • 用户通过 Shell 输入命令(比如 lscd)。
  • Shell 将命令“翻译”成内核能理解的指令,交给内核执行。
  • 内核处理完成后,结果再通过 Shell 返回给用户

2. 为什么不能直接操作内核?

  • 内核是操作系统的核心,直接操作风险极高。比如,直接让内核删除某个文件,就像让总统亲自去处理一个普通任务——虽然高效但风险极高,一旦出错可能导致系统崩溃。
  • Shell 的存在是为了安全和易用
    • 用户无需理解底层硬件细节(比如如何读写磁盘)。
    • Shell 通过权限控制和语法检查,避免用户误操作导致系统崩溃。

3. Shell 的“媒婆”比喻

Shell 是“媒婆”,内核是“村花小花”:你想追求小花(让内核干活),但不好意思直接开口(直接操作内核)。于是你找媒婆王婆(Shell)帮忙:

  • 你告诉王婆需求(输入命令)。
  • 王婆转达给小花(Shell 解析命令并调用内核)。
  • 小花办好后,王婆再把结果告诉你(Shell 返回输出)。

媒婆的作用

  • 翻译需求:用户说“想送花”,媒婆翻译成小花能理解的“执行送花程序”。
  • 过滤错误:用户说“送一车榴莲”,媒婆会提醒“榴莲不在允许的礼物列表”(语法错误提示)。
  • 权限检查:用户想进小花家的后院(系统敏感目录),媒婆会核实身份(权限验证)。

为什么必须通过媒婆?直接表白行不行?(同为什么不能直接操作内核

  • 直接操作内核的风险
    • 用户可能说错话(输入错误命令),导致小花误解(系统崩溃)。
    • 用户可能要求不合理(删除系统关键文件),小花直接拒绝(权限不足)。
  • 媒婆的安全保障
    • 权限控制:媒婆会检查用户身份,比如普通用户不能修改系统配置(sudo 提权需要密码)。
    • 错误拦截:用户输入“删库跑路”,媒婆会反问“你确定吗?”(rm -rf / 前的确认提示)。

如果媒婆罢工了(Shell 崩溃)?

  • 用户会陷入沉默:无法与小花沟通,只能重启终端(找新媒婆)。
  • 内核依然在运行:小花继续管理村庄,但用户无法直接互动。
  • 解决方案
    • 使用备用媒婆(不同 Shell 类型:Bash、Zsh、Fish)。
    • 通过远程媒婆(SSH 连接)继续工作。

终极金句

没有媒婆的牵线,程序员的爱情(操作内核)将寸步难行;
没有 Shell 的翻译,用户与内核的对话将鸡同鸭讲。


4. 图形界面(GUI)也是 Shell?

  • 无论是命令行(CLI)还是图形界面(GUI),本质都是用户与内核的中介
    • Windows 的 GUI:双击图标 → 图形界面程序调用内核完成任务。
    • Linux 的 Shell:输入命令 → Shell 调用内核完成任务。
  • 区别在于交互方式
    • CLI 更高效,适合程序员和自动化脚本。
    • GUI 更直观,适合普通用户。

5. Shell 的高级功能

  • 脚本编程:将多个命令写成脚本,一键执行复杂任务。
  • 管道(|:将一个命令的输出作为另一个命令的输入。例如:ls | grep .txt(列出所有文件,再过滤出 .txt 文件)。
  • 重定向(>>>:将命令结果保存到文件。例如:ls > files.txt(将文件列表保存到 files.txt)。

Linux 权限的概念

一、用户类型详解

1. 超级用户(root)

  • 权限:拥有系统的最高权限,可以执行任何操作。包括安装、删除软件、修改系统设置、删除系统文件等危险行为。操作不当可能导致系统崩溃。
  • 提示符#(如 [root@server ~]#),在命令行中,# 表示当前是 root 用户。
  • 默认路径/root,这是 root 用户的家目录。
  • 危险提示:建议平时使用普通用户,而非 root 用户,避免误操作导致的系统崩溃或损坏。

2. 普通用户

  • 权限:只能访问和操作自己的文件目录(默认在 /home/用户名 下),以及有限的系统资源。无法修改系统配置或执行需要高权限的操作。
  • 提示符$(如 [user@server ~]$),表示当前是普通用户。
  • 默认路径/home/用户名,每个普通用户都会有自己的家目录。
  • 优势:使用普通用户更安全,避免误操作破坏系统。

二、用户切换操作详解

1. su 命令 —— 切换用户的命令。

1
su [选项] [用户名]
  • 不带参数:默认切换到 root 用户(需要输入 root 密码)。
  • 带用户名:切换到指定的用户(需要输入目标用户密码)。

具体场景(注意各自切换所要输入的密码):

  1. 普通用户 → root

    1
    2
    3
    [user@server ~]$ su -
    Password: # 输入 root 密码
    [root@server ~]# # 成功切换到 root
  2. root → 普通用户

    1
    2
    [root@server ~]# su - user
    [user@server ~]$ # 成功切换到普通用户 user
  3. 普通用户 → 其他普通用户

    1
    2
    3
    [user1@server ~]$ su - user2
    Password: # 输入 user2 密码
    [user2@server ~]$ # 成功切换到 user2 用户

2. susu - 的区别

命令 环境变量 工作目录 使用场景
su 保留当前环境 当前目录 临时执行少量命令
su - 重新加载用户环境 目标用户家目录 需要完整用户环境时

示例对比:

1
2
3
4
5
6
7
8
9
# 使用 su
[root@server /]# su user
[user@server /]$ pwd
/

# 使用 su -
[root@server /]# su - user
[user@server ~]$ pwd
/home/user

三、sudo 基础权限配置(了解,后面详讲)

1. sudo 基础

1
sudo <命令>
  • 作用:使用 sudo 命令,普通用户可以临时以 root 权限执行特权命令。
  • 要求:用户必须在 /etc/sudoers 文件中有权限设置。

2. 配置 sudo 权限(这是一种方法,可以先了解,不建议现在进行配置)

配置 sudo 权限时,建议使用 visudo 命令,因为它可以在保存前检查语法错误,避免不小心出错。

  1. 切换到 root 用户

    1
    su -  # 切换到 root
  2. 使用 visudo 编辑 /etc/sudoers 文件

    1
    visudo  # 进入编辑模式,自动检查语法
  3. 配置示例

    • 允许普通用户 user 执行所有命令,且无需密码:

      1
      user    ALL=(ALL)       NOPASSWD: ALL
    • 允许 wheel 组的成员使用 sudo

      1
      %wheel  ALL=(ALL)       ALL

3. 验证配置

如果配置成功,可以通过 sudo 执行命令来验证:

1
2
[user@server ~]$ sudo systemctl restart sshd
# 如果配置成功,可以执行命令而无需输入密码

4. 典型错误处理

当用户不在 sudoers 文件中时,可能会看到以下错误:

1
user is not in the sudoers file. This incident will be reported.

解决方法

  1. 切换到 root 用户:su -

  2. 将用户加入 wheel 组:usermod -aG wheel user

  3. 确保 /etc/sudoers 文件中有以下配置:

    1
    %wheel  ALL=(ALL)       ALL

==四、最佳实践建议==

  1. 日常使用普通用户:避免直接以 root 用户登录,普通用户更安全。使用 sudo 执行特权命令。
  2. 重要操作前备份:在执行任何高风险操作时,尤其是以 root 权限进行修改时,要确保有备份。
  3. sudo 权限最小化:只为需要的用户分配 sudo 权限,避免随意赋予 NOPASSWD: ALL 权限。
  4. 会话管理:
    • 进入 root 环境后,要及时使用 exitCtrl+D 退出。
    • 使用 whoami 命令确认当前用户身份,避免误操作。

五、操作流程图解

1
2
3
4
5
6
7
8
9
普通用户环境

├─ 需要执行特权命令 → sudo <命令>
│ ├─ 有权限 → 执行成功
│ └─ 无权限 → 拒绝执行

└─ 需要切换用户 → su/su -
├─ 切换到 root → 输入 root 密码
└─ 切换其他用户 → 输入目标用户密码

Linux 权限管理

一、Linux 权限管理

Linux 系统中的权限管理决定了文件和目录的访问控制。权限管理涉及两个主要方面:

  1. 权限认证:确定谁(用户)可以访问文件或目录。
  2. 权限类型:确定可以对文件或目录执行什么操作(读、写、执行)。

二、文件的权限和文件属性

1. 文件访问者的分类(“”)

权限分为三类:

  • u (User):文件或目录的 所有者/拥有者。即文件的创建者或被赋予所有权的用户。
  • g (Group):文件或目录的 所属组 的用户。即拥有该文件或目录的同组成员。
  • o (Others):其他用户,指的是既不是文件所有者,也不属于文件所属组的用户。

2. 权限表示方式

举个栗子,并逐一解析:

1
2
3
4
drwxrwxr-x 2 hcc hcc 4096 Feb  3 20:26 temp
# 怎么看:
d rwx rwx r-x (1 | 9)/(1 | 3|3|3)
# drwxrwxr-x 对应着 <file-type><user-permissions><group-permissions><other-permissions>
  1. 文件类型(第一个字符):
    • d:表示这是一个目录文件。
  2. 文件权限(后面的 9 个字符 3 位一看):
    • rwx:表示 用户(文件所有者) 具有读、写、执行权限。
    • rwx:表示 组用户 具有读、写、执行权限。
    • r-x:表示 其他用户 具有读和执行权限,但没有写权限。
  3. 其他信息
    • 2:表示该目录下的硬链接数量。
    • hcc (前一个):表示文件的 拥有者(User)是 hcc
    • hcc (后一个):表示文件的 所属组(Group)是 hcc
    • 4096:表示该文件(或目录)的大小(单位为字节)。
    • Feb 3 20:26:表示文件的最后修改时间。
    • temp:表示文件的名称。

3. 文件类型和访问权限(“事物属性”)

文件类型(第一位字符):

文件类型字符 含义 示例
d 目录文件(Directory) drwxr-xr-x(表示这是一个目录文件)
- 普通文件(Regular file) -rwxr-xr-x(表示这是一个普通文件)
l 软链接(Symbolic link) lrwxrwxrwx(类似于 Windows 的快捷方式)
b 块设备文件(Block device file) brw-rw----(如硬盘、光驱等)
p 管道文件(Pipe file) prw-r--r--(用于进程间通信)
c 字符设备文件(Character device file) crw-rw----(如终端设备、打印机等)
s 套接口文件(Socket file) srwxrwxrwx(用于网络通信等)

权限(后三位字符):

权限字符 含义 对应数字 说明
r 读权限(Read) 4 对文件:允许读取文件内容;对目录:允许列出目录中的文件。
w 写权限(Write) 2 对文件:允许修改文件内容;对目录:允许创建、删除、移动目录中的文件。
x 执行权限(Execute) 1 对文件:允许执行文件;对目录:允许进入该目录。
- 没有权限 0 表示没有该项权限。

权限的组合(后三位字符表示权限):

权限组合 含义 数字表示 说明
rwx 读、写、执行权限(可完全访问) 7 用户/组/其他均有读、写、执行权限。
rw- 读、写权限(没有执行权限) 6 用户/组/其他可以读取和修改文件,但不能执行。
r-x 读、执行权限(没有写权限) 5 用户/组/其他可以读取和执行文件,但不能修改。
r– 只有读权限 4 用户/组/其他只能读取文件,无法修改或执行。
wx- 写、执行权限(没有读权限) 3 用户/组/其他可以修改文件并执行文件,但不能读取文件。
x– 只有执行权限 1 用户/组/其他只能执行文件,无法读取或修改文件。
没有任何权限 0 用户/组/其他没有任何权限。

每个权限都有两个状态:有权限没有权限,这恰好对应了二进制的 10,所以数字表示的由来是二进制:

权限符号(读写执行) 八进制(数字表示) 二进制
r 4 100
w 2 010
x 1 001
rw 6 110
rx 5 101
wx 3 011
rwx 7 111
0 000

三、文件访问权限的相关设置方法

1. chmod - 设置文件的访问权限

chmod 命令用于设置文件的访问权限。它允许你改变文件或目录的权限,分为两种方式:使用符号表示法和使用八进制表示法。

  • 普通用户:普通用户只能修改自己拥有的文件或目录的权限。如果普通用户尝试修改其他用户的文件或目录权限,会提示 Permission denied(权限被拒绝)。
  • root 用户root 用户是系统管理员,具有所有权限,因此 root 可以修改任何文件或目录的权限。

语法格式:chmod [参数] 权限 文件名

常用选项:-R:递归地修改目录和其中所有文件的权限。

权限的表示方法:

符号 描述
+ 向权限范围增加权限
- 向权限范围取消权限
= 设置权限,覆盖现有权限

用户符号:

符号 描述
u 拥有者(user)
g 所属组(group)
o 其他用户(others)
a 所有用户(all)

权限符号:

符号 描述
r 读取权限(read)
w 写入权限(write)
x 执行权限(execute)

示例:

命令 说明
chmod u+w /home/abc.txt 给文件 /home/abc.txt 的拥有者添加写权限。
chmod o-x /home/abc.txt 去掉其他用户的执行权限。
chmod a=x /home/abc.txt 给所有用户赋予执行权限,其他权限被去除。

八进制表示法:

权限组合 八进制数字 说明
rwx 7 读取、写入、执行权限(4+2+1)
rw- 6 读取、写入权限(4+2)
r-x 5 读取、执行权限(4+1)
r-- 4 读取权限(4)
wx- 3 写入、执行权限(2+1)
w-- 2 写入权限(2)
x-- 1 执行权限(1)
--- 0 无权限

示例:

命令 说明
chmod 664 /home/abc.txt 设置文件权限为 rw-rw-r--,即拥有者和所属组有读写权限,其他用户只有读权限。
chmod 640 /home/abc.txt 设置文件权限为 rw-r-----,即拥有者有读写权限,拥有者有读写权限,所属组有读权限,其他用户没有权限。

2. chown - 修改文件的拥有者

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

  • 普通用户:普通用户只能更改自己拥有的文件的所有者。如果尝试更改其他用户的文件或目录的拥有者,普通用户会看到 Permission denied
  • root 用户root 用户能够修改任何文件或目录的拥有者,不受任何限制。

语法格式:chown [参数] 用户名 文件名

常用选项:-R:递归地修改目录和其中所有文件的权限。

示例:

命令 说明
chown user1 f1 将文件 f1 的拥有者更改为 user1
chown -R user1 filegroup1 递归地将目录 filegroup1 及其子文件的所有者更改为 user1

3. chgrp - 修改文件或目录的所属组

chgrp 命令用于修改文件或目录的所属组。

  • 普通用户:普通用户只能更改自己拥有的文件或目录的所属组。如果尝试更改其他用户的文件或目录的所属组,则会提示 Permission denied
  • root 用户root 用户可以修改任何文件或目录的所属组,无论该文件是否属于 root 或其他用户。

语法格式:chgrp [参数] 用户组名 文件名

常用选项:-R:递归地修改目录和其中所有文件的权限。

示例:

命令 说明
chgrp users /abc/f2 将文件 /abc/f2 的所属组更改为 users

总结:

操作类型 普通用户能否执行 root 用户能否执行 执行成功/失败
chmod 修改权限 只能修改自己拥有的文件 可以修改任何文件 普通用户成功:文件属于自己;失败:Permission denied
chown 修改拥有者 只能修改自己拥有的文件 可以修改任何文件 普通用户成功:文件属于自己;失败:Permission denied
chgrp 修改所属组 只能修改自己拥有的文件 可以修改任何文件 普通用户成功:文件属于自己;失败:Permission denied

file 命令

file 命令用于识别文件的类型。它会根据文件的内容、格式以及文件头部的标识来判断分析文件内部的结构来推测其类型,不依赖于文件的扩展名,非常有用。

语法:file [选项] 文件或目录...

常用选项

  • -c:显示详细的执行过程,帮助你分析程序的执行情况。例如,它可以显示 file 命令如何判断文件类型,通常在调试时很有用。
  • -z:尝试解压缩压缩文件,并分析压缩文件中的内容。如果你有一个 .tar.gz.zip 文件,使用 -z 可以让 file 查看并识别压缩文件内部的内容类型。

示例

1
2
file test.txt      # 输出 test.txt 文件的类型(如:ASCII text)
file -z archive.gz # 解压并识别压缩文件内容类型

传道解惑

Q1:起始权限问题:普通文件:664,目录文件:775,为什么我们创建文件的默认权限是我们现在看到的样子?

默认权限的设置与 umask(文件创建权限掩码) 有关系,它控制了文件或目录在创建时默认的权限。我们创建普通文件和目录时,通常会看到不同的权限,这是因为操作系统使用了一种“减法”策略(最终权限 = 起始权限 & (~umask)),根据 umask 来修改文件和目录的默认权限。

umask 决定了文件和目录创建时权限的“减法”规则,我们最终看到的其实是已经套公式算好的。

  • 普通文件(664):默认给普通文件的起始权限其实是 666666 & (~0002)666 & 7754 = 664
  • 目录文件(775):默认给目录文件的起始权限其实是 777777 & (~0002)777 & 7754 = 775

umask 是什么?

umask 是一个权限掩码,它定义了在文件或目录创建时,通过从系统的默认权限中 “去除” 权限来决定最终的权限。 umask 的值 表示哪些权限会被“去除”,而 最终权限 是通过使用按位与(&)操作来计算的。

  • 默认的权限是固定的,即普通文件的起始权限为 666,目录的起始权限为 777
  • umask 用来“去除”权限,使用的规则是按位与:最终权限 = 起始权限 & (~umask)
  • ~umask 是对 umask 值取反,即对 umask 中的每一位进行反转(0 变成 1,1 变成 0),然后与默认权限进行按位与运算。

如果需要查看当前的 umask 值,可以运行 umask 命令:

1
>umask

常见的 umask 值umask 的值虽然会显示 0002umask 的四位数字中,第一位表示特殊权限(如粘滞位),后三位才是基本权限。但普通文件/目录的默认权限计算时通常只关注后三位。常见的 umask 值:

umask 值 解释 结果权限(普通文件) 结果权限(目录文件)
0002 所有者、组、其他用户都没有限制 664 775
0022 其他用户没有写权限 644 755
0077 只有文件拥有者有权限 600 700

umask 设置与效果umask 的值会影响文件和目录的默认权限。当你修改 umask 时,操作系统会自动改变你创建的文件和目录的默认权限。

例如:如果设置 umask 0022,则:

  • 普通文件的权限会变为 644(去除其他用户的写权限)。
  • 目录的权限会变为 755(去除其他用户的写权限)。

可以通过以下命令查看和设置 umask

1
2
3
4
5
># 查看当前 umask
>umask

># 设置 umask 为 0022
>umask 0022

Q2:关于文件权限 -r--rw---- 1 a a ... 的情况怎么解释?

在文件权限系统中,拥有者的权限所属组的权限 是独立的,因此可能会出现拥有者的权限比所属组更少的情况。文件的权限可能是通过某些命令错误地配置的。例如,管理员或拥有者可能故意将拥有者的权限设置得比所属组的权限少。这种情况可能是在文件创建时,由于错误的 chmod 命令或文件权限管理不当造成的。当然也有可能是必须的,因为这种现象并非错误。

关键点:拥有者权限和所属组权限独立

  • 拥有者权限(a): 只能读取文件,但不能修改(没有写权限)。
  • 所属组权限(a 组): 可以读写文件(rw-),但不具有执行权限。

权限判断顺序:

在 Linux 系统中,在进行认证的时候只能选择一个角色进行认证,文件的权限是根据三种不同的身份来判断的:文件拥有者文件所属组其他用户。系统在判断文件权限时会先检查文件拥有者的权限,如果拥有者权限不足,再检查所属组的权限,最后才检查其他用户的权限。

  1. 文件拥有者权限(User 权限):系统首先会检查当前操作用户是否是文件的拥有者,如果是,则优先使用文件拥有者的权限来进行访问判断。
  2. 所属组权限(Group 权限):如果当前用户不是文件的拥有者,但属于文件的所属组,则会检查文件所属组的权限。
  3. 其他用户权限(Other 权限):如果当前用户既不是文件的拥有者,也不属于文件的所属组,那么就会检查其他用户的权限。

解决方法

  1. 检查文件的权限设置:首先确认文件的权限是如何设置的。如果文件的拥有者权限被误设为 r--,而所属组权限是 rw-,可以使用 chmod 修改文件的拥有者权限:
1
chmod u+w filename
  1. 角色切换:如果你仅能选择一个角色进行认证,但需要更高权限来修改文件,考虑切换到具有更高权限的角色(例如通过 sudo 进行管理员认证)。

  2. 文件所有权调整:如果你不是文件的拥有者,但需要进行修改,考虑使用 chownchgrp 更改文件的拥有者或所属组,或者请求管理员为你添加权限。


目录的权限

理解目录权限的三个关键点:

  1. 可读权限(r决定是否允许我们查看指定目录下的文件内容。 如果没有读权限,即使目录本身是可执行的,用户也无法看到目录中的文件列表。例如,无法用 ls 查看该目录下的文件。
  2. 可写权限(w决定是否允许我们在当前目录下进行创建、更改、删除(主要) 如果没有写权限,用户就不能在该目录中创建新文件,不能删除文件,也不能重命名文件 ==(一个文件能否被删除,并不由文件本身决定,由这个文件所处的目录决定!)==。
  3. 可执行权限(x决定是否允许用户进入对应的目录! 如果一个目录没有执行权限,即使你有其他权限,也无法进入该目录进行任何操作。比如无法 cd 进入该目录。

权限细节及例子 —— 想要保护多人 共享 文件数据

假设用户 张三 在自己的目录下创建了一个文件 temp,并且给自己设置了文件权限(例如 rw-r--r--)。这意味着张三可以读写文件,而其他用户只能读取文件。看起来应该是其他用户不能删除 temp 文件,对吧?但是,实际上 其他用户仍然可以删除 temp 文件,即使他们没有写权限。这是因为文件的删除权限是由 目录的权限 决定的,而不是文件的权限。(张三在自己的文件夹里放了一本书(文件 temp),即使没有给其他人修改这本书的权限,如果他们对张三存放书的那个房间(目录)有写入权限,他们仍然能够把张三的书从房间里移除或删除。这看起来不太公平,因为张三并没有允许别人动他的东西)。

如果去掉了共享目录的 w 权限,张三同时也无法创建文件啦!共享目录,共享体现在哪里呢?

解决方案:引入“粘滞位”

为了避免一个用户删除其他用户创建的文件,Linux 引入了 粘滞位(sticky bit) 的概念。

粘滞位(Sticky Bit) 是一个特殊的权限,用来限制在目录中删除文件的权限。具体来说,只有以下三类用户才能删除目录中的文件:

  1. 超级管理员(root)root 用户可以删除任何文件,不受限制。
  2. 目录的所有者:目录的拥有者可以删除该目录中的文件。
  3. 文件的所有者:文件的拥有者可以删除自己创建的文件。

如何设置粘滞位? 可以使用 chmod +t 命令来给目录设置粘滞位:

1
chmod +t /path/to/directory

示例: 假设我们有一个目录 /shared,这是一个共享目录,所有用户都可以在其中创建文件。如果没有粘滞位,任何具有写权限的用户都可以删除目录中的文件,即使文件是由其他用户创建的。但如果我们给目录设置了粘滞位:

1
2
chmod +t /shared
drwxrwxrwt # 粘滞位生效,末尾为 t

设置了粘滞位后,只有以下三类用户可以删除文件:

  • root 用户可以删除目录中的任何文件。
  • 该目录的所有者(例如管理员)可以删除文件。
  • 文件的拥有者(例如,创建文件的用户)可以删除自己的文件。

这样,即使其他用户拥有对目录的写权限,也无法删除其他用户创建的文件,增强了安全性。


总结

目录权限:

  1. 可读权限(r:是否可以列出该目录中的文件。没有 r 权限,即使有 x 权限,也无法执行 ls 或查看目录中的内容。
  2. 可写权限(w:是否可以在目录中创建、删除或重命名文件。没有 w 权限,用户无法创建、删除或重命名目录中的文件。
  3. 可执行权限(x:是否可以进入该目录。没有 x 权限,即使有读权限,也无法 cd 进入目录。

家目录权限:

  • 通常情况下,用户的家目录权限是 700,即只有该用户和 root 用户能访问和操作其家目录中的文件。其他用户无法访问、查看或修改这些文件。
  • 这种权限设置通常用于保护用户的个人文件,使其不被其他用户看到或修改。

共享目录中的权限管理:

  • 在共享目录中,其他用户通常有读取、创建和修改文件的权限。但 为了避免文件被随意删除,可以设置 粘滞位
  • 如果去掉共享目录的写权限,用户将无法在目录中创建文件或删除文件。这也意味着,如果一个目录没有写权限,那么所有用户都不能在其中创建或删除文件,目录就无法作为有效的共享目录。