linux 下放开某个软件对应的/usr/lib/xxx 的读写权限有无弊端?

2015-09-05 23:49:15 +08:00
 andyhenry

如题。我是 linux 桌面用户其实无所谓了,这里主要想问一下这是不是一个好习惯。

我遇到的实际软件是 R 软件,系统自己安装的 R 只有少量包(packages ),需要用户自己补充很多包。多用户时,如果每个用户都在自己的主目录下建立包目录,会造成大量的重复。

这里假设系统管理员不懂大家需要什么包,而所有用户使用的包的版本是相同的。此时管理员决定放开 /usr/lib/R 的权限为 777 。

请问管理员的做法有无弊端?

3639 次点击
所在节点    Linux
12 条回复
tempdban
2015-09-05 23:58:06 +08:00
有各种弊端 各种库劫持
skydiver
2015-09-06 00:01:03 +08:00
新建一个目录,放进去公用的包,然后再设置 R 的加载路径之类
这样比较合适
直接改默认目录权限不合适
mkeith
2015-09-06 00:04:06 +08:00
现在硬盘很便宜啊
HentaiMew
2015-09-06 00:04:20 +08:00
非常的不好,把包(虽然我不确定你这里的包具体指的什么)放进 /usr/lib 里面也很不好
andyhenry
2015-09-06 00:19:05 +08:00
@tempdban @skydiver @mkeith @HentaiMew

现在还不能 append ,我具体说一下。
R 的 package 就是他要用到的各种工具包,有点(我个人觉得啊,不一定对)类似于 python 中的 numpy flask 这种。

R 把默认的 package 全部放到 /usr/lib/RRO-3.2.1/R-3.2.1/lib64/R/library/中,我现在将这一文件夹递归设置成 777 权限,未来新的包也安装在此文件夹中,我并没有全部放开 /usr/lib/RRO-3.2.1 的权限。

$ ls /usr/lib/RRO-3.2.1/R-3.2.1/lib64/R/library/
base/ dichromat/ labeling/ plyr/ slam/
...(下略)(每个包是一个文件夹)

这时并不涉及到其他的 bin 、 include 等文件夹。

这样是否也是不可行的?
Comphuse
2015-09-06 00:19:59 +08:00
统计一下需求,把所有会用到的包都装上,然后把包目录 NFS export 出去,在客户端挂载为只读。
lilydjwg
2015-09-06 00:31:14 +08:00
如果你的所有用户互相之间都是信任的还好。否则的话,用户 A 觉得是不是库 X 有问题啊,我去修改看看。然后用户 B 的进程就 crash 掉了。

不想重复的话,其实有个很直接的办法—— zfs 。不过有其它问题。

建议用户要什么包提交请求,然后管理员帮忙安装。这个操作可以自动化进行。

也可以把那个文件交给一个专门的用户,然后授权你的用户们使用 sudo 切换到那个用户执行安装包的命令(仅能使用这一个命令)。(有被绕过的风险,但是你直接 777 风险更大,说不定哪个程序觉得 /usr/lib 下都是管理员授权的东西呢。)
Lanceliel
2015-09-06 01:55:53 +08:00
R 这种情况估计管理员根本不想知道用户需求……要装的包像山一样多,每一个源都慢成狗。
umask 022?
likuku
2015-09-06 02:57:43 +08:00
[我遇到的实际软件是 R 软件,系统自己安装的 R 只有少量包(packages ),需要用户自己补充很多包。多用户时,如果每个用户都在自己的主目录下建立包目录,会造成大量的重复。]

这些包都是有统一源提供么?假若不同人装的相同版本的包文件都一样(Byte 级别上一样),那么可以利用 ZFS 的消除重复数据功能来解决空间问题(简单讲可以让 /home 独立为一个 zfs 卷,对其开启数据祛重功能:相近 /相似文件假若存到 zfs 上的数据块是相同的,则只保留一份数据块,多个文件只引用同一个数据块,效果就类似 dropbox 这样)。

不过,至少在 2013 年, zfs (freebsd )的 数据祛重 功能还是狠消耗系统资源,数据量上来之后,可能负载会高到系统假死。尤其在批量修改 /删除文件时,会很惨。
likuku
2015-09-06 02:59:39 +08:00
zfs dedupe 功能介绍:

How To Size Main Memory for ZFS Deduplication : http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-113-size-zfs-dedup-1354231.html
likuku
2015-09-06 03:01:26 +08:00
当然,假若是用 linux ,也可以另外装一台 freebsd 跑 zfs 用 nfs 共享出去, linux 将 nfs 挂到 /home
likuku
2015-09-06 03:23:42 +08:00
看来即便是 2015 年了, zfs 的 dedupe 还是很坑...

ZFS dedup: tested, found wanting | JRS Systems: the blog : http://jrs-s.net/2015/02/24/zfs-dedup-tested-found-wanting/

文末提到另一条路 zfs 的文件系统压缩功能赢了,是可以推荐的。

ZFS compression: yes, you want this | JRS Systems: the blog : http://jrs-s.net/2015/02/24/zfs-compression-yes-you-want-this/


的确,我自己已经在生产环境使用 zfs 的压缩功能(LZ4 算法),对于存储大量文本文件的状况,有非常好的效果,节省大量空间,效能上感觉不出与未压缩的差别。

虽然也有报道说最近一年里 zfs dedupe 也有了改进
ZFS dedupe is fixed soon - [H]ard|Forum : http://hardforum.com/showthread.php?t=1854062

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

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

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

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

© 2021 V2EX