This topic created in 844 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 其次,多个服务是不是共用,倒也没太讲究…… |