Configurando o servidor linux com múltiplos direitos de acesso

1

Eu sou um estudante de pós-graduação e quero configurar um servidor linux (preferencialmente Ubuntu) no meu escritório. Eu também quero dar acesso aos meus amigos SSH para essa caixa.

A minha pergunta é se posso configurar o meu servidor de tal forma que eu possa dar a um dos meus amigos o direito de instalar software na minha máquina, mas ele não pode olhar para fora do diretório que ele tem permissão?

Posso configurar várias instâncias do apache (em portas diferentes) para pessoas diferentes? então cada um tem acesso à sua própria instância do apache?

    
por Mark 19.05.2010 / 08:43

1 resposta

2

você pode fazer isso com acesso bem controlado no arquivo /etc/sudoers . Como root, você vai querer executar o comando visudo e adicionar algo nos seguintes termos:

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

ou:

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

dependendo se você estiver usando centos ou alguma outra distribuição que use yum ou debian / ubuntu, que usa apt e apt-get

essas linhas, no arquivo /etc/sudoers , permitirão que username executem os comandos /usr/sbin/apt-get update e /usr/sbin/apt-get install [packagenamex] ou /path/to/yum install [packagenamex] como o usuário root, e eles serão solicitados para / their / password e não para root . eles não terão outro acesso privilegiado à máquina.

Além disso, a maioria dos pacotes pode ser compilada a partir da fonte com comandos como:

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

que instalará o pacote em seu diretório pessoal, geralmente criando os diretórios ~/bin ~/lib e ~/usr , etc.

então talvez ./configure --prefix=/home/username/local ou algo seja mais apropriado.

para configurar o apache httpd, para permitir que cada usuário controle seu próprio virtualhost, etc, sem executar várias instâncias, você pode adicionar uma opção à configuração do apache, algo como /etc/apache2/apache2.conf , uma linha que diz:

Include /home/*/httpd/user.conf

o arquivo de configuração pode ser nomeado como você quiser, o que for mais apropriado, mas o que isso diz ao apache é procurar em /home/*/httpd/ (onde * é traduzido como glob para quaisquer subdiretórios sob /home ) para um arquivo chamado user.conf , onde você pode permitir que seus usuários adicionem informações sobre VirtualHost s

um usuário normal poderia instalar ou configurar o apache para ser executado fora de seu diretório pessoal em uma porta não privilegiada, se você quisesse conceder-lhe acesso dessa maneira. uma porta não privada sendo qualquer coisa acima de 1024, eles teriam que adicionar uma diretiva à sua configuração pessoal do apache dizendo algo como Listen ip.add.re.ss:8888 iniciando um servidor apache httpd rodando na porta 8888

para garantir que eles não consigam acessar os diretórios pessoais do seu ou de qualquer outra pessoa, verifique se eles estão configurados chmod 700 ou chmod 711 (para permitir que o acesso do apache httpd execute seu diretório, passar para /home/username/public_html se você quer ter diretórios de usuário no apache) você pode testar isso fazendo ls -ld /home/username ele deve mostrar:

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

para permissões 700 e drwx--x--x para 711 . se aparecer drwxr-xr-x , será necessário executar chmod 700 /home/username ou chmod 711 /home/username

    
por 19.05.2010 / 09:04