| |
Tipus | programari de seguretat, eina de línia de comandaments i programari lliure i de codi obert |
---|---|
Versió estable | |
Llicència | llicència ISC |
Característiques tècniques | |
Sistema operatiu | Unix-like |
Escrit en | C |
Equip | |
Creador/s | Robert Coggeshall (en) i Cliff Spencer (en) |
Desenvolupador(s) | Todd C. Miller (en) |
Més informació | |
Lloc web | sudo.ws (anglès) |
Stack Exchange | Etiqueta |
| |
El programa sudo (de les sigles en anglès de superuser -o substitute user- do) i és una utilitat dels sistemes operatius tipus Unix, com Linux, BSD, o Mac OS X, que permet als usuaris executar programes amb els privilegis de seguretat d'un altre usuari (normalment l'usuari root) de manera segura. S'instal·la per defecte a /usr/bin.
sudo va ser escrit originalment per Bob Coggeshall i Cliff Spencer el 1980, en el departament de ciències de la computació de la Universitat Estatal de Nova York. La versió actual la manté el desenvolupador d'OpenBSD Todd C. Miller, i es distribueix sota una llicència BSD.
En 1985 es va publicar en el grup de notícies net.sources una versió millorada acreditada a Phil Betchel, Cliff Spencer, Gretchen Phillips, John LoVerso i Don Gworek. Garth Snyder va publicar una altra versió millorada a l'estiu de 1986 i durant els següents cinc anys va ser mantingut amb la col·laboració de moltes persones, incloent Bob Coggeshall, Bob Manchek, i Trent Hein.
En 1991 Dave Hieb i Jeff Nieusma van escriure una nova versió amb un format millorat per al fitxer /etc/sudoers sota contracte amb l'empresa consultora The Root Group, versió que posteriorment va ser publicada sota els termes de la Llicència Pública General de \GNU (GNU/GPL).
Des de 1996 el projecte és mantingut per Todd Miller amb la col·laboració de Chris Jepeway i Aaron Spangler.
Els usuaris han de confirmar la seva identitat en executar sudo donant la seva pròpia contrasenya abans d'executar el programa requerit. Una vegada s'ha autentificat l'usuari, i si l'arxiu de configuració /etc/sudoers permet donar a l'usuari accés a l'ordre requerida, el sistema ho executa i ho registra.
L'arxiu de configuració /etc/sudoers especifica quins usuaris poden executar certes commandes en nom de quins altres usuaris. Com sudo és molt estricte amb el format d'aquest arxiu, i qualsevol error podria causar problemes seriosos, existeix la utilitat visudo; aquesta permet a l'usuari root editar l'arxiu i després revisar la seva correcció abans de guardar-lo.
Un exemple de consola, on l'usuari no té accés:
[usuari@delamaquina]$ sudo emacs /etc/fstab
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:
#1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility.
Password: usuari is not in the sudoers file. This incident will be reported.
(Esperem que hagi rebut el típic sermó de l'Administrador del Sistema. Normalment es redueix a aquestes tres coses:
#1) Respecti la privadesa dels altres. #2) Pensi abans d'escriure. #3) Un gran poder comporta una gran responsabilitat.
Contrasenya: usuari no existeix a l'arxiu sudoers. Aquest incident serà reportat.
Es mostra a continuació el registre d'aquest intent fallit, i d'un de reeixit posterior, després d'haver afegit a usuari a /etc/sudoers:
[usuari@delamaquina]$ sudo tail /var/log/auth.log Aug 5 06:00:28 localhost sudo: usuari : user NOT in sudoers; TTY=pts/1; PWD=/home/usuari; USER=root; COMMAND=/usr/bin/emacs /etc/fstab Aug 5 06:01:15 localhost su[15573]: (pam_unix) session opened for user root by usuari(uid=1000) Aug 5 06:02:09 localhost sudo: usuari : TTY=pts/1; PWD=/home/usuari; USER=root; COMMAND=/usr/bin/emacs /etc/fstab Aug 5 06:02:49 localhost suo: usuari : TTY=pts/1; PWD=/home/fusuari; USER=root; COMMAND=/usr/bin/tail /var/log/auth.log
Els sistemes operatius Ubuntu i Mac OS X forcen a fer tot accés administratiu per mitjà de sudo, perquè la contrasenya de root està desactivada per defecte; encara que es pot activar amb ajuda del programa passwd a Ubuntu, i Utilitat de Directoris en OS X.
sudo no registra els programes que s'escriguin en un intèrpret de comandes. Per exemple, si un usuari pot accedir a un intèrpret per mitjà de sudo i executa sudo -s, cap de les comandes que s'hi escriguin seran registrades. Per a poder registrar comandes dins d'un intèrpret de comandes, sudo ha de ser usat juntament amb una altra eina de seguretat, com ara sudosh, que li donarà a l'usuari un intèrpret amb registre.
En un entorn gràfic, s'usen interfícies gràfiques com kdesudo o gksudo per a executar aplicacions administratives, tals com Adept o Synaptic, o en Mac OS X, Software Update.