允许用户在没有sudo访问权限的情况下连接SSH?

时间:2015-06-23 19:54:03

标签: google-compute-engine google-cloud-platform gcloud

以下是我要做的事情:在Google Compute Engine上设置一个备份服务器,我公司的员工可以通过rdiffbackup每晚备份他们的计算机。一个cron作业将运行rdiffbackup,它使用SSH发送文件就像SCP一样。

使用“普通”服务器,我可以为每个员工创建一个新用户,并设置权限,使他们无法读取其他员工的文件。

似乎使用“gcloud compute ssh”工具,或使用“gcloud compute config-ssh”配置常规ssh,只允许用户连接添加到项目中的人并将他们的计算机连接到他们的Google帐户。我的问题是,我没有看到用户在服务器上具有读写能力而不是sudoer的方法(据我所知,添加到具有“Can Edit”的项目的任何人都可以获得sudo) 。显然,如果他们有sudo,他们可以阅读别人的档案。

我可以在没有sudo的情况下让某人能够远程SSH吗?谢谢。

2 个答案:

答案 0 :(得分:3)

我建议一起避免使用gcloud。 gcloud的SSH工具旨在轻松管理项目中不断变化的一组机器。它不是为了涵盖所有也使用SSH的用例。

相反,我建议您像普通服务器一样设置备份服务:

  • 分配静态地址
  • (可选)指定dns名称
  • 使用adduser
  • 在框中设置用户

答案 1 :(得分:0)

你有几个选择

1)您可以像在任何普通Linux计算机上一样管理实例上的非root用户,方法是使用标准命令(例如' adduser'而不是gsutil / UI /元数据更新路径。

2)或者,如果您需要管理大型计算机群集,则可以禁用Google提供的整个ACL管理,并为此运行您自己的LDAP服务器。负责帐户更新并需要禁用才能运行的文件就是这个 https://github.com/GoogleCloudPlatform/compute-image-packages/blob/master/google-daemon/etc/init/google-accounts-manager-service.conf

3)最后,您可以锁定对root用户的写访问权限,即。通过在sudoers文件上设置不可变标志来禁用从元数据服务器传播的写入' chattr + i / etc / sudoers'它不是一个优雅的解决方案,但有效。这样您就可以为已添加的用户锁定Root,并且任何新用户都将被添加为非root权限,但任何新的根级别用户都需要逐机手动添加。