V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
EyebrowsWhite
V2EX  ›  Linux

备份 Linux 服务器应该用 root 用户吗?

  •  
  •   EyebrowsWhite ·
    eyebrowkang · 13 天前 · 1739 次点击

    个人服务器,非全盘备份,假设有/etc /home /data这么三个目录,当选择好一个备份方案以后,是单独创建一个用户专门用于备份,还是用 root 用户备份呢?

    目前我按照单独创建用户+ACL 设置权限来操作,但是遇到两个问题:

    1. 某些文件,比如/etc/ssh目录下的私钥必须保证权限为 600 ,强行设置 ACL 会导致权限变为 640 ,后果就是 ssh 无法登录
    2. 为一个目录设置好 acl 权限之后,后续新增的文件不会保持 ACL 权限

    至于使用 root 用户的话,好像权限又给的过大了,请教下各位在实践中是怎么操作的?

    21 条回复    2024-06-06 11:09:46 +08:00
    oneisall8955
        1
    oneisall8955  
       13 天前
    好问题,我用的 root
    drymonfidelia
        2
    drymonfidelia  
       13 天前
    用 docker 只读卷
    povsister
        3
    povsister  
       13 天前
    好问题,我用 600 的 root home 放备份脚本然后 root cron 执行脚本里的 rsync
    esee
        4
    esee  
       13 天前
    个人服务器还分权限吗?反正我懒得分,除了执行对外提供服务的程序另外创建用户来运行,其他操作我都用 root ,要安全就要牺牲效率,平时操作注意一些就行了。
    Morii
        5
    Morii  
       13 天前
    我个人服务器也按照公司标准维护权限,主要我害怕肌肉记忆不过脑子瞎操作公司的服务器
    EyebrowsWhite
        6
    EyebrowsWhite  
    OP
       13 天前
    @esee 我觉得还是分一下比较好,原因类似楼下说的,坏习惯养成就完蛋了
    esee
        7
    esee  
       13 天前
    @EyebrowsWhite 不嫌麻烦也行,我个人的反正不分,效率第一,用了这么多年也没事。至于操作习惯,不管是个人还是公司,敏感操作都是要再三确认,这也是一种习惯
    zlowly
        8
    zlowly  
       13 天前
    有一种实践方式是,用 root 编写备份脚本,然后/etc/sudoers 里设置允许某个普通用户运行这个脚本。
    ferock
        9
    ferock  
       13 天前
    不用 root 但是用 sudo ,留一线,偶尔 rm 的时候,可以救命
    EVANGELIONAir
        10
    EVANGELIONAir  
       13 天前
    rsync -a 不行?
    caola
        11
    caola  
       13 天前
    好问题,出于安全考虑建议创建一个专门的用户只给读取的权限就可以了,强烈建议你这么做,千万不要为了方便而学我用 root ,我这样的做法是不对的,但我不接受我自己的建议,希望你能接受。
    cnt2ex
        12
    cnt2ex  
       13 天前
    用 root 用户和 rsync archive 模式,用户/组权限都是保留和原来一样的。

    不用 root 的话,某些文件无法被读取。
    EyebrowsWhite
        13
    EyebrowsWhite  
    OP
       13 天前
    @drymonfidelia 这个只针对 docker 应用数据备份吧

    @zlowly 这样的话脚本内涉及到的所有命令都会自动赋予权限吗?不过我理解遇到 600 权限的文件应该还是不行的吧
    libook
        14
    libook  
       13 天前
    创建一个 docker 容器,将要备份的目录只读映射到容器内,然后在容器内用 root 来备份数据到你的备份设备。

    可以看看 docker 的 volume 功能怎么用。
    w292614191
        15
    w292614191  
       13 天前
    好问题,正好问问大家,怎么对 centos 备份,类似 win 的 ghost 随时可以还原的那种。
    pckillers
        16
    pckillers  
       13 天前
    个人服务器也需要 24 小时不间断么? 我备份直接重启进 PE 用 ghost 备份整个磁盘 压根不关心什么 root 不 root 的。
    pckillers
        17
    pckillers  
       13 天前
    @w292614191 ghost 支持 ext4 的,像 Windows 一样备份不就完事了?
    tool2dx
        18
    tool2dx  
       13 天前
    我备份资料都是走数据库权限,全部都是网络协议。

    单机备份意义不大,容灾异地备份是最好的。
    blackmirror
        19
    blackmirror  
       13 天前
    个人服务器不就 root 直接用了,还真去搞权限划分啊
    zlowly
        20
    zlowly  
       12 天前
    @EyebrowsWhite sudo 就是让你可以临时以系统管理员 root 身份运行,脚本以 root 用户身份运行,自然脚本里面的一切命令都是 root 来跑的,对于 root 来说哪个用户的文件就算 600 都能查看。
    EyebrowsWhite
        21
    EyebrowsWhite  
    OP
       12 天前
    @zlowly 我理解错了,我以为你的意思是类似这样设置
    user ALL=(ALL) NOPASSWD:/usr/bin/apt
    为某个用户设置脚本的 sudo nopassword 权限,因为我是用 cron job 自动备份,所以我觉得 sudo nopassword 和直接用 root 区别不大。

    之所以这么纠结不想用 root ,是因为我觉得备份任务它就需要个只读的权限,没有必要用 root 做这件事。
    不过我搜索了一大圈,目前还是没有找到让我觉得满意的用户设置方案,所以暂时只能用 root 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2898 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:11 · PVG 21:11 · LAX 06:11 · JFK 09:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.