更改退出/断开连接时的主文件夹权限

更改退出/断开连接时的主文件夹权限

我有一个用例,其中 Linux 服务器上的文件夹需要打开其权限,以便我可以使用 sudo 帐户将文件从我的文件夹移动到共享文件夹。然后经常发生的情况是,我不是注销的人(ssh 连接断开),而我的主文件夹权限保持打开状态。我不关心打开的权限,除了当我尝试 ssh 重新登录时,打开的文件夹权限会阻止我的密钥身份验证工作,并且我被迫输入密码。

我想知道是否可以设置一种方法,在退出(正常或以其他方式)ssh 会话时始终将权限设置为 700。或者,如果有一种方法可以在我的主文件夹设置为 777 时使密钥身份验证起作用,那也会有所帮助。

顺便说一句,如果它有帮助,这就是我实际上正在尝试做的事情。我习惯scp将本地构建的文件.jar从我的机器移动到 Linux 服务器上的主文件夹。然后,我必须将其.jar从我的主文件夹移动到可以执行的共享文件夹.jar。要将其移动.jar到共享文件夹,我必须使用提供的sudo帐户,但是,sudo除非我打开权限,否则该帐户无法访问我的主文件夹。

答案1

使用您评论中的信息,解决方案似乎是解决根本问题,而不是回答您实际提出的问题。

我使用 scp 将本地构建的 .jar 从我的计算机移动到 Linux 服务器上的主文件夹。然后,我必须将该 .jar 从我的主文件夹移动到可以执行该 .jar 的共享文件夹。要将 .jar 移至共享文件夹,我必须使用提供的 sudo 帐户,但是,除非我打开权限,否则该 sudo 帐户无法访问我的主文件夹。

正如您所注意到的,将主目录的权限设置为0777阻止ssh工作。这是设计使然。相反,创建一个子目录来包含您的jar文件并安全地放宽该目录的权限。为你的主目录的组和其他人添加执行权限,以便你的sudo帐户可以通过它访问目标文件夹:

chmod 711 "$HOME"`
mkdir -m777 "$HOME/subdir"

此时,考虑一个$HOME可能的例子/home/serge。现在,尽管ls /home/serge您的帐户因权限问题而失败sudo,但它将能够搜索您的主目录并进入子目录ls /home/serge/subdir

如果您的sudo帐户和您自己的帐户在评论中有一个组 - 或者可以安排它们有一个共同的组 - 您可以放宽子目录的组权限:

chmod 710 "$HOME"
chmod 770 "$HOME/subdir"
chgrp {whatever} "$HOME/subdir"

或者,将文件传输到/tmp(或/var/tmp) 而不是您的主目录,从而避免整个困难。

相关内容