Para aclarar un poco: no hay "comandos sudo", solo hay comandos que necesitan privilegios de root para funcionar correctamente y sudo
es el comando para obtenerlos para un comando: sudo
simplemente ejecuta el comando dado como root (lee "sudo" como el imperativo oración "superusuario, ¡haz algo!"). Las reglas sobre qué usuarios pueden hacer esto están escritas en /etc/sudoers
. En una instalación predeterminada de Raspbian, el usuario predeterminado "pi" tiene sus permisos de esta línea:
pi ALL=(ALL) NOPASSWD: ALL
Significa: "El usuario 'pi' en TODOS los hosts puede cambiar a TODOS los usuarios y NO tiene que escribir su PASSWD cuando usa TODOS los comandos (léase: cualquiera)". (Utilicé una gramática loca aquí para retener el orden de la línea ... una nota sobre por qué hay una manera de distinguir los hosts: de esta manera, el mismo archivo sudoers se puede distribuir a varias máquinas en una red para que el administrador de la red tenga menos trabajo) .
Puede ser que poder ejecutar comandos usando sudo sin emitir una contraseña de administrador es el punto por el que cree que es peligroso usar sudo a través de SSH (no he oído hablar de un problema general al hacerlo ... así que podría explicar a qué peligro te refieres exactamente?
Seguro que podrías tener múltiples usuarios con diferentes permisos. Pero me temo que usar sudo sigue siendo la mejor manera de administrar estos permisos.
Entonces, espero que esta pequeña receta sea lo que necesitas:
$ sudo adduser admin
Esto creará un usuario "admin", solicitará una contraseña, creará su directorio personal, etc.
$ sudo adduser admin sudo
$ sudo adduser admin adm
Esto colocará al usuario "admin" en los grupos de usuarios "sudo" y "adm". Y dado que los permisos se administran en Linux al agregar usuarios a los grupos de usuarios, esto le da al usuario "administrador" todos los privilegios y permisos que necesita. Hay una línea /etc/sudoers
que permite a cualquier usuario que se encuentre en el grupo de usuarios "sudo" ejecutar cualquier comando como root; y este privilegio es lo que necesitamos para un usuario administrador (agregarlo a "adm" le permite leer algunos archivos de registro /var/log
sin usar sudo
y algunas otras cosas). Aún debe usarlo sudo
cuando haya iniciado sesión como administrador, pero ahora sudo solicita una y otra vez la contraseña del administrador cada vez que no usó sudo durante aproximadamente cinco minutos.
Ahora cierre sesión e inicie sesión como usuario "admin". Comprueba si
$ sudo apt-get update
$ sudo apt-get upgrade
trabajos. Si lo hace, puede revocar algunos privilegios del usuario "pi", porque ahora está seguro de que su usuario administrador tiene los privilegios correctos:
$ sudo deluser pi sudo
$ sudo deluser pi adm
Esto arroja al usuario "pi" fuera del grupo de usuarios "sudo".
$ sudo visudo
Esto iniciará un editor que le permite editar /etc/sudoers
. Coloque una etiqueta hash ( #
) antes de la línea que comienza con "pi", coméntela (o simplemente elimínela). Luego guarde y salga del editor, visudo volverá a cargar las reglas de privilegio inmediatamente. Ahora el usuario "pi" ya no puede usar sudo.
Después de eso, puede volver a iniciar sesión como usuario "pi". Si alguna vez desea cambiar al administrador por algunos comandos, use su
("cambiar usuario"):
$ su - admin
Si desea agregar más usuarios: use el sudo adduser <name>
anterior, luego verifique la lista de grupos de usuarios que tiene el usuario "pi":
$ groups pi
pi : pi dialout cdrom audio video plugdev games users netdev input
Use sudo adduser <username> <groupname>
para agregar a su nuevo usuario a varios de estos grupos de usuarios, permitiéndole usar audio, video acelerado, usar dispositivos conectables, etc. Si no está seguro, agréguelo a todos estos grupos de usuarios (¡pero no a "sudo"!).