He hecho esto:
sudo chown -R myname /usr/
y ahora no puedo usar el sudo
comando debido a este error:
sudo: debe ser raíz setuid
Y mientras leo esto significa que el propietario de este archivo /usr/bin/sudo
no es la raíz. Ahora es mi usuario debido al chown en la /usr
carpeta.
En muchos foros y blogs la gente sugiere hacer esto como root:
# chown root:root /usr/bin/sudo
# chmod 4111 /usr/bin/sudo
... pero el problema con esto es que necesito iniciar sesión como root, pero no puedo porque si escribo su
en el terminal la contraseña es incorrecta (en realidad uso la contraseña que agregué a mi usuario):
$ su
Password:
su: Authentication failure
Entonces, ¿puedo recuperar el sudo
comando?
Editar: Mi Ubuntu está bajo Paralells en mi Mac OS X.
su
, se le pedirá la contraseña de root , no la contraseña de su usuario como consudo
. ¿Conoces la contraseña de root para esta máquina?sudo chmod -R cirk:cirk /usr
¿Qué estabas tratando de lograr?Respuestas:
Si tiene un sistema similar que puede usar como guía para ver cuál es la propiedad correcta de todos los archivos, puede iniciar en modo de rescate, soltar a un shell raíz y restaurar manualmente la propiedad correcta a todos los archivos. archivos en
/usr
.La forma más rápida puede ser reinstalar su sistema operativo o restaurar desde la copia de seguridad.
En Ubuntu o similar, entonces no hay una contraseña de root por defecto (la cuenta está deshabilitada), por lo que no puede
su
.fuente
chown
nochmod
. Dado que todo en la/usr
carpeta debería estarloroot:root
, esta debería ser una solución fácil, no la solución minuciosa quechmod
significaría un clobber.chown
restablece los bits setxid. Hay algunos archivos/usr
que no son propiedad de la raíz; más que están en un grupo diferente (especialmente en los programas setgid/usr/bin
).Dado que ha retenido los permisos en lo único que le brinda acceso a nivel raíz, necesitará ayuda de FUERA del entorno de software actual para solucionar esto.
Sugiero que la forma más fácil es iniciar un LiveCD para su distribución, montar su unidad y cambiar los permisos de archivo usando los
chmod
que enumeró desde allí.También puede intentar arrancar en modo de usuario único para obtener un shell raíz.
Tenga en cuenta que, por lo general, todas las cosas en el
/usr/
directorio deben ser propiedad,root
por lo que debería poder hacer un recursivochown
para arreglar lo que rompió. ( Editar: según los comentarios de @Gilles aparentemente ejecutando corteschown
setuid y setgid bits, por lo que deberá compararlos manualmente con un sistema existente para restaurarlos una vez que arregle la propiedad nuevamente).Sin embargo, muy POCOS deberían ser
4111
. Ese extra es un permiso especial, ¡pero eso hace que se ejecute como root incluso cuando se ejecuta como usuario! Solosudo
y unos pocos comandos seleccionados deben tener este bit de permiso establecido. Si no ejecutó unchmod
para comenzar, probablemente no necesite arreglar esto en absoluto , todos los permisos ya deberían ser correctos. No ejecute unachmod
operación grande sin saber cuáles deben ser todos los permisos.fuente
sudo chown -R root /usr/
?/usr
el LivdCD, necesita montarlo en algún lugar y correr contra ese camino, digamos/mnt/mydrive/usr
. Entonces necesitará arreglar el bit setuid/mnt/mydrive/usr/bin/sudo
. Luego mire a través de / usr en el livecd y vea si hay otras propiedades que no sean root.find /usr -not -uid 0
y cambiarlos para que coincidan. Luego busque cosas que tengan diferentes setuid o setgid bits y asegúrese de que coincidan también. Si tiene un sistema Ubunutu real para comparar, sería mejor.En el modo de recuperación de Ubuntu, ingrese los siguientes comandos ... Esto solucionó el problema para mí ...
Espero que esto solucione su problema (o el de otra persona)
Encontré este aquí en esta publicación de blog .
fuente
Esto es mucho más fácil que lo sugerido por otras respuestas. No es necesario formatear, reiniciar o usar Live CD.
Esta es la forma más fácil de solucionar este problema. Explicación, sudo está dañado (sé que corrupto es el término incorrecto, pero no funciona, por lo tanto, debemos evitar usar sudo)
He probado este método en Linux mint. Que es un sistema similar a ubuntu. Déjame saber que este método no funciona en ningún otro sistema operativo. Actualizará la respuesta en consecuencia.
Gracias
fuente
su root
, y debido asudo
que no funciona, es imposible establecer una contraseña raízEsto es más simple de lo que la gente lo está haciendo. Intenta lo siguiente:
su
comando roto , cierre la sesión como su usuario actual e inicie sesión nuevamente como root a través de su Display Manager normal (es decir, la pantalla de inicio de sesión).chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
Esto debería solucionar el
sudo
comando y tenerlo en funcionamiento nuevamente en poco tiempo.fuente
Para iniciar sesión como root, sin su o sudo, puede usar pkexec:
Ahora cambie los permisos de los archivos:
fuente