粘滞位用于共享目录,确保用户只能删除自己创建的文件;需用chmod 1775或o+t设置,ls -ld可见末位t,验证时非所有者删他人文件将提示Operation not permitted。

如果您需要在统信UOS系统中对共享目录设置文件粘滞位(sticky bit),以防止非所有者用户删除或重命名他人创建的文件,则需通过命令行方式为目录赋予t权限。以下是实现该目标的多种方法:
一、使用chmod命令以数字方式设置粘滞位
该方法通过八进制数值直接设定完整权限并附加粘滞位,适用于精确控制权限场景,要求操作者明确当前目录原始权限结构。
1、打开终端,使用快捷键Ctrl + Alt + T快速启动。
2、输入命令切换至目标目录所在路径,例如:cd /home/shared。
3、执行设置命令,将目录权限设为1775(其中首位1表示粘滞位,后三位775表示rwxrwxr-x):sudo chmod 1775 .。
4、验证是否生效,运行:ls -ld .,若输出权限字段末尾为rwxrwxr-t或drwxrwxr-t,则表示粘滞位已成功启用。
二、使用chmod命令以符号方式添加粘滞位
该方法仅修改粘滞位状态,不干扰原有读、写、执行权限配置,适合在保留现有权限基础上安全追加t标志。
1、在终端中定位到待设置的目录,例如:cd /opt/public。
2、执行符号化赋权命令,为其他用户(others)添加粘滞位:sudo chmod o+t .。
3、检查结果,运行:ls -ld .,确认权限字符串末位显示为t(小写t表示目录具有执行权限且粘滞位生效)。
三、通过图形界面配合终端完成粘滞位设置
该方法结合文件管理器可视化导航与终端精准赋权,降低路径输入错误风险,适合不熟悉Linux路径语法但需完成进阶权限配置的用户。
1、点击任务栏启动器图标,在搜索框中输入文件管理器并单击运行。
2、在文件管理器中逐级导航至目标目录,例如/srv/ftp/upload。
3、在地址栏中右键单击,选择在终端中打开(若未启用该功能,可手动复制路径并在终端中执行cd命令)。
4、在弹出的终端窗口中执行:sudo chmod 1777 .(适用于完全开放的公共上传目录)。
5、输入当前用户密码完成提权,随后运行:ls -ld .确认权限显示为drwxrwxrwt。
四、使用chown与chmod组合确保粘滞位长期有效
该方法在设置粘滞位的同时,统一目录所有者与所属组,并禁止其他用户写入组权限以外的区域,防止因权限继承导致粘滞位失效。
1、在终端中进入目标目录上级路径,例如:cd /srv。
2、创建新目录并指定归属:sudo mkdir public_share && sudo chown root:users public_share。
3、设置目录权限,启用粘滞位并开放组写权限:sudo chmod 2775 public_share(其中2表示setgid,确保新文件继承组身份;1+2=3不冲突,此处2775不含粘滞位,需额外添加)。
4、补设粘滞位:sudo chmod +t public_share。
5、最终验证:ls -ld public_share应显示类似drwxrwsr-t 2 root users 4096 Apr 12 20:30 public_share的结果。
五、验证粘滞位实际效果的操作步骤
该方法通过模拟多用户环境下的文件操作行为,直观检验粘滞位是否真正阻止非所有者删除他人文件,是权限配置完成后不可或缺的验证环节。
1、在终端中创建两个测试用户:sudo useradd test1 && sudo useradd test2。
2、为两用户设置密码:sudo passwd test1与sudo passwd test2。
3、切换至test1用户并在目标目录下创建测试文件:sudo -u test1 touch /srv/public_share/test1_file。
4、切换至test2用户尝试删除该文件:sudo -u test2 rm /srv/public_share/test1_file。
5、观察终端输出:若返回Operation not permitted提示,则表明粘滞位已正常生效。

















