设置具有多个访问权限的Linux服务器

我是一名研究生,想在我的办公室build立一个linux服务器(最好是Ubuntu)。 我也想给我的朋友SSH访问该框。

我的问题是我可以设置我的服务器,使我可以给我的一个朋友在我的机器上安装软件的权利,但他不能在目录之外浏览他允许的目录吗?

我可以为不同的人设置多个Apache实例(在不同的端口上)吗? 所以每个人都有权访问自己的Apache实例?

你可以在/etc/sudoers文件中使用精确控制的访问来实现。 作为root用户,你需要运行visudo命令并添加如下内容:

 username ALL = (root) /usr/bin/apt-get update, \ /usr/bin/apt-get install 

要么:

 username ALL = (root) /path/to/yum install 

取决于你是否使用centos或其他使用yum或debian / ubuntu的发行版,它使用aptapt-get

/etc/sudoers文件中的这些行将允许username运行命令/usr/sbin/apt-get update/usr/sbin/apt-get install [packagenamex]/path/to/yum install [packagenamex]作为root用户,他们将被提示input/他们的/密码,而不是root的。 他们将没有其他特权访问机器。

除此之外,大多数软件包可以从源代码编译,如下所示:

 ./configure --prefix=/home/username make make install 

这将把软件包安装到他们的主目录,通常会创build~/bin ~/lib~/usr等目录。

所以也许./configure --prefix=/home/username/local或者更合适。

为了设置Apache的httpd,允许每个用户自己控制自己的虚拟主机等,而不需要运行多个实例,你可以添加一个选项到Apacheconfiguration,如/etc/apache2/apache2.conf , :

 Include /home/*/httpd/user.conf 

configuration文件可以任意命名,任何可能更合适,但这告诉阿帕奇是看在/home/*/httpd/ (其中*被翻译为一个glob到任何子目录是在/home )一个文件名为user.conf ,您可以允许您的用户添加有关VirtualHost的信息

一个普通用户可以安装或configurationapache在非特权端口上运行他们的主目录,如果你想以这种方式授予他们访问权限的话。 一个非私有的端口是超过1024的任何东西,他们将不得不添加一个指令,以他们的个人Apacheconfiguration说听起来像Listen ip.add.re.ss:8888启动一个Apache Listen ip.add.re.ss:8888端口的httpd服务器

确保他们不能浏览你的或其他人的主目录,确保他们被设置为chmod 700chmod 711 (允许apache httpd访问执行他们的目录,如果你想要通过/home/username/public_html在Apache中有用户dirs)你可以通过执行ls -ld /home/username来testing它:

 drwx------ 185 username users 36864 May 18 17:05 /home/username/ 

权限为700drwx--x--x711 。 如果显示drwxr-xr-x那么你将需要运行chmod 700 /home/username或者chmod 711 /home/username