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