Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Mudando de usuário

para mudar de usuário é o comando su - nome_usuario para trocar novamente su - nome _usuario porque o comando Exit faz você voltar ao usuário anterior?? porque assim as minhas permissões não vão servir é só ele sair com Exit que entra no usuário padrão que tem todas as permissões

deram pra entender minha dúvida?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
3 respostas
solução!

Ola amigo.
Vou explicar por que o comando exit faz você voltar ao usuário anterior e como funciona o processo de troca de usuários com o comando su.
Quando você usa o comando su - nome_usuario, você troca para o usuário especificado (no caso, nome_usuario), e o - significa que você também carrega o ambiente de login desse usuário (como variáveis de ambiente, permissões, diretórios de trabalho, etc.).
Nesse momento, você passa a executar comandos e interagir com o sistema como esse novo usuário, com as permissões que ele tem.
Quando você digita exit, você termina a sessão do usuário que você acabou de assumir com o su -.
Isso faz com que o sistema retorne ao usuário anterior, ou seja, o usuário que estava antes de você ter rodado o su - nome_usuario.
O exit apenas fecha a sessão de login do usuário atual, voltando ao ambiente do usuário anterior, sem alterar suas permissões de forma permanente.
Quando você usa o su, ele inicia uma nova shell (uma nova sessão) com as permissões e configurações do usuário para o qual você trocou.
Se você usar o exit, essa shell é fechada e você volta para o contexto da shell original, ou seja, ao usuário com o qual você estava antes de usar o su.
Portanto, a troca de usuário não é "permanente".
Quando você sai da shell com exit, volta ao usuário que estava no início, com suas permissões originais.

Exemplo prático:

Você está como usuário user1

whoami
# Resultado: user1

Você troca para user2 usando su - user2.

su - user2
whoami
# Resultado: user2

Agora, se você usar exit, você volta para user1.

exit
whoami
# Resultado: user1

O comando su - nome_usuario troca o usuário e suas permissões.
O comando exit encerra a sessão do usuário atual e retorna ao usuário anterior, mantendo as permissões dele.
Se você precisa fazer algo como garantir permissões do novo usuário após sair, você poderia usar o sudo para rodar comandos específicos com privilégios elevados ou manter uma sessão do novo usuário aberta, sem usar exit.

continua ...

Como garantir que o su sempre peça a senha

Quando você usa o comando su sem o - (ou su - nome_usuario), ele não exige a senha do usuário de destino se você já estiver logado como root.
Porém, se você quiser forçar a exigência da senha do usuário a cada vez que usar su, aqui está o que você pode fazer:

  1. Comando su com senha do novo usuário
    Por padrão, quando você usa o comando su - nome_usuario, o sistema vai pedir a senha do usuário destino apenas se você não for o root.
    Ou seja, se você estiver logado como root, você não precisa da senha do usuário para fazer a troca.
    Se você estiver como root e usar o comando su - nome_usuario, o sistema não pedirá a senha do nome_usuario porque o root tem permissões para trocar diretamente.
    Se você não for root e usar su - nome_usuario, o sistema pedirá a senha do nome_usuario para completar a troca.
  2. Como forçar o pedido de senha sempre?
    Para garantir que o sistema sempre peça a senha ao trocar de usuário com su, você pode alterar a configuração do su ou até usar o sudo para um controle mais fino.
    Aqui estão algumas opções:
    Em vez de usar o su diretamente, você pode configurar o sudo para sempre pedir a senha do novo usuário.
  • Instale o sudo (caso ainda não tenha):
  • Em sistemas baseados no Ubuntu/Debian: sudo apt install sudo
  • Em sistemas baseados no RHEL/CentOS: sudo yum install sudo
    Configure o sudo para pedir senha sempre:
  • No arquivo de configuração do sudo, /etc/sudoers, você pode especificar que o sudo deve sempre pedir a senha.
    Para editar o arquivo de configuração do sudo de maneira segura:
sudo visudo

E adicione ou modifique a seguinte linha para garantir que o sudo peça a senha sempre:

Defaults        env_reset,pwfeedback

Isso vai garantir que a senha seja pedida sempre ao rodar um comando com sudo.
Usando sudo para trocar de usuário:
Para trocar de usuário usando sudo, você usaria:

sudo su - nome_usuario

Isso fará com que o sistema sempre peça a senha do usuário atual (que é o que você quer).
Após isso, a troca de usuário ocorre normalmente, mas ao sair da sessão, você retorna para o usuário atual.
Se você insiste em usar su, uma opção seria configurar o sistema para não permitir o su sem senha quando você estiver como root.
Isso pode ser feito no arquivo /etc/pam.d/su.
Edite o arquivo /etc/pam.d/su:
Abra o arquivo de configuração do PAM (Pluggable Authentication Modules) para o su:

sudo nano /etc/pam.d/su

Habilite a exigência de senha no su:
Certifique-se de que a seguinte linha está descomentada ou adicionada:

auth required pam_wheel.so use_uid

Isso força o sistema a pedir senha de todos os usuários ao tentar usar o su.
Adicione os usuários ao grupo wheel:
Para usuários não-root, você pode garantir que eles precisem de senha ao usar su com a configuração do grupo wheel.
Se você quiser que apenas membros do grupo wheel possam usar o su, adicione o usuário a esse grupo com o comando:

sudo usermod -aG wheel nome_usuario

Configure o arquivo /etc/sudoers:
Se você quiser que apenas usuários do grupo wheel possam usar sudo ou su, você pode configurar o arquivo /etc/sudoers:

sudo visudo

E adicione a seguinte linha para dar permissões de sudo apenas ao grupo wheel:

%wheel  ALL=(ALL)       ALL

Com esses ajustes, sempre que você tentar trocar de usuário, o sistema pedirá a senha, e isso irá evitar que você volte automaticamente ao usuário anterior quando usar o comando exit.
Isso garante mais segurança no processo de troca de usuários!
Qualquer duvida comente ai.
Bons estudos.

olá , muito boa sua explicação entendi muito bem porque o exit faz voltar para o usuário anterior. agora sobre o su sempre pedi senha acredito que seja algo que só vou compreender bem com um pouco mais de estudo. porque o que você falou é que o usuário root não precisa de senha para acessar outro usuário e esses comandos fazem o su pedir senha mesmo sendo o usuário root. muito interessante torna o ambiente muito mais seguro se você deseja proteger alguns arquivos