sudo

De Viquipèdia
Dreceres ràpides: navegació, cerca

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.

Història[modifica | modifica el codi]

sudo va ser escrit originalment per Bob Coggeshall i Cliff Spencer al 1980, en el departament de ciències de la computació de la Universitat Estatal de Nova York. La versió actual la manté el desenvoupador 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.

Ús[modifica | modifica el codi]

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.

Intèrpret de comandes[modifica | modifica el codi]

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.

Front-ends[modifica | modifica el codi]

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.