V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cichon
V2EX  ›  Java

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

  •  2
     
  •   cichon · 338 天前 · 2285 次点击
    这是一个创建于 338 天前的主题,其中的信息可能已经有所发展或是发生改变。
    例如生产环境( CentOS )部署 Nginx ,MySQL ,Redis 这些服务,再新建一个用户组,在该用户组下添加一个用户,通过这个用户去部署这些服务。有这个必要吗?

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

    这两个方案哪一种合适?
    8 条回复    2024-01-20 16:58:34 +08:00
    adoal
        1
    adoal  
       338 天前   ❤️ 4
    用 root 来安装,程序、配置、只读数据文件的 owner 是 root ,但是运行时的身份是新建的专用用户,可写数据文件的 owner 也是这个专用用户。这个用户用 useradd 创建时加 -r 参数,尽量不要有实际的 home 和 shell 。

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