apache tomcat 用户访问权限的最佳实践

Kun*_*nal 27 linux tomcat

我有一个由不同开发人员共享的 Linux 机器。他们想在共享位置 (/opt/tomcat) 的 apache tomcat 中部署他们的战争文件。

由于他们没有 sudo 访问权限,因此我必须更改 tomcat 目录的文件夹权限。

下面的目录结构/opt/tomcat是——

bin/

conf/

lib/

logs/

temp/

webapps/

work/
Run Code Online (Sandbox Code Playgroud)

在上述情况下的最佳做法是什么- 最适合用户的访问权限?目前,我已将 webapps 和日志的权限更改为 777。

谢谢

int*_*dro 38

我这样做:

我们把tomcat用户作为tomcat文件夹的所有者:

# chown -R tomcat:tomcat /opt/tomcat
Run Code Online (Sandbox Code Playgroud)

用户不能修改tomcat的配置:

# chmod -R g+r /opt/tomcat/conf
Run Code Online (Sandbox Code Playgroud)

用户可以修改其他文件夹:

# chmod -R g+w /opt/tomcat/logs
# chmod -R g+w /opt/tomcat/temp
# chmod -R g+w /opt/tomcat/webapps
# chmod -R g+w /opt/tomcat/work
Run Code Online (Sandbox Code Playgroud)

激活新文件的粘滞位保持定义的权限:

# chmod -R g+s /opt/tomcat/conf
# chmod -R g+s /opt/tomcat/logs
# chmod -R g+s /opt/tomcat/temp
# chmod -R g+s /opt/tomcat/webapps
# chmod -R g+s /opt/tomcat/work
Run Code Online (Sandbox Code Playgroud)

最后,我们添加我们希望可以使用tomcat的用户的tomcat组:

# usermod -a -G tomcat MYUSER
Run Code Online (Sandbox Code Playgroud)

  • 如果没有 -a 标签,您会将用户添加到 tomcat 组,但从他们所属的所有其他组中删除 MIUSER(这意味着不再有 sudo 组)。我只需要迅速采取行动在我的一台服务器上的主帐户上恢复我的组,从我仍然持有这些组的旧会话中检索它们。对阅读此答案的其他用户的警告。 (8认同)

小智 13

Non-Tomcat settingsTomcat的安全HOWTO的部分提供了有关这个话题的有用信息。看这里:

Tomcat 不应在 root 用户下运行。为 Tomcat 进程创建一个专用用户,并为该用户提供操作系统所需的最低权限。例如,使用 Tomcat 用户远程登录应该是不可能的。

文件权限也应适当限制。以 ASF 中的 Tomcat 实例为例(禁用自动部署,将 Web 应用程序部署为展开目录),标准配置是所有 Tomcat 文件都归 root 和 Tomcat 组所有,而所有者拥有读/写权限, group 只有 read ,world 没有权限。例外情况是 Tomcat 用户而非 root 拥有的日志、临时和工作目录。这意味着即使攻击者破坏了 Tomcat 进程,他们也无法更改 Tomcat 配置、部署新的 Web 应用程序或修改现有的 Web 应用程序。Tomcat 进程以 007 的 umask 运行以维护这些权限。