无法写入具有开放世界写入权限的文件

Moh*_*ghi 4 permissions bash symbolic-link

我找到了该/etc/alternatives/awk文件,当我得到一长串详细信息时,我得到了:

$ ls -l /etc/alternatives/awk
lrwxrwxrwx 1 root root 13 Jan 22  2017 /etc/alternatives/awk -> /usr/bin/gawk*
Run Code Online (Sandbox Code Playgroud)

所以它是一个链接并且具有对 的写访问权限others,所以我尝试了这个:

$ echo hi > /etc/alternatives/awk
bash: /etc/alternatives/awk: Permission denied
Run Code Online (Sandbox Code Playgroud)

进而:

$ cp /bin/ls /etc/alternatives/awk
cp: unwritable '/etc/alternatives/awk' (mode 0755, rwxr-xr-x); try anyway? y
cp: cannot create regular file '/etc/alternatives/awk': Permission denied
Run Code Online (Sandbox Code Playgroud)

这怎么可能?

我知道我是普通用户,但我对此文件有写权限!

moo*_*765 8

不,您没有写入文件的权限。这是rwx对每个人都具有权限的符号链接,但您不写入链接,而是写入链接指向的文件。

$ ls -l /etc/alternatives/awk
lrwxrwxrwx 1 root root 13 Apr 28  2018 /etc/alternatives/awk -> /usr/bin/gawk
Run Code Online (Sandbox Code Playgroud)

你可以看到链接指向/usr/bin/gawk,所以看看它的权限:

$ ls -l /usr/bin/gawk
-rwxr-xr-x 1 root root 658072 Feb 11  2018 /usr/bin/gawk
Run Code Online (Sandbox Code Playgroud)

/user/bin/gawkroot 所有,只有root有写权限,这就是为什么你得到Permission denied.

  • 还可以尝试使用 `ls -l -L /etc/alternatives/awk` 来直接查看目标的信息(大小、所有权等)而不是符号链接。 (3认同)