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

Linux 下隔离部分软件的文件访问权限

  •  
  •   whenov · 2021-01-18 01:16:02 +08:00 · 2117 次点击
    这是一个创建于 1414 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Windows 下的 QQ 会扫描浏览器历史记录,Android 下的部分软件会在根目录乱建文件。Linux 下虽然暂时少有类似的情况,但随着国内大厂软件数量的增多,也要未雨绸缪。这里分享一种比 docker 更轻量的隔离软件文件权限的简易方法:

    1. 修正家目录下现有的权限:
    chmod o-rwx ~  # even g-rwx to be more strict 
    
    1. 修复未来的权限,在.bash_profile中加入:
    umask 007  # or even 077
    
    1. 新增专门用于不可信程序的用户,如untrusted
    useradd -m -d /var/lib/untrusted -U untrusted
    
    1. 为避免频繁输入密码,执行visudo并在末尾加入:
    my_user ALL=(untrusted) NOPASSWD: ALL
    
    1. 为了能在不同用户下执行 GUI 程序,在.xinitrc等类似文件中加入:
    xhost si:localuser:untrusted
    
    1. 尝试执行不可信程序:
    sudo -i -u untrusted program
    

    注意此方法并不能建立真正安全的沙盒,但可以以成本较低的方式来防止部分软件扫描用户文件及在家目录下乱建文件的行为。沙盒的实现方式可参考 seccomp 。

    P. S. 如果你最近在家目录下发现了.sys1og.conf文件,那是 wechat-uos 创建的。

    第 1 条附言  ·  2021-01-21 09:00:53 +08:00
    这种方法不能使用依赖 dbus 的软件,如 fcitx 输入法
    13 条回复    2021-01-19 10:12:02 +08:00
    wevsty
        1
    wevsty  
       2021-01-18 01:19:24 +08:00
    直接 chroot 不行么?
    whenov
        2
    whenov  
    OP
       2021-01-18 01:23:39 +08:00
    @wevsty 也行,但是也需要 mount --bind
    MicroBotter
        3
    MicroBotter  
       2021-01-18 01:25:47 +08:00
    总感觉用 SElinux 或 Apparomor 更好一些。
    whenov
        4
    whenov  
    OP
       2021-01-18 01:30:00 +08:00
    @MicroBotter 的确更安全,但对我来说太重了
    whenov
        5
    whenov  
    OP
       2021-01-18 01:40:35 +08:00
    淦,才发现序号全乱掉了
    grazie
        6
    grazie  
       2021-01-18 08:24:46 +08:00 via Android   ❤️ 1
    @whenov @MicroBotter firejail 感觉适中唉,还能用 apparmor 的
    whenov
        7
    whenov  
    OP
       2021-01-18 09:39:43 +08:00
    @grazie 这个看起来不错
    hanguofu
        8
    hanguofu  
       2021-01-18 15:44:13 +08:00
    请问用什么方法 ( SElinux 或 Apparomor 或者 楼主介绍的方法 或者 其他 )可以对外接的 移动硬盘 /U 盘 (假设是 ntfs 格式 )设置禁止执行的权限 :unmask 移动硬盘 /U 盘 111 ?
    whenov
        9
    whenov  
    OP
       2021-01-18 15:48:04 +08:00
    @hanguofu mount 时加上 noexec flag 就行
    whenov
        10
    whenov  
    OP
       2021-01-18 15:49:14 +08:00
    @grazie firejail 的 blacklist/noblacklist/whitelist/nowhitelist 感觉难以理解,最终还是用回了自己的方法
    hanguofu
        11
    hanguofu  
       2021-01-18 18:06:10 +08:00 via Android
    谢谢 whenov 怎样才能知道哪些用户组才有执行 mount 这个命令的权限啊?
    whenov
        12
    whenov  
    OP
       2021-01-18 18:39:53 +08:00 via iPhone
    @hanguofu 除非修改 fstab,否则只能用 root 来 mount
    EIJAM
        13
    EIJAM  
       2021-01-19 10:12:02 +08:00
    flatpak 或 snap 应该可以控制吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1006 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:52 · PVG 06:52 · LAX 14:52 · JFK 17:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.