5

如果一个文件只有写权限,如果用户不能读取文件,他怎么能行使其编辑文件的权利呢?

在 Unix 中,“写”是否意味着“读”?

4

4 回答 4

5

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
于 2013-07-19T13:24:38.953 回答
4

在类 Unix 系统中,一个文件可以是很多东西。例如,它可能是一个管道,用户可以向其中提交数据,但不能从中接收数据。所以不,写权限并不意味着读。

另一个例子可能是一个目录,用户可以在其中存放数据(可能会破坏现有数据),但不能读取其他人存放的内容。

于 2013-07-19T13:12:46.707 回答
4
  1. 你可能是盲人,但仍然可以写:

    $ 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 一条
    秘密消息

  2. 没有 :)

于 2013-07-19T13:20:23.223 回答
1

1)只写意味着只写 - 所以,没办法这样做
2)不

于 2013-07-19T13:12:47.083 回答