![系统用户有什么意义?](https://linux22.com/image/180145/%E7%B3%BB%E7%BB%9F%E7%94%A8%E6%88%B7%E6%9C%89%E4%BB%80%E4%B9%88%E6%84%8F%E4%B9%89%EF%BC%9F.png)
好的,当您查看系统用户时,系统用户的要点是以最小权限运行服务,并且拥有一个没有密码或 ssh 的用户。我遇到的问题是,要实际执行任何操作,您需要为该用户提供一个 shell 来运行该服务,但这是否违背了不为其提供 shell 的初衷。我想知道我是否使用了错误的方法,如果是的话,让系统用户运行服务的正确方法是什么。我使用此命令创建用户adduser --system --disabled-login --disabled-password --home /usr/local/appname appname
,并使用此命令实际使用用户/发出命令sudo su -s /bin/bash appname -C <command>
答案1
要实际执行任何操作,您需要为该用户提供一个 shell 来运行该服务
sudo -u appname <command>
你做的事情非常错误。大多数系统应该有一个服务管理器来为您启动服务 ( sudo service apache2 start
)。许多服务已经包含了使用正确的用户手动启动它们的工具 ( sudo apachectl start
)。
从根本上来说,用户是否拥有登录 shell、密码、主目录或 ssh 访问权限都是独立的。共享系统上的用户可能拥有所有这些,但任何组合都是有效的。
最安全的组合是没有一个。这可以防止人们以该用户身份登录到计算机。以该用户身份运行任何内容的唯一方法是已经拥有 root 访问权限。