Linux(CentOS 6.6)创建用户限制 FTP/SSH 访问并仅允许某些命令集

Linux(CentOS 6.6)创建用户限制 FTP/SSH 访问并仅允许某些命令集

我有一台 VPS 服务器,它整天运行一个脚本,用于验证使用我们软件的客户。问题是,有时这个脚本会崩溃,我需要重新启动它。我认识一个人,我想让他在我不在的时候重新启动脚本,问题是我不想让他通过 FTP/SSH 访问 VPS,我想限制他的用户只能使用一组特定的命令。

例如只有这些命令(仅列出几个)

service mysqld start
screen -ls

答案1

您可以允许他以普通用户身份通过​​ SSH 连接到您的服务器,然后严格授予他 sudo 权限以执行您希望他执行的操作。

您应该为此添加一个新组(暂时将其命名为服务):

sudo addgroup services

将你的用户添加到该组:

sudo adduser your_guy_user services

编辑 /etc/sudoers.d/services 并为服务组添加一个条目:

%services ALL=(ALL) /usr/sbin/service
%services ALL=(ALL) /usr/bin/service mysqld *
%services ALL=(ALL) /path-to/screen

保存文件,让你的人通过 ssh 登录并尝试重新启动 mysql 服务。

如果您想限制他可以使用的命令,那么您必须更改这些命令的权限:

/bin/ping- 默认情况下755权限(所有者有读写,组有接收,其他有接收),这样每个人都可以执行该命令。如果您不想让您的用户使用 ping 命令,请执行chmod 750 /bin/ping。这样,只有 root 用户和组 root 才有权执行该命令。这只是一个例子,您可以从这里推断。

因此,最终用户必须能够通过 SSH 登录到您的服务器才能重新启动该服务。当然,这可以通过其他不同的方式实现,例如使用充当 Web 服务器的 Python 脚本,以便用户连接到那里并使用用户名和密码登录并发出重新启动命令(脚本可以是 Python、Perl 或 PHP),但这需要编码并实际创建脚本。

所以我会选择第一个选项。

相关内容