为 cyrus 用户启用 shell 访问

为 cyrus 用户启用 shell 访问

我当前的 cyrus 用户/etc/passwd如下所示:

cyrus:x:76:12:Cyrus IMAP Server:/var/lib/imap:/sbin/nologin

我希望能够授予它 shell 访问权限,但将其限制为/var/lib/imap/var/spool/imap。如何使用 usermod 启用 shell 以允许这样做?完成此操作后,用户是否cyrus能够通过 ssh 进入服务器,还是我应该在 sshd_config 中进行更改?

目的:需要使用cyrus用户rsync 邮件进行备份

答案1

我建议你像我一样使用 ssh 密钥以前在这里推荐过。我有点着急,所以我只是偷懒地复制粘贴我之前的文本并对其进行修改以用于 rsync 目的。:)

使用 ssh 密钥与密码登录相比有一个独特的功能:您可以指定允许的命令。这可以通过修改服务器上的 ~/.ssh/authorized_keys 文件来实现。

例如,

command="/usr/bin/rsync", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...

只允许使用该特定键执行命令“/usr/bin/rsync”。

您还可以指定密钥允许的主机:

from="yourclient,yourotherclient", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...

或者将两者结合起来:

from="yourcyrusserver", command="/usr/bin/rsync", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...

使用密钥,您还可以授予某些用户(例如顾问)对服务器的临时访问权限,而无需透露该特定帐户的密码。顾问完成其工作后,可以删除临时密钥。

答案2

尝试usermod -s /bin/bash cyrus。然后,使用 检查 nologin 是否已更改cat /etc/passwd。然后尝试 ssh 进入服务器。您应该能够登录到主目录,在您的示例中是/var/lib/imap

相关内容