如何以系统用户身份运行 sudo 命令?

如何以系统用户身份运行 sudo 命令?

我想在 Docker 中运行一个 minecraft 服务器,所以我开始关注本指南。在指南中,建议创建一个系统用户具有主目录 ( /opt/minecraft),但没有密码(您不应该能够以该用户身份“登录”)来运行服务器。它使用以下命令:sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft

我切换到新创建的minecraft“系统用户”--> sudo su - minecraft

问题
所以,我想用码头工人或者docker-compose,问题就出在这里:

  • 当我尝试使用 运行 docker-compose 时sudo,它​​会要求我输入密码(显然,该用户没有密码)。
  • 当我尝试没有 sudo,我明白了cannot create user data directory: /opt/minecraft/snap/docker/1458: Permission denied

我不太清楚这里该怎么做。我无法运行 docker。我想我不想删除用户的密码(这会存在安全风险),也不想为用户添加密码(然后你就可以通过 ssh 或其他方式登录)。我的做法是不是不对?

答案1

考虑添加特权 docker 组 https://docs.docker.com/engine/install/linux-postinstall/

这将允许你运行 docker 命令而无需 root 或 sudo

答案2

这是因为我正在使用snap

显然snap不允许运行home目录之外的任何内容。我卸载了该snap docker版本并从中安装了它apt,现在它可以工作了(除了@madacoda 的答案之外,还使用该docker组)。

相关内容