cichon
V2EX  ›  Java

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

  •  2
     
  •   cichon · Jan 20, 2024 · 4304 views
    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
    adoal
        1
    adoal  
       Jan 20, 2024   ❤️ 4
    用 root 来安装,程序、配置、只读数据文件的 owner 是 root ,但是运行时的身份是新建的专用用户,可写数据文件的 owner 也是这个专用用户。这个用户用 useradd 创建时加 -r 参数,尽量不要有实际的 home 和 shell 。

    这是老派运维的标准做法。也是 deb 、rpm 打包的惯例。
    adoal
        2
    adoal  
       Jan 20, 2024   ❤️ 2
    不要用同一个可以交互登录的普通用户( uid >= 1000 or 500 )又做文件安装又运行程序。
    adoal
        3
    adoal  
       Jan 20, 2024   ❤️ 1
    换句话说,虽然你可能不想用 CentOS 里已打包的老版本组件,或者你需要的组件根本没有打好的包,需要自己编译安装,但最好看看人家已打好的包是怎么做的,想想其中的道理,一些关键的做法尽量遵循已有的 best practice 。
    cichon
        4
    cichon  
    OP
       Jan 20, 2024
    @adoal 非常感谢你的回复
    wupher
        5
    wupher  
       Jan 20, 2024   ❤️ 1
    运行有单独账号
    安装一般没有,就用 root
    seers
        6
    seers  
       Jan 20, 2024 via Android   ❤️ 2
    部署的时候都是 root ,运行时候不是,一般会给个 nologin 的 shell
    securityCoding
        7
    securityCoding  
       Jan 20, 2024 via Android
    当然
    julyclyde
        8
    julyclyde  
       Jan 20, 2024
    首先肯定不能 root
    其次,多个服务是不是共用,倒也没太讲究……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3204 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 12:10 · PVG 20:10 · LAX 05:10 · JFK 08:10
    ♥ Do have faith in what you're doing.