我有一台具有双重身份验证层的服务器。这意味着首先用户必须使用他的用户 ID 登录到盒子,然后使用组 ID 访问开发文件夹(比如说)。现在我有一个脚本,它使用 ssh 将文件复制到开发文件夹。为此应该使用什么命令?
普通的 ssh 命令(例如ssh $user@host $cmd
where $cmd
is 之类的命令cp ~user/Test.txt ~grp/
)将不起作用,因为我们使用用户的 id 复制到组的目录,这是不允许的。如果我们使用组 ID 登录,则会被拒绝权限。有什么建议么?
答案1
问题可能是您使用~/user
and ~/grp
(都是相对于登录用户的主目录的目录)而不是~user
and ~grp
(意味着两个不同用户的主目录)?
从你的问题描述中很难判断问题到底是什么。通常,听起来“user”应该与“grp”属于同一组,并且该目录应该是组可写的。
远离 r 命令。 SSH 可以让一切变得更好、更安全。
答案2
最好的解决方案是使用组来管理组——这就是它们的用途。不要向团队提供帐户密码grp
,而是创建grp
一个组,并确保该团队应访问的所有文件均归该组所有,并且具有组读写权限(如果适用)。使用组有很多优点,包括立即解决您眼前的问题。
如果你不能这样做,因为这是你老板制定的政策,而且他很固执,你至少可以安排使用密码身份验证以外的其他方式来访问该su
帐户吗?例如,如果您可以将 ssh 公钥添加到团队帐户的 中~/.ssh/authorized_keys
,则您将能够直接通过 ssh 进入该帐户。 (这不是管理授权的好方法,但您已经通过不使用组来滥用系统。)