我注意到,对于 SSH_AUTH_SOCK 值,其他任何人都无法访问其文件夹,但任何人都可以读取实际文件本身。这样的设计背后的原因是什么?
如果我放置一个世界可读的符号链接/tmp
指向我的私有 SSH_AUTH_SOCK 文件,它会带来什么样的安全风险?
我注意到,对于 SSH_AUTH_SOCK 值,其他任何人都无法访问其文件夹,但任何人都可以读取实际文件本身。这样的设计背后的原因是什么?
如果我放置一个世界可读的符号链接/tmp
指向我的私有 SSH_AUTH_SOCK 文件,它会带来什么样的安全风险?
符号链接不会覆盖基础文件路径的权限。
例如,如果我这样做,
ln -s /tmp/ssh-foobarbaz/agent.12345 /tmp/mysock
那么为了能够访问,/tmp/mysock
我必须能够访问/tmp/ssh-foobarbaz/agent.12345
,这意味着能够访问/tmp/foobarbaz
。由于该目录的模式为 0700,因此只有该目录的所有者(或 root!)可以访问agent.12345
,因此只有该人(或 root!)可以访问/tmp/foobarbaz
。另一方面,硬链接确实绕过目录的权限,因为它是文件的备用路径。但是您首先需要能够访问该文件才能创建硬链接,因此其他用户无法执行此操作;你需要变得“愚蠢”并故意做坏事。
在这两种情况下,将套接字放在模式 0700 目录中意味着它对于其他用户(root 除外)是安全的。