我很好奇是否有一种方法可以让一个用户通过 su 登录到另一个用户,而无需知道该用户的密码。例如,如果我以用户 1 的身份登录,我想授予用户 2 登录我的权限,但无论出于何种原因,他都不可能知道密码。假设原因是因为我使用了 20 个大写字母/小写字母/数字的随机字符串。需要澄清的是,我不仅想访问该用户的文件,还想以该用户的身份完全登录。
通过 ssh,这很容易,我获取他的公钥,将其粘贴在 .ssh/ 中
如果 user1 恰好是 root,那很简单,我只需在 sudoers 中授予 NOPASSWD 访问权限。
也许解决方案是:使用 ssh 来执行此操作。但是,这很不雅观,不是吗?如果这只对 root 可用,这似乎很不雅观,但对于没有比 root 更重要的人。
附加分:是否可以在无需 root 的情况下进行设置?同样,ssh 解决方案解决了这个问题,但不够优雅。
答案1
设置 ssh 公钥怎么会“不雅观”呢?我认为这是正确的做法,而且不需要 root 访问权限;只需将 user2 的公钥附加到 即可~user1/.ssh/authorized_keys
。如果 user2 登录到系统,他只需键入,ssh user1@localhost
不会产生很大的网络开销。
您还可以配置/etc/sudoers
,以便 user2 可以运行sudo su user1
和/或sudo su - user1
无需输入密码。(这不会获得加分,因为它需要 root 访问权限才能进行配置/etc/sudoers
。)