生产环境,部署中间件,有必要新建一个系统用户来部署吗?

115 天前
 cichon
例如生产环境( CentOS )部署 Nginx ,MySQL ,Redis 这些服务,再新建一个用户组,在该用户组下添加一个用户,通过这个用户去部署这些服务。有这个必要吗?

1.这些中间服务以及项目都使用新创建的用户部署,不使用 root 用户。
2.中间件服务用 root 用户部署,项目使用新创建的用户部署。

这两个方案哪一种合适?
2088 次点击
所在节点    Java
8 条回复
adoal
115 天前
用 root 来安装,程序、配置、只读数据文件的 owner 是 root ,但是运行时的身份是新建的专用用户,可写数据文件的 owner 也是这个专用用户。这个用户用 useradd 创建时加 -r 参数,尽量不要有实际的 home 和 shell 。

这是老派运维的标准做法。也是 deb 、rpm 打包的惯例。
adoal
115 天前
不要用同一个可以交互登录的普通用户( uid >= 1000 or 500 )又做文件安装又运行程序。
adoal
115 天前
换句话说,虽然你可能不想用 CentOS 里已打包的老版本组件,或者你需要的组件根本没有打好的包,需要自己编译安装,但最好看看人家已打好的包是怎么做的,想想其中的道理,一些关键的做法尽量遵循已有的 best practice 。
cichon
115 天前
@adoal 非常感谢你的回复
wupher
115 天前
运行有单独账号
安装一般没有,就用 root
seers
115 天前
部署的时候都是 root ,运行时候不是,一般会给个 nologin 的 shell
securityCoding
115 天前
当然
julyclyde
115 天前
首先肯定不能 root
其次,多个服务是不是共用,倒也没太讲究……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1010191

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX