Elw*_*ins 4 unix file-permissions
如果文件仅具有写权限,那么如果用户无法阅读文件,该如何行使其编辑文件的权利?
在Unix中“写”是否意味着“读”?
你可能是盲人,但仍然可以写:
$ touch a
$ chmod 0200 a
$ ls -ln a
--w------- 1 1000 1000 4 Jul 19 15:13 a
$ cat a
$ cat: a: Permission denied
$ echo "secret message" >> a
$ chmod 0400 a
$ cat a
secret message
Run Code Online (Sandbox Code Playgroud)
没有 :)
在类 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
Run Code Online (Sandbox Code Playgroud)