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:
-
man sudoers,man visudoe, claro,man sudo - Como dar acesso root a um grupo para alguns comandos apenas
- Comando Linux / Unix: sudoers