120 permissions tmp
运行命令时 ls -ld /tmp,输出将是:
drwxrwxrwt 30 root root 20480 Mar 11 14:17 /tmp
Run Code Online (Sandbox Code Playgroud)
所以我有两个主要问题:
t权限后面的字母是什么?/tmp是用来创建系统中不同用户相关的临时文件,那它怎么有权限rwxrwxrwx(777)呢?这对我来说似乎是错误的。请我需要你的帮助来了解这里发生了什么。
May*_*hux 141
粘滞位是在目录上设置的权限位,仅允许该目录中的文件所有者、目录所有者或 root 用户删除或重命名文件。没有其他用户具有删除其他用户创建的文件所需的权限。
这是一种安全措施,可避免删除关键文件夹及其内容(子目录和文件),尽管其他用户具有完全权限。
/tmp会有t粘性位?/tmp不同的 Linux 用户可以使用该目录来创建临时文件。现在,如果用户删除/重命名此目录中其他用户创建的文件怎么办?
好吧,为了避免此类问题,使用了粘滞位的概念。因此,为此777给出了 a但保留粘性位并不是一个坏主意。
我将test在我的桌面上调用的目录上设置一个粘性位。
符号方式(t代表粘位):
chmod o+t ~/Desktop/test
Run Code Online (Sandbox Code Playgroud)
或者
chmod +t ~/Desktop/test
Run Code Online (Sandbox Code Playgroud)
数字/八进制方式(1,粘位位为第一个位置的值1)
chmod 1757 ~/Desktop/test
Run Code Online (Sandbox Code Playgroud)
现在让我们测试一下结果:
ls -li ~/Desktop/test
1551793 drwxrwxrwt 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test
Run Code Online (Sandbox Code Playgroud)
删除/移除粘滞位
chmod o-t ~/Desktop/test
Run Code Online (Sandbox Code Playgroud)
现在让我们测试一下结果:
ls -li ~/Desktop/test
1551793 drwxrwxrwx 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test
Run Code Online (Sandbox Code Playgroud)
来源:“什么是粘性位以及如何在 Linux 中设置它?” 在 Linux 主宰
g_p*_*g_p 25
粘滞位是在文件或目录上设置的权限位,仅允许文件/目录的所有者或 root 用户删除或重命名文件。没有其他用户被授予删除其他用户创建的文件的权限。
有时,您需要 Linux 系统的所有用户都可以使用的 Linux 目录来创建文件。用户可以根据自己的方便在此目录中创建、删除或重命名文件。
现在,如果用户不小心或故意删除(或重命名)此目录中其他用户创建的文件怎么办?
好吧,为了避免此类问题,使用了粘滞位的概念。由于/tmp用于此目的。所以为了避免上述情况,/tmp使用粘滞位。
例如:
mkdir demo
chmod 777 demo
Run Code Online (Sandbox Code Playgroud)
我还在这个文件夹中用不同的用户创建了两个文件,权限为 777。
ls -ld demo
drwxrwxrwx 2 guru guru 4096 Mar 11 18:17 demo
ls -l demo
-rwxrwxrwx 1 abhi abhi 0 Mar 11 17:11 file1
-rwxrwxrwx 1 anshu anshu 0 Mar 11 18:15 file2
Run Code Online (Sandbox Code Playgroud)
现在打开这个粘性位
chmod +t demo/
ls -ld demo
drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo
Run Code Online (Sandbox Code Playgroud)
现在如果一个用户(abhi)想要重命名第二个用户(anshu)会发生什么
mv /home/guru/demo/file2 /home/guru/demo/file3
mv: cannot move '/home/guru/demo/file2' to '/home/guru/demo/file3': Operation not permitted
Run Code Online (Sandbox Code Playgroud)
粘钻的由来
在 Linux 上,粘滞位仅在目录上具有上述用途。从历史上看,它用于与常规文件完全不同的东西,这就是名称的来源。
当一个程序被执行时,在用户真正开始使用它之前需要时间将程序加载到内存中。如果一个程序,例如一个编辑器经常被用户使用,那么启动时间延迟在当时是一个开销。
为了改善这个时间延迟,引入了粘性位。操作系统检查如果可执行文件上的粘滞位为 ON,则可执行文件的文本段保留在交换空间中。这使得在程序再次运行时很容易将可执行文件加载回 RAM,从而最大限度地减少时间延迟。
Linux 等现代系统会自动管理其可执行文件和其他文件的缓存,因此不需要粘性位。
资料来源:The Geek Stuff 上的“Linux Sticky Bit 概念用示例解释”
| 归档时间: |
|
| 查看次数: |
213215 次 |
| 最近记录: |