我当前的 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