首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fanchangyong
V2EX  ›  程序员

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

  •  
  •   fanchangyong · 11 天前 · 2376 次点击

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

    23 回复  |  直到 2020-02-14 12:22:04 +08:00
    loading
        1
    loading   11 天前
    关键还是你运行 web 服务用户的权限,如果你用 root 运行 web 服务,那么如果程序有漏洞,那么他就是 root,省了提权这一步。

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

    请各位大佬指教。
    jorneyr
        2
    jorneyr   11 天前
    root
    OllyDebug
        3
    OllyDebug   11 天前 via iPhone
    root 无所谓的,开启 selinux
    d0m2o08
        4
    d0m2o08   11 天前
    root ansible 一把梭
    superrichman
        5
    superrichman   11 天前 via iPhone
    平常不用 root,自己建一个用户给 sudo 权限
    xyjincan
        6
    xyjincan   11 天前
    端口转发就行了,要 root 干嘛
    las917vki
        7
    las917vki   11 天前
    没有那么多麻烦。
    如果自己配置的话,公司引用基本上跑在 root 下面,只是某些国外公司的权限会比较特殊:
    登录 普通用户
    root 时 使用 sudo
    www 应用 wwwroot 之类
    app 引用 单独的用户
    一般 www 的没权限,app 应用根据那个 app 的需要,想访问的目录情况来配置。

    不过国内公司或者我本人基本上清一色 root,实在没那么多力气去操作。
    scukmh
        8
    scukmh   11 天前   ❤️ 3
    public + private 全放上去什么操作?
    jinliming2
        9
    jinliming2   11 天前 via iPhone
    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 用户的特权。
    fanchangyong
        10
    fanchangyong   11 天前
    @scukmh 比如服务器上要从 github clone 代码,需要权限,把 key 都放上去服务器的权限就和我自己权限一样了。当然 github 可以配 deploy key,但也有限制,一个 key 只能用在一个项目上,我有两个项目在同一个机器上跑
    whileFalse
        11
    whileFalse   11 天前
    不知道什么用户,不管理权限,我用容器。
    qile1
        12
    qile1   11 天前 via Android
    用户名 administer 我在考虑要不要禁用了新建个用户,上面服务太多了,前几天还提醒有人异地登录,但是我那天没有登录,而且只有我可以登录
    realpg
        13
    realpg   11 天前
    ubuntu 标注用户配置
    各种服务 用他们安装时候的自带权限
    远程登录带 sudoers 的普通用户
    gwy15
        14
    gwy15   11 天前
    @fanchangyong 正常操作是每个机器都生成一套 key,公钥加到 GitHub 的 SSH Key 里面。
    Kaiyuan
        15
    Kaiyuan   11 天前
    关于这个,最近我遇到一个问题,就是我想通过 PHP 发送魔术封包唤醒局域网设备,但是用 http 用户运行的 PHP 没法访问网卡...然后我还是用 root 运行了...
    garlics
        16
    garlics   11 天前
    root + 777
    fanchangyong
        17
    fanchangyong   11 天前
    @gwy15 这种思维是一个 key 对应一台机器,但我的想法是一个 key 代表一个人或一个组织。比如我自己用的设备就是所有都是同一个 key,已经用了好几年了,放在 dropbox 里,有新机器就 copy 下来。
    如果对应到公司的层面,我觉得可以每个部门一个 key 吧。
    如果每台机器都重新生成 key 的话,那管理起来会很麻烦吧
    fanchangyong
        18
    fanchangyong   11 天前   ❤️ 1
    @garlics 大佬
    gwy15
        19
    gwy15   11 天前
    @fanchangyong 为什么会麻烦呢……?生成密钥和加入信任池都可以自动化。
    vivisidea
        20
    vivisidea   11 天前
    所以我就把自己的 ssh key(public+private)直接复制放上去了。
    ===

    private key 放上去做甚。。private key 必须放本地自己信任的机器上,有需要在服务器上 clone 就 ForwardAgent 啊
    fengtalk
        21
    fengtalk   11 天前
    用户:www
    权限:
    - 文件 644
    - 目录 755
    ddsfeng
        22
    ddsfeng   11 天前
    别问, 问就 docker , 应用跑 docker 里.
    zyq2280539
        23
    zyq2280539   10 天前
    新建用户,配合 sudo 使用
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1966 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:10 · PVG 08:10 · LAX 16:10 · JFK 19:10
    ♥ Do have faith in what you're doing.