当我尝试使用 scp 拉取权限为 777 的文件时,为什么 Unix 要求输入密码?

dae*_*let 1 networking scp permissions files

让我们考虑一下我有一个/home/base/alpha.txt权限为 777的文件,即-rwxrwxrwxuser@host. 现在,从 system host1as user1ie user1@host1,我尝试使用以下命令拉取上述文件:

scp user@host:/home/base/alpha.txt .
Run Code Online (Sandbox Code Playgroud)

根据文件权限 777,每个人都有读写执行权限,即任何人都应该能够读取、写入和执行提到的文件。为什么 Unix 会要求输入user@host密码?

Ste*_*itt 5

文件权限适用于主机。该文件仍然需要在外部可见;您正在使用 SSH ( via scp ) 来执行此操作,而 SSH 要求您输入密码。这发生在任何涉及目标文件的事情之前;SSH 服务器对连接用户进行身份验证,并且只有在完成(成功)之后才scp涉及目标主机和访问的目标文件。

如果您想要无密码 SSH 访问,您可以设置密钥来这样做。

顺便说一句,由于您以useron登录host,因此 的相关权限alpha.txt仅适用于user。如果user是 的所有者alpha.txtalpha.txt则只需要其所有者可读。