在很多地方,人们可以看到如今被指责为完全用词不当的“粘滞位”,因为它现在的功能是影响目录的写入权限并充当受限删除标志。
在 AskUbuntu 的回答中,回答者写道“粘性位通常适用于目录”。我观察到确实现代系统在实践中似乎从未将它应用于文件,但很久以前通常的情况是将它应用于(可执行程序映像)文件而不是目录。(当谈到现代文件很少使用时,在当前文件系统中是否未使用粘性位中有一个相关问题。)
这引发了一个问题:
注意过去时。这不是粘性位如何工作?现在。这就是它过去的工作方式。
在Ubuntu 14.04,列出该目录中的内容/var/spool/cron与ls -l提供中的目录下面的权限(无关柱剪断):
drwxrwx--T daemon daemon atjobs
drwxrwx--T daemon daemon atspool
drwx-wx--T root crontab crontabs
Run Code Online (Sandbox Code Playgroud)
在没有可执行位的目录上设置粘性位有什么目的?
你如何找到没有粘滞位的所有文件和目录?
我有一堆旧文件需要删除,所以我使用: find . -mtime +3 -a \( -type f -o -type d \)
但是这个 find 命令仍然会找到具有粘滞位权限的文件: drwxrwxrwt
我想确保我的 find 表达式没有找到这些文件。或者……我应该偷懒并忽略“不允许操作”的错误(也许这是粘滞位的意图/目的……让您删除文件而不必担心意外删除您需要的文件)?
有人知道为什么 rocky 不能写信吗/tmp/afile?作为其他用户授予不稳定的权限chmod o+w似乎也不起作用
我更新了 acl:setfacl -m u:rocky:rw /tmp/afile
id 作为 rocky 和所有者:
Run Code Online (Sandbox Code Playgroud)rocky@jammy:~$ id uid=1001(rocky) gid=1001(rocky) groups=1001(rocky)
Run Code Online (Sandbox Code Playgroud)seb@jammy:~$ id uid=1000(seb) gid=1000(seb) groups=1000(seb),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),134(lxd),135(sambashare)
ls -ld 输出
Run Code Online (Sandbox Code Playgroud)seb@jammy:~$ ls -ld /tmp/afile -rw-rw-rw-+ 1 seb seb 0 Jul 3 14:25 /tmp/afile
所有者可以毫无问题地编写:
Run Code Online (Sandbox Code Playgroud)seb@jammy:~$ echo rounders > /tmp/afile seb@jammy:~$ cat /tmp/afile rounders
getfacl -n 输出:
Run Code Online (Sandbox Code Playgroud)seb@jammy:~$ getfacl -n /tmp/afile getfacl: Removing leading '/' from absolute path names # file: tmp/afile # owner: 1000 # group: 1000 user::rw- user:1001:rw- …
Homebrew尝试在 MacOS 10.10.5 上的 exFAT 文件系统上构建应用程序时出现此错误
Error: parent directory is world writable but not sticky
Run Code Online (Sandbox Code Playgroud)
我用这个命令启用了sticky-bit,但是好像没有任何效果
$ chmod +t /Volumes/exFAT/tmp
Run Code Online (Sandbox Code Playgroud) sticky-bit ×5
permissions ×3
chmod ×2
acl ×1
exfat ×1
filesystems ×1
find ×1
history ×1
linux ×1
ubuntu ×1