This topic created in 852 days ago, the information mentioned may be changed or developed.
例如生产环境( CentOS )部署 Nginx ,MySQL ,Redis 这些服务,再新建一个用户组,在该用户组下添加一个用户,通过这个用户去部署这些服务。有这个必要吗?
1.这些中间服务以及项目都使用新创建的用户部署,不使用 root 用户。
2.中间件服务用 root 用户部署,项目使用新创建的用户部署。
这两个方案哪一种合适?
8 replies • 2024-01-20 16:58:34 +08:00
 |
|
1
adoal Jan 20, 2024 4
用 root 来安装,程序、配置、只读数据文件的 owner 是 root ,但是运行时的身份是新建的专用用户,可写数据文件的 owner 也是这个专用用户。这个用户用 useradd 创建时加 -r 参数,尽量不要有实际的 home 和 shell 。
这是老派运维的标准做法。也是 deb 、rpm 打包的惯例。
|
 |
|
2
adoal Jan 20, 2024 2
不要用同一个可以交互登录的普通用户( uid >= 1000 or 500 )又做文件安装又运行程序。
|
 |
|
3
adoal Jan 20, 2024 1
换句话说,虽然你可能不想用 CentOS 里已打包的老版本组件,或者你需要的组件根本没有打好的包,需要自己编译安装,但最好看看人家已打好的包是怎么做的,想想其中的道理,一些关键的做法尽量遵循已有的 best practice 。
|
 |
|
5
wupher Jan 20, 2024 1
运行有单独账号 安装一般没有,就用 root
|
 |
|
6
seers Jan 20, 2024 via Android 2
部署的时候都是 root ,运行时候不是,一般会给个 nologin 的 shell
|
 |
|
8
julyclyde Jan 20, 2024
首先肯定不能 root 其次,多个服务是不是共用,倒也没太讲究……
|