分页: 1 / 1

以普通用户权限安装、自动升级软件的实现机制设想

发表于 : 2011-02-05 16:34
photor
为什么要考虑以普通用户权限安装、自动升级软件的实现机制?原因很简单:
1、很多各个用户独立定制的东西没有必要在整个系统的层面共享,比如gtk主题、emerald主题和图标主题之类,只需要放在用户家目录里就可以了。对于gtk主题、emerald主题和图标主题来说,直接下载压缩包文件解压到~/.themes、~/.emerald和~/.icons就可以,但是无法实现自动更新,所以有必要用类似于软件源的机制来解决,且设计为无需根用户权限。
2、出于安全考虑,其实很多操作可以避免使用根用户权限,比如安装现在很时髦的linux绿色软件(http://portablelinuxapps.org/),甚至连guest用户都可以进行。这方面唯一缺少的也是一个以普通用户权限实现的类似于软件源的自动更新机制。
3、方便从windows迁移过来的用户适应linux。在windows下普通的应用软件都能以普通用户权限安装,只有涉及到系统底层的软件才需要管理员权限(此即所谓的UAC),实际上在linux下也是如此,只要无需改动像/boot和/etc这些目录的软件都可以直接以普通用户权限装在家目录作为个人专用的应用程序,不一定非得装在/usr下作为全局应用程序。

好了,动机说清楚了,来讲讲具体的实现方案(yy中):
1、以ubuntu为例,两套独立的软件安装机制并存,当以根用户权限apt-get update/upgrade/install时,是访问系统层级的或者全局的软件源,这是已有的软件安装机制;而以普通用户权限apt-get update/upgrade/install时,是访问个人专用的软件源,此时美化主题之类的包直接安装到~/.themes、~/.emerald和~/.icons这些地方,而绿色软件直接安装到家目录下以软件名字命名的目录中(比如qtweb这个软件安装到~/qtweb中)。
2、当有大量的应用软件直接安装到家目录中之后,病毒和恶意软件的传播就成了一个问题。一个初步设想的解决方案是,每次update时将可执行文件的md5值与软件源进行核对,如果版本号不一致当然可以进行升级,如果版本号一致但是md5值不一致,那么说明本地软件已被改动,提醒用户执行reinstall命令重新下载源里的软件包覆盖安装即可。
:em09

Re: 以普通用户权限安装、自动升级软件的实现机制设想

发表于 : 2011-02-05 16:43
枫叶饭团
直接root进系统吧,麻烦

Re: 以普通用户权限安装、自动升级软件的实现机制设想

发表于 : 2011-02-05 19:16
photor
枫叶饭团 写了:直接root进系统吧,麻烦
没好好看?就是为了尽量避免动用root才弄的这个 :em20

Re: 以普通用户权限安装、自动升级软件的实现机制设想

发表于 : 2011-02-16 15:07
photor
没人响应? :em09

Re: 以普通用户权限安装、自动升级软件的实现机制设想

发表于 : 2011-02-19 17:04
photor
哎,知音难求啊 :em20

Re: 以普通用户权限安装、自动升级软件的实现机制设想

发表于 : 2011-03-31 0:38
速腾1994
只用root :em05

Re: 以普通用户权限安装、自动升级软件的实现机制设想

发表于 : 2011-03-31 9:06
灰色小狼
对个人用户是方便了,我觉得广大系统管理员同志们会反对的,咳咳

Re: 以普通用户权限安装、自动升级软件的实现机制设想

发表于 : 2011-06-23 18:41
photor
灰色小狼 写了:对个人用户是方便了,我觉得广大系统管理员同志们会反对的,咳咳
不会吧,这样很多普通用户就压根儿不需要管理员权限了 :em09

Re: 以普通用户权限安装、自动升级软件的实现机制设想

发表于 : 2011-06-23 18:56
YeLee
这建议不错,的确没有影响到全局,虽然进行系统管理很不方便,用户不小心rm -rf也会存在着很大的风险,但是有一点是可取的,软件包的移动性更加灵活,而且也方便用户进行定制,不过,这也一定程度上加大了入门的门槛。好,水就灌到这里为止。

Re: 以普通用户权限安装、自动升级软件的实现机制设想

发表于 : 2011-06-23 19:03
qy117121
支持 :em11