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

2021-01-18 01:16:02 +08:00
 whenov

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 创建的。

2110 次点击
所在节点    Linux
13 条回复
wevsty
2021-01-18 01:19:24 +08:00
直接 chroot 不行么?
whenov
2021-01-18 01:23:39 +08:00
@wevsty 也行,但是也需要 mount --bind
MicroBotter
2021-01-18 01:25:47 +08:00
总感觉用 SElinux 或 Apparomor 更好一些。
whenov
2021-01-18 01:30:00 +08:00
@MicroBotter 的确更安全,但对我来说太重了
whenov
2021-01-18 01:40:35 +08:00
淦,才发现序号全乱掉了
grazie
2021-01-18 08:24:46 +08:00
@whenov @MicroBotter firejail 感觉适中唉,还能用 apparmor 的
whenov
2021-01-18 09:39:43 +08:00
@grazie 这个看起来不错
hanguofu
2021-01-18 15:44:13 +08:00
请问用什么方法 ( SElinux 或 Apparomor 或者 楼主介绍的方法 或者 其他 )可以对外接的 移动硬盘 /U 盘 (假设是 ntfs 格式 )设置禁止执行的权限 :unmask 移动硬盘 /U 盘 111 ?
whenov
2021-01-18 15:48:04 +08:00
@hanguofu mount 时加上 noexec flag 就行
whenov
2021-01-18 15:49:14 +08:00
@grazie firejail 的 blacklist/noblacklist/whitelist/nowhitelist 感觉难以理解,最终还是用回了自己的方法
hanguofu
2021-01-18 18:06:10 +08:00
谢谢 whenov 怎样才能知道哪些用户组才有执行 mount 这个命令的权限啊?
whenov
2021-01-18 18:39:53 +08:00
@hanguofu 除非修改 fstab,否则只能用 root 来 mount
EIJAM
2021-01-19 10:12:02 +08:00
flatpak 或 snap 应该可以控制吧

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

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

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

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

© 2021 V2EX