如上图所示,造成这个原因是什么啊
google 一下你就知道了。权限在 inode 里,软连接只是指向了文件的 inode,然后读取 passwd 的 inode 里面的权限数据,你这用户的权限没有
可是我两个用户,都是能直接读取到 /etc/passwd 这样的文件,具备你说的用户读取权限吧。
strace cat xxx
看下什么错误不就知道了
似乎是和目录的 sticky bits 有关。
https://lwn.net/Articles/390565/
The solution is to permit symlinks to only be followed when outside a sticky world-writable directory, or when the uid of the symlink and follower match, or when the directory owner matches the symlink's owner.
/proc/sys/fs/protected_symlinks
把值改成 0 就可以了。具体可以看
https://www.kernel.org/doc/Documentation/sysctl/fs.txt
你把 passwd 权限贴出来
正解,非常感谢。
这是修改为 1 的演示
![image.png]( https://i.loli.net/2020/04/11/RWjnurzai9SwlVE.png)
这是修改 0 的演示
![image.png]( https://i.loli.net/2020/04/11/USvD9FfczAPx1Ya.png)