Criei um novo usuário com, adduser
mas quando tentei sudo da conta dele, obtive xxxx * is not in the sudoers file. This incident will be reported.
.
Então comecei a mexer no visudo
comando ...
Eu entendo que a conta root tem a seguinte configuração:
root ALL=(ALL:ALL) ALL
Mas não quero duplicar isso para meu novo usuário ...
Quero que meu usuário xxxx NÃO tenha acesso root, exceto ao usar o sudo.
Ao usar o sudo, quero que o usuário xxxx solicite a senha root e não sua própria senha !!
THX
Usando debian 10
VM, somente ssh
Responder1
Quero que meu usuário xxxx NÃO tenha acesso root, exceto ao usar o sudo.
Na verdade, esse é o estado normal para usuários comuns: você não precisa fazer nada além de configurar sudo
para especificar quais comandos permitir.
root ALL=(ALL:ALL) ALL
Esta linha existe apenas para permitir o uso sudo
caso você já tenha mudado para o usuário root. A linha importante que concede permissões a usuários não-root é esta:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
(Em algumas distribuições Linux, o primeiro usuário regular gerado durante a instalação do sistema operacional pode se tornar um membro do sudo
grupo e, portanto, ter acesso root habilitado automaticamente. Esta é a exceção, não um padrão para todos os usuários.)
A forma básica da especificação de permissão no arquivo sudoers é
<who> <where>=(<as_who>) <what>
<who>
especifica quais usuários podem usar esta entrada. Pode ser um usuário, um grupo (prefixado com um sinal %) ou um User_Alias previamente definido (basicamente uma abreviação para uma longa lista de usuários e/ou grupos) e algumas outras coisas.<where>
pode ser um nome de host: restringe esta entrada a um sistema específico. Pode ser útil em um ambiente corporativo onde você coloca umsudoers
arquivo padrão gerenciado centralmente em todos os hosts, mas geralmente é especificado como ALL para evitar problemas caso a resolução do nome do host não esteja funcionando ou o sistema esteja configurado incorretamente.(<as_who>)
define as contas de usuário nas quais os comandos podem ser executados. O padrão é root, mas você também pode restringir um usuário para poder executar comandos com sudo apenas em alguma conta específica de aplicativo não root, por exemplo.<what>
é o comando (ou comandos, separados por vírgulas) para permitir.
Existem também várias tags e opções, mas o que está acima é a parte importante do sudoers
arquivo em poucas palavras.
Ao usar o sudo, quero que o usuário xxxx solicite a senha root e não sua própria senha
Isso é possível e muito fácil de fazer. Se você adicionar estas linhas ao seu sudoers
arquivo:
Defaults:xxxx rootpw,timestamp_timeout=0
xxxx ALL=(ALL:ALL) ALL
então para o usuário xxxx
(eapenaspara eles), o sudo
comando solicitará uma senha de root - e solicitarátoda vezo sudo
comando é usado, em vez do comportamento padrão de permitir até 15 minutos para usar o sudo
comando sem solicitar a senha novamente.
Isso é importante se você planeja monitorar o usuário e digitar a senha root quando necessário por esse usuário - se você perder a timestamp_timeout=0
opção, o usuário pode primeiro solicitar que você insira a senha root para alguma ação legítima e, em seguida, inventar alguma distração para você nos próximos 15 minutos, e durante esse tempo eles poderão usar sudo
o que quiserem.
Mas observe quese você informar ao seu usuário a senha root, ele também poderá usá-la com o su
comando, a menos que você aplique restrições não padrão ao su
. A maneira clássica (e geralmente a única) de restringir su
é exigir que o usuário seja membro de um grupo específico, caso contrário ele não poderá usar su
nada. Para aplicar esta restrição, edite /etc/pam.d/su
e encontre esta parte perto do início:
# Uncomment this to force users to be a member of group root
# before they can use `su'. You can also add "group=foo"
# to the end of this line if you want to use a group other
# than the default "root" (but this may have side effect of
# denying "root" user, unless she's a member of "foo" or explicitly
# permitted earlier by e.g. "sufficient pam_rootok.so").
# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
# auth required pam_wheel.so
Basta remover o #
do início da última linha e o su
comando poderá ser utilizado apenas pelos membros do root
grupo.