He instalado Ubuntu usando la GUI, dándome una contraseña y todo. No recuerdo intrincadamente el proceso. Sin embargo, lo que me preocupa es que no conozco la siguiente contraseña:
$ su
Password: <the only password I've ever created on this machine>
su: Authentication failure
Simplemente no sé qué hacer. No estoy en problemas, pero solo quiero saber qué está pasando aquí. También puedo bloquearme de los directorios:
starkers@ubuntu:~/Desktop$ mkdir foobs
starkers@ubuntu:~/Desktop$ sudo chmod 777 -R foobs
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
[sudo] password for starkers: <the only password I've ever created on this machine>
starkers@ubuntu:~/Desktop$ cd foobs
bash: cd: foobs: Permission denied
Estoy un poco confundido. ¿Cómo puedo encerrarme así? Creo que sudo
es el comando de teclado aquí. Pero estoy haciendo el foobs
archivo lo más abierto posible chmod
, ¿por qué me bloquea?
chmod -R 777 whatever
, a menos que quiera causar un gran riesgo de seguridad.666
?chmod
que solo está cambiando los archivos que pretendía./var/lib/sudo
está configurado para escribir en el mundo. Esto no debería estar sucediendo y debería intentar averiguar por qué sucedió.Respuestas:
Por defecto, la cuenta de superusuario (
root
) está deshabilitada y no tiene ninguna contraseña. Puede crear uno ejecutando:Luego podrá iniciar sesión como root ejecutando
su
esta contraseña.En cuanto a
chmod
, el comando correcto sería:También puedes usar:
para iniciar sesión como root utilizando su contraseña (sin crear una contraseña de root como se describe anteriormente).
fuente
sudo su
. Esto también le otorga derechos permanentes en la terminal.sudo su
, ya que dañará el medio ambiente y las cosas se romperán. en lugar de usarsudo -i
.1. ¿Por qué no tienes una contraseña de root?
Mientras que usted puede crear una contraseña para la cuenta de superusuario lo que le permite conectarse como root con
su
, vale la pena mencionar que esta no es la forma habitual de hacer las cosas con Ubuntu (o cada vez más, otras distribuciones también). Ubuntu optó por no dar un nombre de usuario y la contraseña root de forma predeterminada por una razón. En cambio, un defecto de instalación de Ubuntu usarásudo
para dar privilegios de superusuario. En una instalación de Ubuntu por defecto la persona que instaló el sistema operativo se da "sudo" permiso de forma predeterminada.Cualquier persona con permiso total "sudo" puede llevar a cabo algo "como superusuario" por dejar pendiente con anterioridad
sudo
a su mando. Por ejemplo, para ejecutarapt-get dist-upgrade
como superusuario, se puede utilizar:Verá este uso de sudo prácticamente en cualquier lugar donde lea un tutorial sobre Ubuntu en la web. Es una alternativa a hacer esto.
Con sudo, usted elige de antemano qué usuarios tienen acceso a sudo. No es necesario que recuerden una contraseña de root, ya que usan su propia contraseña. Si tiene varios usuarios, puede revocar uno de acceso de superusuario al retirar su permiso sudo, sin necesidad de cambiar la contraseña de root y notificar a todo el mundo de una nueva contraseña. Incluso puede elegir qué comandos puede ejecutar un usuario usando sudo y qué comandos están prohibidos para ese usuario. Y, por último, si hay una violación de seguridad, en algunos casos puede dejar una mejor pista de auditoría que muestra qué cuenta de usuario se vio comprometida.
Sudo facilita la ejecución de un solo comando con privilegios de superusuario. Con
su
, se deja caer permanentemente a un shell de superusuario que debe salir conexit
ologout
. Esto puede hacer que las personas permanezcan en el shell de superusuario por más tiempo del necesario solo porque es más conveniente que cerrar la sesión y volver a iniciarla más tarde.Con sudo, todavía tiene la opción de abrir un shell de superusuario permanente (interactivo) con el comando:
... y esto todavía se puede hacer sin ninguna contraseña de root, porque
sudo
otorga privilegios de superusuario alsu
comando.Y de manera similar, en lugar de
su -
un shell de inicio de sesión, puede usarsudo su -
o su acceso directosudo -i
.Sin embargo, al hacerlo, solo debe tener en cuenta que está actuando como superusuario para cada comando. Es un buen principio de seguridad no permanecer como superusuario por más tiempo del necesario, solo para disminuir la posibilidad de causar accidentalmente algún daño al sistema (sin él, solo puede dañar los archivos que posee su usuario).
Solo para aclarar, puede , si lo desea, dar al usuario root una contraseña que le permita iniciar sesión como root como se describe en la respuesta de @ Oli, si específicamente desea hacer las cosas de esta manera. Solo quería informarle sobre la convención de Ubuntu de preferir en su
sudo
lugar y hacerle saber que hay una alternativa.2. Los problemas con su comando chmod 777 -R
Su pregunta también tiene una segunda parte: sus problemas con el comando
sudo chmod 777 -R foobs
.En primer lugar, la siguiente advertencia indica un problema de seguridad potencialmente grave en su máquina:
Esto significa que en algún momento, se ha configurado
/var/lib/sudo
para que se pueda escribir en todo el mundo. Me imagino que has hecho esto en algún momento usando un comando comosudo chmod 777 -R /
. Desafortunadamente, al hacer esto, probablemente haya roto todos los permisos de archivos en todo su sistema. Es poco probable que este sea el único archivo importante del sistema cuyos permisos se hayan modificado para poder escribirse en todo el mundo. Esencialmente, ahora tiene un sistema fácilmente pirateable, y la única forma fácil de recuperarlo sería reinstalarlo.En segundo lugar, el comando que estaba usando:
Al manipular archivos dentro de su directorio de inicio, en este caso
~/Desktop
, no debería tener que usarsudo
. De todos modos, todos los archivos que cree en su directorio de inicio deben ser modificables por usted (y si no, está sucediendo algo gracioso).Además, debe ser plenamente consciente de las consecuencias de cambiar los permisos de archivos en masa, como hacerlo de forma recursiva o en una gran cantidad de archivos. En este caso, está cambiando cuidadosamente los permisos de archivos configurados para que se puedan escribir en todo el mundo. Cualquier otro usuario, o cualquier software de servidor con errores en la máquina, puede tener acceso fácil para sobrescribir todos estos archivos y directorios.
Es casi seguro que
chmod 777 -R [dir]
es no una solución apropiada para cualquier problema que estaban tratando de resolver (y como he mencionado anteriormente, hay evidencia de que ha hecho a los archivos del sistema en / var / lib también, y supongo que a mucha otra lugares).Un par de reglas básicas:
Si solo está jugando con sus propios archivos en su directorio personal, escritorio, etc., nunca debería necesitar usar
sudo
derechos de superusuario. Si lo hace, es una señal de advertencia de que está haciendo algo mal.Nunca debe modificar manualmente los archivos del sistema propiedad de los paquetes. Excepción: a menos que lo esté haciendo específicamente en formas documentadas por esos paquetes, como modificando su configuración en
/etc
. Esto también se aplica al cambio de permisos de archivos. Si un tutorial o un intento de solucionar el problema requieresudo
o derechos de superusuario, y no se trata simplemente de un cambio en una configuración en / etc /, es una señal de advertencia de que está haciendo algo mal.fuente
sudo -i
mássudo su
.sudo -i
(osudo su -
) no son universalmente mejores, sino simplemente diferentes: lanzan un shell de inicio de sesión que simula un entorno de inicio de sesión del usuario raíz, que ejecuta, por ejemplo, el.profile
archivo o.login
archivo del usuario raíz. Estos son mejores si desea que el entorno en el shell se parezca más a un shell de inicio de sesión raíz que a un shell interactivo que sucede con privilegios de superusuario. Probablemente sea mejor usar shells basados en inicio de sesión si se usa un shell, pero eso es discutible: el punto de la respuesta es que Ubuntu está diseñado principalmente para usarsudo
comandos de ejecución con privilegios de superusuario.