我需要在 Ubuntu 9.10 服务器上进行什么设置,以便用户可以构建他们选择的应用程序(即 ./configure 、make && make install)而无需 sudo/admin 权限。
我只是觉得,为了构建应用程序而让用户访问他们可能不需要的系统部分,这有点安全风险。
答案1
如果您的用户使用
./configure --prefix=/home/user/opt/
或者对于 cmake 项目
cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/
这会将程序安装在该前缀中(而不是默认的 /usr/local/),然后您的用户应该能够像这样运行该程序:
/home/user/opt/bin/program
如果您希望他们能够仅使用名称(不使用完整路径)来运行程序,则需要添加/home/user/opt/bin
到路径环境变量中,编辑用户 .profile 并添加以下行:
export PATH=/home/user/opt/bin:$PATH
请注意,以这种方式安装的程序将只对特定用户开放,但这是一种方法
答案2
用户无需 sudo 权限即可构建应用程序。唯一需要 sudo 权限的情况是当您想要将某些内容安装到系统目录中时。
./configure
并且make
始终无需 sudo 权限即可工作。make install
通常需要 sudo 权限,因为它会将应用程序安装到/usr/local
或/usr
(有时/opt
)。
但是,如果您更改安装路径的前缀(即./configure --prefix=~/usr/local
),使得安装在用户主目录树内执行,则不需要 sudo 权限make install
。
答案3
添加什么txwikinger已经说过,您可能还想检查一下fakeroot
,这提供了构建 .deb 包的机会,而dpkg
无需提升权限。当然,安装这些包通常需要 sudo 访问权限。