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
组(或某些系统上的每个人)写入,因此像write
或wall
(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
访问该文件夹的能力(也许作为用户的起始位置)...但是不列出目录的内容,这需要在目录上设置读取位(也许,我们不希望他们看到其他用户的文件)。