如果一个文件只有写权限,如果用户不能读取文件,他怎么能行使其编辑文件的权利呢?
在 Unix 中,“写”是否意味着“读”?
Unix/Linux 中的读、写、执行权限是独立的。没有读权限也可以有写权限。对于二进制文件,您可能已经看到未授予读取权限,但执行权限使您能够执行它。另一方面,需要解释的 shell 脚本或任何其他文件需要读取权限才能执行。
简单地提供不读取的写入权限将使您能够写入(也删除)文件而无法读取它。
以下内容应该是不言自明的:
$ touch foo
$ ls -l foo
-rw-rw-r-- 1 devnull devnull 0 Jul 19 12:00 foo
$ chmod -r foo
$ ls -l foo
--w--w---- 1 devnull devnull 0 Jul 19 12:00 foo
$ cat foo
cat: foo: Permission denied
$ echo hey > foo
$ ls -l foo
--w--w---- 1 devnull devnull 4 Jul 19 12:00 foo
$ cat foo
cat: foo: Permission denied
$ > foo
$ ls -l foo
--w--w---- 1 devnull devnull 0 Jul 19 12:00 foo
$ rm -f foo
$ ls -l foo
ls: cannot access foo: No such file or directory
在类 Unix 系统中,一个文件可以是很多东西。例如,它可能是一个管道,用户可以向其中提交数据,但不能从中接收数据。所以不,写权限并不意味着读。
另一个例子可能是一个目录,用户可以在其中存放数据(可能会破坏现有数据),但不能读取其他人存放的内容。
你可能是盲人,但仍然可以写:
$ touch a
$ chmod 0200 a
$ ls -ln a
--w------- 1 1000 1000 4 Jul 19 15:13 a
$ cat a
cat: a: 权限被拒绝
$ echo "secret message" >> a
$ chmod 0400 a
$ cat 一条
秘密消息
没有 :)
1)只写意味着只写 - 所以,没办法这样做
2)不