我以管理员身份在服务器上工作,并且还有五个标准用户正在连接。但是,当我安装新软件包(如 numpy 等)时,他们无法使用它。我需要在服务器或 bashrc 文件等上更改很多内容。
现在,我正在 ubuntu-16.04 上创建新服务器(以管理员身份),并想创建一个标准用户或一个包含所有标准用户的组。我想让标准用户(或组)无需任何 sudo 权限(或更改任何路径)即可访问所有程序(将要安装)。
如何建立这样的体系?
谢谢
答案1
所有版本Ubuntu和Ubuntu 服务器以及所有版本的 Linux 都是您所描述的系统类型。
主要区别在于Ubuntu 桌面和Ubuntu 服务器服务器版本安装了一个精简版,允许管理员挑选出他喜欢安装的许多软件包,例如 GUI 桌面。
系统上的用户将有权访问您在系统范围内安装的应用程序。使用软件中心从存储库安装的应用程序或在apt
整个系统范围内安装的应用程序。
如果您在德布分发,这取决于您如何安装它。如果您编译一个程序,在正常情况下,该程序是在用户的个人空间中由没有提升访问权限的普通帐户编译的(并且应该出于安全考虑)。
在安装编译好的软件包时,许多软件包的分发商都会提供一个make install
选项,当使用提升的sudo
命令运行时,该选项将在系统范围内安装软件包。如果它没有将软件包放置在系统范围内,那么您必须手动执行此操作。
您提到了一个程序,numpy
但是,这取决于您如何安装该程序。如果您要具体说明遇到问题的程序,则必须包括安装该程序时使用的步骤,以便您可以获得有关如何使该特定程序成为系统范围的建议。一旦您对一个或两个程序执行此操作,您就可以使用相同的方法对所有程序执行此操作。
它可能不是你要找的,但是python-numpy可通过存储库获取。如果使用以下命令安装:
$ sudo apt install python-numpy
它将在整个系统内可用。
据,直到...为止用户和权限以及对程序的访问,默认创建用户将为用户提供您在问题中描述的访问类型和权限。
所有用户都可以访问您默认可以访问的同一文件夹中的程序。使用此命令查看搜索了哪些路径:
$ echo $PATH
您可以考虑将程序放在 的子目录中/opt
。然后将该程序的执行文件的链接放在默认路径中,例如usr/local/bin
。
如果您有一个名为的程序saytime.sh
,您可以将其放入/opt/timeprogram/saytime.sh
。
/usr/local/bin
然后使用此命令放置到该程序的链接:
$ ln -s /opt/timeprogram/saytime.sh
现在可以从命令行运行该程序,而无需导航到该程序的位置,也不必键入该程序的完整路径。
要创建 Ubuntu 服务器,只需像下载桌面版本一样下载服务器版本。以相同的方式安装。但正如我上面提到的,就您的问题的标准而言,两者的行为是相同的。