只写文件和写执行文件的用例是什么?

只写文件和写执行文件的用例是什么?

r--我了解和权限的用例r-x,但不了解-w-和的用-wx例。

答案1

-w-对于 fifo 或只能在以下位置打开的文件很有用附加模式(chattr +a在 Linux 上)。

prw--w--w- me me /var/run/sendstufftome

将允许其他人发送数据,而运行的专用进程me(但没有其他人)将读取该数据。

tty对于设备来说也很常见:

$ ls -l "$TTY"
crw--w---- 1 stephane tty 136, 25 Jan 18 14:06 /dev/pts/25
$ mesg n
$ ls -l "$TTY"
crw------- 1 stephane tty 136, 25 Jan 18 14:07 /dev/pts/25

它可由tty组(或某些系统上的每个人)写入,因此像writewall(setgidtty可执行文件)这样的应用程序可以向您发送消息。


-wx对于某些目录有意义:

$ ls -dl /var/lib/php5/sessions
drwx-wx-wt 4 root root 4096 Aug 25  2014 /var/lib/php5/sessions

该目录是世界上可写的,但没有人知道那里有什么文件(但是root)。这个想法是一个进程只知道它放入其中的文件。通常,文件名很难随机猜测(例如 php 会话文件),(一个进程可以通过查看来找出同一用户的其他进程当前打开的文件/proc/*/fd)。

答案2

对于文件,我无法想到允许用户写入文件但不允许读取文件的众所周知的情况。此外,设置文件的执行位而不设置读取位是没有意义的,因为 shell 需要读取它才能执行它。

现在就目录而言,可能的情况是通过隐匿性实现某种安全性——也许是匿名 FTP 用户。-w-将允许用户更新文件夹的内容(即插入文件)并-wx允许该文件夹加上cd访问该文件夹的能力(也许作为用户的起始位置)...但是不列出目录的内容,这需要在目录上设置读取位(也许,我们不希望他们看到其他用户的文件)。

相关内容