Resolvido: su, sudo, kdesu e gksu não funcionam
Dica publicada em Linux / Configuração
Resolvido: su, sudo, kdesu e gksu não funcionam
Algum de vocês já passou por este problema, logo após a (re)instalação de sua distro, reaproveitando uma pasta home antiga e na hora de usar os poderes de superusuário o su, kdesu ou mesmo gksu não funcionam alegando falha de login ou a seguinte mensagem com o sudo:
sudo: must be setuid root
Isto acontece porque há um problema de permissões erradas na sua pasta de usuário, ou mesmo na partição, caso você tenha usado um comando chmod recursivo (chmod -R permissões caminho) com as permissões erradas. Você consegue logar na sua sessão, mas não consegue usar o su, o sudo.... Mas você pode iniciar uma sessão como root. Muita gente tem tido problemas com isso, e as soluções que aparecem na web funcionam em algumas distros e em outras não, ou em casos específicos, os quais não são objetivo desta dica. Bom, chega de conversa e vamos a resolução do problema.
Em primeiro lugar, o owner (dono) e o group (grupo) de sua pasta de usuário devem ser os mesmos, ou seja, seu grupo principal deve ser um grupo de nome igual ao seu login ou então deve possuir o mesmo número que seu uid (user id), que na maioria das distros é 500. Inicie uma sessão como root, pelo kdm ou gdm. Caso ao criar o seu usuário padrão não tenha sido criado um grupo com seu mesmo login e uid (você pode verificar no kuser por exemplo), crie o grupo com o comando:
# groupadd fulano
E então edite como root o arquivo /etc/passwd e deixe a linha que contém seu user assim:
O primeiro "500" é seu uid e o segundo é seu gid (group id). Agora adicione seu usuário a este grupo com o comando:
# gpasswd -a fulano fulano
Depois disto, agora é só setar as permissões corretamente. Como root use o comando
# chown -R fulano:fulano /home/fulano
Este comando faz com que seu usuário e seu grupo principal tenham acesso à sua home. Você deve logo em seguida decidir como vai ser o acesso a sua home tanto pelo seu grupo, como para outros. Use como usuário normal
$ chmod -R 755 /home/fulano
para que você tenha todas as permissões e apenas leitura e execução para seu grupo e outros. Para isso, estando você logado em uma sessão como root, dê o comando # su fulano, e você estará logado como usuário normal para fazer este passo. Depois dê um exit e você será root novamente.
Agora vem a parte que todo mundo acha no Google, mas que sozinha não resolve o problema:
# chmod 4111 /usr/bin/sudo
Este último comando faz com que o sudo seja executado com setuid root. Após terminar, faça o login como usuário normal e veja que o sudo, su, kdesu ou gksu estarão funcionando normalmente e que você não verá mais a mensagem: "sudo: must be setuid root"
sudo: must be setuid root
Isto acontece porque há um problema de permissões erradas na sua pasta de usuário, ou mesmo na partição, caso você tenha usado um comando chmod recursivo (chmod -R permissões caminho) com as permissões erradas. Você consegue logar na sua sessão, mas não consegue usar o su, o sudo.... Mas você pode iniciar uma sessão como root. Muita gente tem tido problemas com isso, e as soluções que aparecem na web funcionam em algumas distros e em outras não, ou em casos específicos, os quais não são objetivo desta dica. Bom, chega de conversa e vamos a resolução do problema.
Em primeiro lugar, o owner (dono) e o group (grupo) de sua pasta de usuário devem ser os mesmos, ou seja, seu grupo principal deve ser um grupo de nome igual ao seu login ou então deve possuir o mesmo número que seu uid (user id), que na maioria das distros é 500. Inicie uma sessão como root, pelo kdm ou gdm. Caso ao criar o seu usuário padrão não tenha sido criado um grupo com seu mesmo login e uid (você pode verificar no kuser por exemplo), crie o grupo com o comando:
# groupadd fulano
E então edite como root o arquivo /etc/passwd e deixe a linha que contém seu user assim:
fulano:x:500:500:Fulano da Silva:/home/fulano:/bin/bash
O primeiro "500" é seu uid e o segundo é seu gid (group id). Agora adicione seu usuário a este grupo com o comando:
# gpasswd -a fulano fulano
Depois disto, agora é só setar as permissões corretamente. Como root use o comando
# chown -R fulano:fulano /home/fulano
Este comando faz com que seu usuário e seu grupo principal tenham acesso à sua home. Você deve logo em seguida decidir como vai ser o acesso a sua home tanto pelo seu grupo, como para outros. Use como usuário normal
$ chmod -R 755 /home/fulano
para que você tenha todas as permissões e apenas leitura e execução para seu grupo e outros. Para isso, estando você logado em uma sessão como root, dê o comando # su fulano, e você estará logado como usuário normal para fazer este passo. Depois dê um exit e você será root novamente.
Agora vem a parte que todo mundo acha no Google, mas que sozinha não resolve o problema:
# chmod 4111 /usr/bin/sudo
Este último comando faz com que o sudo seja executado com setuid root. Após terminar, faça o login como usuário normal e veja que o sudo, su, kdesu ou gksu estarão funcionando normalmente e que você não verá mais a mensagem: "sudo: must be setuid root"
Estou passando exatamente por isso, depois que mexi na permissão da pasta USR, para copiar um arquivo na pasta do AMSN.
usei o seguinte comando:
chown -hR meuusuario // usr
e ai ferrou tudo.
mas meu amigo, não entendi essa parte, podeira me ajudar??
"E então edite como root o arquivo /etc/passwd e deixe a linha que contém seu user assim:
fulano:x:500:500:Fulano da Silva:/home/fulano:/bin/bash"
abraço