我正在尝试为游戏服务器制作一个Web界面。
我有一个用户/组“游戏服务器”,有游戏文件和configuration(不是一个sudoer)。 而所有人都知道的用户/组“www-data”是针对Web应用程序的。
现在我不幸地看到有人要求或build议将www-data添加到“sudo”组,以允许其他地方修改文件。 出于安全原因,这是非常糟糕的做法
我想启用www-data来修改用户“gameserver”的文件/文件夹内的文件,没有“root”权限。
据我所知,有几种方法可以做到这一点:
前两个将需要更改每个新创build的文件或文件夹的权限或所有权。 因此,最后的方式似乎是最合理的。 但是,执行完毕后:
usermod -a -G gameserver www-data
添加用户“万维网数据”组“游戏服务器”,我不能再SSH用户“游戏服务器”。 并得到一个错误:
Permission denied (publickey).
这个post似乎有一个类似的问题: 添加用户到组后,SSH损坏pipe道错误
但是并没有真正解决这个问题。
为什么添加其他用户到我的用户组阻止我通过SSH访问我的用户? 我怎样才能解决这个问题?
请注意,“www-data”确实能够写入属于用户“gameserver”的文件。
为了反转效果,我SSH到“根”并执行:
gpasswd -d www-data gameserver
要从组“gameserver”中删除用户“www-data”
编辑01:
正如Ryan Babchishin在第一条评论中指出的那样,他正在为他工作。 我试过另一台服务器,它的工作原理。 此问题目前针对OVH服务器。 他们表示,他们正在使用一个自定义的内核来回应之前的问题,我无法使用SystemV命令来启动,停止或重新启动服务。 我现在提交另一张票。 但是仍然不明白这与Linux权限有什么关系。
~gameserver/.ssh/authorized_keys什么~gameserver/.ssh/authorized_keys ? 如果它们是组可写的,SSH服务器将拒绝使用它们,因为目标用户以外的人可以添加任意的密钥。 我可以使我的家庭电脑拒绝接受我的密钥对与chmod g+w .ssh/authorized_keys 。
现在,在你的情况下,你没有改变权限位(假设),但是也许你的自定义内核,或者只是一个不同于我的计算机使用的sshd实现,只要没有其他用户组? 然后,如果你有像664一样的奇怪权限,sshd会接受login,直到你更改组成员身份。 在这里黑暗中有点刺,但听起来中途似乎合理。