我需要让用户创建mysql转储,但我希望限制其他任何内容。我必须通过ssh进入服务器,因为mysql服务器只监听内部ip地址,从而阻止我直接访问mysql服务器。
我曾试图对ssh用户进行监禁,但这不太有效,因为它无法通过mysql套接字连接到数据库,即使我将套接字目录复制到监狱中。
然后,我阅读了一些关于/sbin/nologin的内容,它允许用户在不启动shell的情况下进行身份验证。我想,也许我可以通过命令直接创建转储/隧道之类的东西给mysql。
是否有人有任何经验,允许用户通过ssh创建数据库转储,但限制其他任何内容?
用户也可以使用像Sequel / MySQL工作台这样的工具进行连接,但是他们仍然需要通过ssh进行连接,因为否则数据库服务器是不可访问的。
他们需要下载转储,但我可以通过SFTP访问转储。
发布于 2017-03-09 18:32:21
两种可能的解决办法。
SSH监狱,http://allanfeid.com/content/creating-chroot-jail-ssh-access
Alternative,Jailkit,简单简单的监禁用户的方法
或者,如果用户使用ssh键,则可以通过授权命令限制用户,
发布于 2017-03-09 17:11:39
将执行转储所需的代码添加到..bashrc/..zshrc,然后是退出。
# .bashrc
echo "Creating DB Dump..."
dumpdumpdump
echo "Done"
exit然而,这是相当不安全的。退出前的任何ctrl都会给用户一个shell。您可以添加一个陷阱,以便在INT和TERM上也退出以避免这种情况。
trap exit INT TERM;
echo "Creating DB Dump..."
dumpdumpdump
echo "Done"
exithttps://askubuntu.com/questions/891220
复制相似问题