o guia completo do ficheiro Master Sudoers.
o Que é o Arquivo Sudoers?
o ficheiro Sudoers é igual a qualquer outro ficheiro do sistema operativo Linux., Mas ele desempenha um papel vital na gestão do que um” usuário “ou” usuários em um grupo ” pode fazer no sistema.
por que o nome Sudoers?
a palavra Sudo é a abreviatura do termo “Super User Do”. Como claramente sugere – é como dizer ao Kernel / OS ” você não tem escolha, basta fazê-lo!”. Então os usuários com permissão do Sudo são chamados de usuários do Sudo. A gestão de todos esses usuários do sudo é feita através de um arquivo chamado de arquivo Sudoers. Este ficheiro também vive na pasta /etc, Tal como qualquer outro ficheiro de configuração.,
Why Sudoers File?
um usuário normal no Linux terá muitas restrições no sistema. Por exemplo-o Usuário não será capaz de iniciar um serviço, alterar um arquivo de configuração ou executar um script no sistema por padrão. Do ponto de vista da segurança, isto parece perfeito.,
mas, vamos tomar um exemplo de-você como um administrador de sistema tem que gerenciar todos os usuários e seus controles. Você tem um site hospedado no Apache em um de seus servidores. Você já tem um Web-Admin para geri-lo. Um usuário deve ser criado para ele no servidor Web. Este Utilizador deve poder fazer duas coisas que um utilizador normal não pode fazer:
- Iniciar / Reiniciar o serviço Apache no caso de parar.
- edite o ficheiro de configuração do Apache.
você tem duas opções de usuário por padrão:
- root User que tem todas as permissões no sistema, incluindo o Apache.,
- um usuário normal, que por padrão não será capaz de iniciar um serviço ou editar quaisquer arquivos de configuração no sistema.
Este é o momento em que um ficheiro sudoers lhe será útil. No ficheiro Sudoers podemos definir exactamente:
- o utilizador Web-Admin só pode iniciar o serviço Apache &
- Ele só pode editar o ficheiro Apache Config.
jogando com o arquivo Sudoers
teoria suficiente, vamos começar a fazer as coisas reais agora. Vou explicar cada seção no arquivo Sudoers com alguns exemplos., Por padrão, um arquivo Sudoers parece que este —
principalmente podemos ver cinco secções no ficheiro — as três primeiras secções do Ficheiro estão relacionadas com o nome de máquina, utilizador e Cmnd., Vamos falar sobre ALIAS mais tarde, primeiro vamos falar sobre o núcleo de secção :
#Usuário Privilégio Especificação
root ALL = (ALL:ALL) ALL
Nota: ‘#’ indica comentário no arquivo, o sistema operacional irá ignorar esta linha durante a execução.,
a Sintaxe do Utilizador: <espaço> OnHost = (Runas-de Usuário:Grupo) <espaço> Comandos
Exemplo: root ALL = (ALL:ALL) TODOS
Lê-lo como Usuário Root pode Executar Qualquer Comando como Qualquer Usuário de Qualquer Grupo em Qualquer Host.
→ o primeiro ALL é usado para definir HOSTS. Podemos definir Hostname / Ip-Address em vez de todos. Tudo significa qualquer hospedeiro.
→ Second ALL: Third ALL is User: Group., Em vez de tudo, podemos definir usuário ou usuário com o grupo como User:Group. ALL: tudo significa todos os usuários e todos os grupos.
→ Last ALL is the Command. Em vez de tudo, podemos definir um comando ou conjunto de comandos. Tudo significa todos os comandos.
para colocá-lo muito simples, é “quem onde = (as_whom) o quê”.
Nota: A maioria das pessoas compreende as máquinas como máquinas remotas. É o nome da máquina LOCAL/endereço IP., HOSTS campo será usado raramente, se você quiser saber mais sobre HOSPEDA no Sudoers, por favor, consulte → https://www.sudo.ws/man/1.7.10/sudoers.man.html
Basicamente podemos permitir que um usuário para fazer algo em apenas duas maneiras —
- Directamente dar-lhe a permissão para executar o comando, modificando a permissão do arquivo.
- Permite-lhe executar o comando como um outro utilizador que já tem a permissão para executar este comando.
no ficheiro Sudoers iremos implementar este último.,
Vamos usar outro exemplo, para compreender claramente os campos na sintaxe:
Exemplo : sysadmin ALL = (raiz) /usr/bin/cat /etc/shadow
Leia isso como Utilizador “administrador do sistema” pode Executar o comando “/usr/bin/cat /etc/shadow” como utilizador de RAIZ em todos os HOSTS.
Aqui no exemplo acima, na secção de comandos — eu adicionei algo mais do que um comando, isto é para mostrar a flexibilidade do ficheiro Sudoers. A parte “/ usr/bin / cat” é um executável binário ou um comando usado para ver o conteúdo de um arquivo., A parte “/ etc/shadow” é um ficheiro confidencial que guarda senhas, por isso significa que o utilizador “sysadmin” só pode executar “/usr/bin/cat” no ficheiro “/etc / shadow”, se este utilizador tentar ver o conteúdo de qualquer outro ficheiro em que não tenha permissões de leitura, não será capaz de o fazer.,
a Sintaxe do comando Sudo: sudo <comando>
Exemplo: sudo cat /etc/shadow
Agora, se o usuário “administrador do sistema” usa o sudo antes de qualquer comando, OS irá pedir-lhe a Senha de Usuários, verifica a palavra-passe e, em seguida, vai para o arquivo Sudoers e verifica se ele é autorizado a emitir este comando como qualquer usuário. Se ele for permitido-sucesso, caso contrário ele relatará uma dessas duas coisas –
→ Usuário não está no arquivo Sudoers. Este incidente será relatado.,
Note : You can see this reported incident in /var/log/auth.log
→Sorry, user <username> is not allowed to execute <command> as <User> on <hostname>
Aqui, o utilizador webadmin só pode executar “cat/etc / shadow”. Mas ele tentou executar o comando’ cat ‘ em “/etc/gshadow”, o que não é permitido.
Como temos bastante aderência nos campos na sintaxe do ficheiro Sudoers, vamos avançar e compreender outras secções do ficheiro. Todas as outras secções dependerão da secção central que já discutimos.,
A próxima seção é a Seção de GRUPO, que é
#Permite que os membros do grupo sudo para executar quaisquer dos comandos
%sudo ALL = (ALL:ALL) ALL
Percentil símbolo ‘%’ é usado para representar um grupo no Arquivo Sudoers. Todos os campos e suas funcionalidades nesta seção são exatamente os mesmos que foram discutidos na seção anterior — a seção do Usuário. Podemos atribuir os mesmos privilégios de Sudo a um grupo em vez de um utilizador, especificando o nome do grupo — %<nome do grupo>., Assim, todos os membros do grupo herdarão os mesmos privilégios dados ao grupo.
Por omissão existe um grupo SUDO definido no ficheiro Sudoers. Podemos ver que essas permissões são exatamente as mesmas que as permissões de usuários do ROOT no arquivo. Então, se um usuário é um membro deste grupo SUDO, ele pode executar todos os comandos que um usuário ROOT pode executar.
vamos definir um grupo personalizado e entender a sintaxe mais claramente. Tomemos o mesmo velho exemplo de administração do sistema para o fazer. Assume o não. de funcionários são mais agora, então os administradores do sistema são 3 agora., Cada um deles precisa das mesmas permissões que tínhamos dado ao primeiro administrador do sistema. Uma coisa que podemos fazer para conseguir isso é ter três entradas para todos os três administradores do sistema no arquivo Sudoers. Se avançarmos com esta abordagem, estaremos a insultar as capacidades de um ficheiro Sudoers.
A melhor coisa a fazer é, agrupar todos os três administradores de sistema em um grupo chamado ‘SystemAdminGroup’., Vamos definir necessárias permissões desse grupo com —
%SystemAdminGroup ALL = (raiz) /usr/bin/cat /etc/shadow
Agora, todos os três administradores podem executar o privilégio de Comando. Fizemos isso de uma só vez usando a definição de grupo.
Sudoers File is capable of making this whole process more efficient using various functionalities. As três primeiras secções — pseudónimos são utilizados para o efeito., Como a palavra já sugere, usamos um pseudônimo para algo que podemos usar em todo o arquivo, é como uma variável GLOBAL em um Script. Como é que isto torna tudo mais eficiente? Podemos definir o conjunto de comandos, hosts e usuários em uma linha, atribuímos esta linha a um nome de ALIAS, este alias será usado sempre e onde for necessário, sem definir todos os comandos/hosts/usuários novamente.
I want to include one more ALIAS which is not listed in Sudoers file by default which is “Run_ as ALIAS”., Agora temos quatro ALIASES
- ALIAS do Usuário como User_Alias
- Executar-Como ALIAS como Runas_Alias
- Host ALIAS como Host_Alias
- Comando ALIAS como Cmnd_Alias
Nota : o nome do Alias deve ser definido em letras maiúsculas e podem conter número, o alfabeto e o carácter de sublinhado (_). O nome falso deve começar pelo alfabeto.,3e”>Nome de ALIAS> = <username><username> <username>…
Exemplo: User_Alias SYSADMINS = joão,tim,tom
Uso: TODOS os SYSADMINS = (raiz) /usr/bin/cat /etc/shadow
Se eu quiser algum conjunto de sudo permissões definidas para os usuários — joão, tim e tom, eu não preciso definir três vezes, em vez disso, pode definir um Alias e usar este Nome de Alias ao delegar o sudo acesso a eles.,
Run As ALIAS Syntax —
Runas_Alias <ALIAS Name> =<username>,<username>,<username>…
Example: Runas_Alias MGRS = root,sradmin
Usage: systemadmin ALL = (MGRS) /usr/bin/cat /etc/shadow
If i want to define the set of users a user can run a command as, i can use Runas_Alias., Não se confunda aqui, apenas lembre-se do mestre mantra – quem onde = (as_whom) o quê. Estamos a usar um nome falso para incluir um não. de utilizadores no campo “as_whom”.
Host ALIAS Sintaxe
Uso: systemadmin HOSTS = (raiz) /usr/bin/cat /etc/shadow
Se precisar de definir um conjunto de nomes de máquinas, endereços ip ou intervalo de endereços ip em que um usuário tem permissão para emitir o Privilegiado/comandos Sudo, eu posso conseguir isso usando o Alias de Host. Mais uma vez, esta parte pertence ao campo “onde” na frase Mestre.