【发布时间】:2014-12-17 05:56:43
【问题描述】:
我编写了一个简单的脚本来自动创建符号链接。
#!/pseudo
today = "/tmp/" + date("Y-m-d")
exec("ln -sf " + today + " /tmp/today")
足够简单;获取今天的日期并进行符号链接。理想情况下在午夜之后使用 -f 运行,因此它只是就地更新它。
这很好用! ...为我的用户。
xkeeper /tmp$ ls -ltr
drwxrwxrwx xkeeper xkeeper 2014-10-21
lrwxrwxrwx xkeeper xkeeper today -> /tmp/2014-10-21/
xkeeper /tmp$ cd today
xkeeper /tmp/today$ cd ..
请注意,它工作正常,所有权限都是世界可读的,一切看起来都很好。
但是如果其他人想使用这个链接(我们会说,root,但任何其他用户都有这个问题),就会发生非常奇怪的事情:
root /tmp# cd today
bash: cd: today: Permission denied
我完全不知道为什么会这样。我也尝试使用ln -s -n -f 创建链接(不是“--no-dereferencing”解释得很好),但出现了同样的问题。
【问题讨论】:
-
请注意,如果我使用 root 自己创建链接(所有其他用户都可以访问它),它工作得非常好,但这并不能真正解释为什么如果由 其他用户。
-
#!/pseudo是什么意思? -
好吧,很奇怪。我尝试在
/var/www/的某个临时文件夹中以相同的方式创建一个链接,它按预期工作,没有权限错误。到底是什么。 -
@wenzul ...什么?这有参考吗?这是我第一次听到这样的事情,而谷歌搜索却一无所获。它也违背了根在 40 年的 Unix 和一般计算中的传统角色......
-
@andlabs 好的,我的意思是 /tmp 的这种差异行为,但可能使用了错误的词...
标签: linux file-permissions symlink