我是一名研究生,想在我的办公室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的发行版,它使用apt
和apt-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 700
或chmod 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/
权限为700
, drwx--x--x
为711
。 如果显示drwxr-xr-x
那么你将需要运行chmod 700 /home/username
或者chmod 711 /home/username