说说你们生产服务器上都使用什么用户,权限是怎么管理的

2020-02-13 10:07:44 +08:00
 fancy2020

我先说说我的,一个服务器上跑了两个网站,都是我自己的个人网站。之前在阿里云上,自己建了个 www 用户,应用 代码放在 /opt,/opt 的 owner 是 www 用户。 后来服务器换到了 aws 上,有个默认的 ubuntu 用户,懒得新建,就用它了。 权限方面,由于服务器是我自己的,平时也就我自己登陆,所以我就把自己的 ssh key(public+private)直接复制放上去了。

4008 次点击
所在节点    程序员
23 条回复
loading
2020-02-13 10:11:58 +08:00
关键还是你运行 web 服务用户的权限,如果你用 root 运行 web 服务,那么如果程序有漏洞,那么他就是 root,省了提权这一步。

如果只是个人用,能快速回复,用 root 我感觉问题也不是很大吧?

请各位大佬指教。
jorneyr
2020-02-13 10:12:35 +08:00
root
OllyDebug
2020-02-13 10:14:38 +08:00
root 无所谓的,开启 selinux
d0m2o08
2020-02-13 10:15:57 +08:00
root ansible 一把梭
superrichman
2020-02-13 10:18:50 +08:00
平常不用 root,自己建一个用户给 sudo 权限
xyjincan
2020-02-13 10:28:31 +08:00
端口转发就行了,要 root 干嘛
las917vki
2020-02-13 10:31:19 +08:00
没有那么多麻烦。
如果自己配置的话,公司引用基本上跑在 root 下面,只是某些国外公司的权限会比较特殊:
登录 普通用户
root 时 使用 sudo
www 应用 wwwroot 之类
app 引用 单独的用户
一般 www 的没权限,app 应用根据那个 app 的需要,想访问的目录情况来配置。

不过国内公司或者我本人基本上清一色 root,实在没那么多力气去操作。
scukmh
2020-02-13 10:56:55 +08:00
public + private 全放上去什么操作?
jinliming2
2020-02-13 11:02:48 +08:00
1 绝大多数人使用 sudo 和直接 root 没太大区别,要是事事都 sudo 的话,您还是直接切到 root 用户吧,还省了 sudo 的麻烦……
2 sudo 是用来给普通用户执行部分命令特权的工具,正常来讲,一般不会 ALL 权限的,而是给 xxx 用户分配执行 xxx 命令的权限,比如,允许 a 用户执行 poweroff,允许 b 用户执行 dnf 之类的……仅赋予最小权限。
3 除了系统维护以外,基本没有任何操作是非 root 不可的,监听 < 1024 的端口,可以使用 set cap 给予端口监听权限。
4 只有系统管理员可以操作两个用户(自己的非特权用户和 root 用户),其他用户都只能操作自己的非特权用户。若其他用户需要执行某特权操作,需要向系统管理员申请,系统管理员根据实际情况,帮助建目录、配权限、防火墙,或是分配 sudo 执行特定命令的权限。
5 个人设备,自己就是系统管理员,省去了向管理员申请权限的操作,但还是要记住,把自己当作“其他用户”来对待,任何操作都在非特权用户下执行,不到万不得已,不给自己 root 用户的特权。
fancy2020
2020-02-13 11:06:09 +08:00
@scukmh 比如服务器上要从 github clone 代码,需要权限,把 key 都放上去服务器的权限就和我自己权限一样了。当然 github 可以配 deploy key,但也有限制,一个 key 只能用在一个项目上,我有两个项目在同一个机器上跑
whileFalse
2020-02-13 11:14:50 +08:00
不知道什么用户,不管理权限,我用容器。
qile1
2020-02-13 11:15:21 +08:00
用户名 administer 我在考虑要不要禁用了新建个用户,上面服务太多了,前几天还提醒有人异地登录,但是我那天没有登录,而且只有我可以登录
realpg
2020-02-13 12:55:23 +08:00
ubuntu 标注用户配置
各种服务 用他们安装时候的自带权限
远程登录带 sudoers 的普通用户
gwy15
2020-02-13 14:06:59 +08:00
@fanchangyong 正常操作是每个机器都生成一套 key,公钥加到 GitHub 的 SSH Key 里面。
Kaiyuan
2020-02-13 14:15:00 +08:00
关于这个,最近我遇到一个问题,就是我想通过 PHP 发送魔术封包唤醒局域网设备,但是用 http 用户运行的 PHP 没法访问网卡...然后我还是用 root 运行了...
garlics
2020-02-13 14:22:24 +08:00
root + 777
fancy2020
2020-02-13 16:16:36 +08:00
@gwy15 这种思维是一个 key 对应一台机器,但我的想法是一个 key 代表一个人或一个组织。比如我自己用的设备就是所有都是同一个 key,已经用了好几年了,放在 dropbox 里,有新机器就 copy 下来。
如果对应到公司的层面,我觉得可以每个部门一个 key 吧。
如果每台机器都重新生成 key 的话,那管理起来会很麻烦吧
fancy2020
2020-02-13 16:17:02 +08:00
@garlics 大佬
gwy15
2020-02-13 16:25:33 +08:00
@fanchangyong 为什么会麻烦呢……?生成密钥和加入信任池都可以自动化。
vivisidea
2020-02-13 16:40:11 +08:00
所以我就把自己的 ssh key(public+private)直接复制放上去了。
===

private key 放上去做甚。。private key 必须放本地自己信任的机器上,有需要在服务器上 clone 就 ForwardAgent 啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/644215

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX