criando grupo de poder

1

Eu quero criar um grupo que possa executar alguns comandos privilegiados, mas não todos. Por exemplo, um usuário avançado pode acessar os arquivos iniciais (de um usuário para outro), mas não deve ter permissão para executar o comando apt-get.

Como posso conseguir isso?

    
por mahmood 17.07.2014 / 22:56

1 resposta

2

Com o mecanismo sudoers , você pode conceder privilégios específicos a um usuário ou grupo específico.
Para editar o arquivo /etc/sudoers , você precisa usar visudo .

por exemplo. para dar ou negar apenas alguns comandos específicos para o usuário igor você pode adicionar a linha

 igor    ALL=(ALL) /bin/kill, /usr/bin/, !/usr/bin/apt-get

neste exemplo o usuário igor pode executar com sudo todo o comando em /usr/bin do comando /bin/kill mas não /usr/bin/apt-get .
Os caminhos do comando são separados um do outro por vírgula , e negados por !

Para dar ou negar o acesso root a um grupo , para um conjunto de comandos você pode adicionar a linha

 %geeks ALL = (root) /usr/bin/,!/usr/bin/apt-get,!/usr/bin/aptitude,!/usr/bin/dpkg

neste caso você dará ao grupo geeks o acesso root a todos os comandos em / usr / bin com as exceções de apt-get aptitude e dpkg .

Para adicionar ao grupo geeks o usuário igor você pode escrever

# sudo usermod -a -G geeks igor

O Linux herdou do UNIX o conceito de propriedades e permissões para arquivos. Isso significa que, mesmo sem acesso root, os usuários pertencentes ao mesmo grupo podem compartilhar arquivos entre eles e não com o resto do mundo. Com ls -l você vai notar na parte esquerda uma string como essa

-rw-r--r--   1  igor  geeks  1892  Jul 10  18:30 The_not_so_short.pdf

Da esquerda para a direita, esta string significa -rwxrw-r-- que: (primeira posição) não é um arquivo ou diretório especial (há um traço - que significa que esse atributo está desativado), rwx Leitura Gravar eXecute permitido para próprio usuário (primeiro bloco de 3), rw- Read Write Não eXecute para os usuários do grupo dele (segundo bloco de 3), r-- Read, No Write, No eXecute para os outros usuários (terceiro bloco de 3). É possível alternar cada atributo único para cada arquivo ou diretório.

Para dar a este grupo a possibilidade de alterar apenas o diretório independentemente da permissão, é difícil. Não existe um comando executável cd porque cada comando é executado em um processo filho e pode afetar apenas seu diretório de trabalho atual e não o diretório pai. É melhor explicado aqui . Então, para mudar o diretório, você precisa dar a possibilidade de executar uma shell as root, e isso significa que você está praticamente dando privilégios totais ...

Referências e outras leituras:

por Hastur 18.07.2014 / 01:39