部署 Web 服务器是多用户好,还是单用户好?

ery · 2013年05月02日 · 最后由 ery 回复于 2013年05月06日 · 4819 次阅读

我们的情况

我们正在部署 Web 服务器

操作系统是 ubuntu

部署工具是 capistrano

我们有三个服务器管理员

这三个人都可以登录服务器进行操作

他们的权限都是一样的,都可以使用 sudo

我们有两个用户管理方案

第一 多个用户

  • 创建一个 公共用户
  • 公共用户 不能登录
  • 公共用户 用于管理部署的公共文件,比如代码
  • 再为每个管理员,创建一个独立的用户
  • 每个管理员使用 自己的用户 登录
  • 用 cap 部署的时候 使用管理员自己的用户登录

第二 一个用户

  • 创建一个 公共用户
  • 公共用户 可以登录
  • 每管理员使用 公共用户 登录
  • 用 cap 部署的时候 使用公共用户登录

我们的问题

这两个方案 那个比较好?

希望有服务器管理和维护经验的朋友,帮忙解答,谢谢!

都已经有 3 个服务器管理员了,团队不是很小了,开始适当分开下权责 所以选择题的话,1。

备注 1,小团对通常共享代码,不代表共享服务器 root 权限,不是不信任,实在是减少手误(手误的概率不高,一旦发生,成本挺高) 备注 2,罗嗦又罗嗦下,备份是必须的。

#1 楼 @as181920 谢谢你的回答 关于第一种方案,我们遇到一些问题,如下:

问题 1 关于 文件的拥有者

当管理员 使用 cap 部署的时候,使用的是自己的帐号登录服务,

那么创建出来的文件的拥有者 都是属于自己的帐号,

这导致,我们需要 重新设置文件的拥有者,设置为公共帐号。

问题 2 关于 后台进程的拥有者

当管理员 使用 cap 部署的时候,使用的是自己的帐号登录服务,

启动一些后台进程的时候,进程的拥有者是 管理员的帐号(这是不符合需求的)

我们希望后台进程 的拥有者 是 公共帐号

所以我们需要使用 公共帐号 启动后台进程

这给部署工作带来了一些负担。

请问 你们是如何解决和看待这个问题的?

#3 楼 @lidashuang 谢谢 我们现在采用的是 多用户方案 但是 研究部署了 1 个月后,我开始考虑 一个用户的方案。 我目前最担心的是, 刚从 多用户的坑 爬出来, 又掉进了 一个用户的坑

所以 希望 有 爬坑经历 的朋友,分享一下经验 谢谢!

我们的方案是分角色,app 只有项目相关的权限,例如部署。而另有一个管理员账户,只负责配置机器相关的东西,无法看到项目。

#5 楼 @raven 谢谢 我们三个服务器管理员 目前的权限是一样的 都可以使用 root 和 sudo。 短期内,我们不会考虑 为每个管理员 设置不同的权限。

#6 楼 @ery 帐号是通用的,只是你用不同的账户做不同的事情。

#7 楼 @raven 对不起,刚才我没有理解你的意思。 我现在明白了, 其实 你们采用的还是 一个用户的方案, 就是说,你们不会为每个管理员创建一个独立的帐号, 而是 根据角色 创建帐号, 比如 部署角色 有一个独立帐号, 系统管理员 有一个独立帐号, 而且 每个帐号都是通用的 可以让多个 管理员使用。

我现在觉得 你们的方案不错。 能问一下,你们采用这个方案 多长时间了吗?

#8 楼 @ery 用这个挺久了 至少一年半吧。我不是管理员,@frankyue 他自己管二十几台机器 不知道能不能@对人……

#9 楼 @raven 非常感谢你的分享。 我正在考虑 采用 一个用户的方案

@frankyue 大神赐教

@ery

我们采取的就是根据角色创建帐号,

  1. 开发团队是用通用帐号:

    1. 因为我们的开发人员需要直接部署代码到服务器,所以他们使用通用帐号来部署
    2. 通用帐号只有基本权限
  2. 管理员使用另外的独立帐号拥有root权限

使用多账户应该是为了权限的分割,如果你三个管理员账户都拥有一样的权限,那就没有这么做的必要了。

#11 楼 @frankyue 明白了,谢谢你建议。

由于 Linux 默认文件系统不支持非常复杂的 ACL,所以大部分场景下,较少的用户帐号更灵活。 但个人支持每台服务器由 1-2 个管理员主管,把不同的业务和系统分拆到不同的机器。安全性,持续服务时间,都会有提升。 多个权限完全一样的帐号,是没必要的。

#13 楼 @kgen 谢谢你的建议。

大部分场景下 较少的用户帐号更灵活 多个权限完全一样的帐号,是没必要的
这两句话说的很好,他们将影响到 我的最终决策

另外,我们现在 只有 两台服务器 Rails APP 和 DB 我们现在的规模还很小,服务器管理员较多,是一些特殊原因造成的。 今后我们会 减少 和 控制 服务器管理员的数量,以提高 系统的安全性和稳定性。

再次谢谢你的建议。

不要允许能直接 SSH 登陆的公共账号...

#15 楼 @bhuztez 请问 为什么哪?

@ery 同一个类型服务用同一个账号,比如 web server 用同一个账号,db server 一个账号,task server 一个账号,前期小规模没必要搞太复杂,把精力分散在这上面不值得。

#17 楼 @mojidong 同意你的观点!谢谢你的建议!

这要看三个人的能力,以及他们的协调,他们的工作方式和思路。是否适合扁平,不适合的话,就需要分个权限比较好,否则搞乱。

#19 楼 @virusswb1 谢谢,三个人的情况基本是一致的,权限也是一致的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号