Dar permisos de root a usuario normal
En esta entrada pretendo mostrar como hacer que un usuario normal, tenga todos los privilegios como root. No es recomendable esto, (pero teniendo en cuenta que en varios hilos se ha tocado el tema, pues aprovecho y lo pongo acá) pues es potencialmente peligroso, ya que un dedo mal metido puede arruinar todo, pero quien quiera arriesgarse, adelante.
Hacer el usuario miembro del grupo root
Esto se hace en el fichero /etc/passwd, el usuario normal es:
aliens:x:1000:1000:aliens capote zumaquero,,,:/home/aliens:/bin/bashquitan los uid 1000 y lo pasan a 0 que es el uid de root, quedando de la manera siguiente:
aliens:x:0:0:aliens capote zumaquero,,,:/home/aliens:/bin/bashAntes...
# nano /etc/passwd
[...]
saned:x:106:116::/home/saned:/bin/false
hplip:x:107:7:HPLIP system user,,,:/var/run/hplip:/bin/false
aliens:x:1000:1000:aliens capote zumaquero,,,:/home/aliens:/bin/bash
ntp:x:108:117::/home/ntp:/bin/false
[...]Después
# nano /etc/passwd
[...]
saned:x:106:116::/home/saned:/bin/false
hplip:x:107:7:HPLIP system user,,,:/var/run/hplip:/bin/false
aliens:x:0:0:aliens capote zumaquero,,,:/home/aliens:/bin/bash
ntp:x:108:117::/home/ntp:/bin/false
[...]Añadir el usuario al grupo root
Vamos al fichero /etc/group, el grupo root viene por defecto como:
root:x:0: le añadimos el usuario.
root:x:0:aliensEditando /etc/sudoers
Luego vamos al fichero /etc/sudoers y agregamos los comandos que deseemos ejecutar.
aliens ALL=(ALL) ALL
aliens ALL= NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/halt, /sbin/fdisk, /sbin/ifup, /sbin/ifdown, /sbin/init, /sbin/sulogin
aliens ALL= NOPASSWD: /usr/bin/apt-get update
aliens ALL= NOPASSWD: /usr/bin/apt-get install
aliens ALL= NOPASSWD: /usr/bin/apt-get upgrade
aliens ALL= NOPASSWD: /usr/bin/apt-get dist-upgrade
aliens ALL= NOPASSWD: /usr/bin/apt-get purge
aliens ALL= NOPASSWD: /usr/bin/apt-get remove
aliens ALL= NOPASSWD: /usr/bin/apt-get autoremove
aliens ALL= NOPASSWD: /usr/bin/apt-get clean
aliens ALL= NOPASSWD: /usr/bin/apt-get autoclean
aliens ALL= NOPASSWD: /usr/bin/apt-cache
aliens ALL= NOPASSWD: /usr/bin/apt-get dselect-upgrade
aliens ALL= NOPASSWD: /usr/bin/aptitude update
aliens ALL= NOPASSWD: /usr/bin/aptitude install
aliens ALL= NOPASSWD: /usr/bin/aptitude dist-upgrade
aliens ALL= NOPASSWD: /usr/bin/aptitude safe-upgrade
aliens ALL= NOPASSWD: /usr/bin/aptitude full-upgrade
aliens ALL= NOPASSWD: /usr/bin/aptitude show
aliens ALL= NOPASSWD: /usr/bin/aptitude clean
aliens ALL= NOPASSWD: /usr/bin/aptitude autoclean
aliens ALL= NOPASSWD: /usr/bin/aptitude remove
aliens ALL= NOPASSWD: /usr/bin/aptitude purge
aliens ALL= NOPASSWD: /usr/bin/aptitude dselect-upgrade
aliens ALL= NOPASSWD: /usr/bin/aptitude searchListo, de esta manera tienen su usuario como root o superusuario.
Alerto: Como dije anteriormente no es aconsejable, pero bueno, quien quiera arriesgarse que lo haga, yo sigo con el viejo su.

Muy bueno tu aporte y más bueno aún que hayas recalcado que esto no es recomendable. Yo misma me he sentido tentada a hacer mi usuario parte de root, pero en verdad siempre se me quitan las ganas y sólo le doy privilegios de root a unas pocas aplicaciones... bueno, para ser más específica a una sola.
Dos cosas que no entiendo.
Si usas root y su ¿para qué necesitas editar sudoers (si no usas sudo)?
Se puede editar sudoers para que otro usuario tengo algunos permisos (a veces es hasta necesario) pero... NOPASSWD?
Yo cambiaría el título por "Como hacer un boquete en la seguridad de Debian del tamaño de un planeta".
En estos casos es mejor usar sudo, por ejemplo si quieres abrir terminal de root sin que pida contraseña se requiren dos pasos
1 crea un lanzador y pones
Tipo--> Aplicación en terminal
Nombre--> Terminal root
Comando--> sudo /usr/bin/x-terminal-emulator
2 Para que no te pida contraseá al ejecutar el lanzador y suponiendo que sea para el usuario "pepe" pones
su
echo 'pepe ALL=NOPASSWD: /usr/bin/x-terminal-emulator' >> /etc/sudoers
Si quires mas seguridad, en vez de ALL pone el nombre de tu host
Y así con cada una de la sentencias que permisos de usuario , a continuación dejo mi lista personal de todo lo que tengo en el sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/aptitude' >> /etc/sudoersecho 'pepe ZXDSL831I=NOPASSWD: /usr/bin/apt-get' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/apt-file' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /bin/tar' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /bin/rm' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/bleachbit' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/sbin/synaptic' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/update-manager' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /bin/chown' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/unp' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/updatedb' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /sbin/fsck' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/gedit' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /sbin/init' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/x-terminal-emulator' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/sbin/update-grub' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/sbin/update-grub2' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/sbin/gdmsetup' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/unetbootin' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /bin/mv' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /bin/ln' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/nautilus' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /bin/bash' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /bin/dash' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /bin/sh' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/killall' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/sbin/gparted' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/make' >> /etc/sudoers
echo 'pepe ZXDSL831I=NOPASSWD: /usr/bin/make-kpkg' >> /etc/sudoers
A ver, yo no tengo esta configuracion montada, cuando dije esto
[...] yo sigo con el viejo su.
me referia a que prefiero la vieja escuela, emplear su, que me pida el passwd y entonces entrar como root. En lo personal no me gusta arriesgar la seguridad de mis ficheros, por eso dije que no era aconsejable hacerlo.
También esta claro que teniendo sudo, ¿para que emplear su?, pudiendo hacer aliens ALL = /usr/bin/sudo y pasar entonces el resto de las aplicaciones que se deseen, pero bueno, esta entrada se trata de que el usuario en su totalidad tenga permisos de superusuario sin emplear sudo.
Gracias por sus comentarios
[...] esta entrada se trata de que el usuario en su totalidad tenga permisos de superusuario sin emplear sudo.
Gracias por sus comentarios
?
ahora me perdí, pensé que despues del comentario de @blackhalo explicarías el porque, pero es como que contradice configurar sudoers y los permisos, yo configuraría o uno u otro. en fin, me parece que para tener acceso total basta con loguearse como root sea con su o sudo, y hacer todo el desastre necesario, apagar la maquina, como no volverá arrancar, reinstalar y tener cuidado la proxima.
saludos
Si voy a realizar varias tareas como root:
$ su -Password: ****
# tarea 1 .....
# tarea 2 .....
# etc. etc. ...
# exit
$
Si voy a realizar sólo una tarea como root:
$ su -c "/etc/init.d/networking restart"Password: ****
$
Saludos,
Sidd.
Si voy a realizar varias tareas como root:
$ su -Password: ****
# tarea 1 .....
# tarea 2 .....
# etc. etc. ...
# exit
$
Si voy a realizar sólo una tarea como root:
$ su -c "/etc/init.d/networking restart"Password: ****
$
Saludos,
Sidd.
claro, pero cuando requieres ejecutar un script en donde hay una mezcla de sentencias que deben ejecutarse como root y como usuario, la cosa se complica, para salvar estas situacuines, lo mejor es emplear sudo , pero configurando el sudoers en forma adecuada , para mi sudo es un adelamto y está en uno el saber usarlo para aprovechar sus ventajas sin que esto implique necesariamente una pérdida en la seguridad, conozco un caso en que cansado de introducir contraseñas complejas terminó en cambiar la mismas poniendo a la de roor con 333333 y a la de usuario con 333.
no es lo mismo ser un usuario doméstico que alguien que tiene a su cargo gestionar la red de espóas en el extramjero, los requerimientos de seguridad son muy distintos, por lo que no es razonable emplear los mismos criterios para todas las situaciones.
Se puede editar sudoers para que otro usuario tengo algunos permisos (a veces es hasta necesario) pero... NOPASSWD?
Secundo esta postura. Lo del NOPASSWD es muy fuerte. Además, me han comentado que, si quieres que un usuario regular pueda ejecutar determinadas tareas como superusuario sin necesidad de darle plenos poderes, probablemente sea mejor emplear "super" en vez de "sudo".
El "super" no me lo he estudiado a fondo, pero, por lo que he visto en su man page, si no lo usas con cuidado puede ser un tanto peligroso. No obstante, también parece útil.
Si quires mas seguridad, en vez de ALL pone el nombre de tu host
¡Exacto! El 99.9% de los ordenadores domésticos se administran de forma local. ¿Para qué querría alguien normal permitir que se invoque sudo desde un equipo ajeno?
Yo cambiaría el título por "Como hacer un boquete en la seguridad de Debian del tamaño de un planeta".
Lo secundo.