我在 CentOS 7 上配置了 chrooted SSH 用户。将 /proc、/dev、/dev/pts 挂载到用户并安装了所需的软件包。现在我想允许此用户执行 cron 作业。我该如何解决这个任务?
服务器:
[root@localhost admin]# grep sftpuser /etc/passwd
sftpuser:x:1004:1003::/chrooted/dir:/bin/bash
[root@localhost admin]# id -a sftpuser
uid=1004(sftpuser) gid=1003(sftpuser) groups=1003(sftpuser),50(ftp)
[root@localhost admin]# uname -a
Linux localhost.localdomain 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
在 /etc/ssh/sshd_config 中:
...
Subsystem sftp internal-sftp
Match Group sftpuser
ChrootDirectory %h
AllowTcpForwarding no
X11Forwarding no
...
客户:
-bash-4.2$ crontab -e
You (sftpuser) are not allowed to use this program (crontab)
答案1
您是否尝试过将用户放入 /etc/cron.allow 文件中(如果它不存在,请自行创建)?
答案2
您可以添加一个 cron 脚本供用户运行。它不会按预期工作,因为您无法使用选项crontab
(天/小时...)运行它,但无论如何这可能会有所帮助:
* * * * * root /usr/sbin/chroot --userspec=user /chrooted/dir your_user_cron.sh