我目前在/etc/passwd cyrus用户看起来像这样:
cyrus:x:76:12:Cyrus IMAP Server:/var/lib/imap:/sbin/nologin
我希望能够授予它shell访问权限,但将其限制为/var/lib/imap和/var/spool/imap 。 如何启用shell来允许这个使用usermod? 一旦这样做了, cyrus用户能够SSH入服务器,还是应该在sshd_config中进行更改?
目的:需要使用cyrus用户进行rsync邮件备份
我build议你使用一个ssh键,就像我以前在这里推荐的那样 。 我有点急,所以我只是懒洋洋地复制粘贴我以前的文本,并修改它的rsync目的。 🙂
与密码login相比,使用ssh密钥有一个独特的function:可以指定允许的命令。 这可以通过在服务器上修改〜/ .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...
使用密钥,您还可以授予对服务器某些用户(如顾问)的临时访问权限,而不会泄露该特定帐户的密码。 顾问完成工作后,临时密钥可以被删除。
尝试usermod -s /bin/bash cyrus 。 然后,使用cat /etc/passwd检查nologin是否已经更改。 然后尝试ssh进入服务器。 您应该可以login到主目录,在您的示例中是/var/lib/imap