Traduccions: English - Català
Doas és una utilitat que permet a un compte d'usuari executar ordres com a un altre compte d'usuari. Es pot interpretar com «do it as someone else», per tant doas; però realment el nom fou accidental.
Doas és una adaptació de l'ordre homònima de l'OpenBSD, que és a on primer aparegué. Està pensat com un substitut minimalista del popular sudo, oferint gairebé la mateixa funcionalitat, però amb molt menys codi, i per tant potencialment més segur. A més, l'estructura del seu fitxer de configuració és molt més simple.
Contents
Instal·lació
Doas està disponible en Debian 12.4 (bookworm), instal·lant el paquet doas. Un cop instal·lat podreu fer-lo servir des d'un terminal amb l'ordre doas.
Configuració
Bàsica
El doas recent instal·lat no serveix de res sense el fitxer de configuració. Obtindreu un missatge d'error si l'executeu.
doas: doas is not enabled, /etc/doas.conf: No such file or directory
Haureu de crear, com a administrador, el fitxer /etc/doas.conf, i afegir-hi les regles que vulgueu. Cada regla ocupa una línia. La prioritat de les regles és de sota a dalt; és a dir, la regla que s'aplicarà és l'última satisfeta. Per tant s'han d'escriure les regles més generals al principi, i les regles més específiques al final.
Una regla molt simple en /etc/doas.conf és
permit johnsmith as root
que dona permisos a l'usuari johnsmith per a executar qualsevol ordre del sistema com a l'usuari administrador (root), introduint la seva contrasenya, no la de root. És a dir, que l'usuari johnsmith té de facto permisos d'administrador.
Aquesta regla tan simple consta de tres parts. La primera, acció, en aquest cas permit, però que també pot ésser deny per a denegar permisos en comptes de permetre'ls. Així doncs, si l'última regla del fitxer de configuració és
deny johnsmith as root
l'usuari johnsmith no pot executar absolutament res com a administrador, inclús encara que una regla anterior ho permetés. Això pot ésser útil si volem permetre a tots els membres d'un grup llevat d'un membre en concret.
La segona part, identitat, en aquest cas johnsmith. Pot ésser el nom d'un usuari, d'un grup (adscrivint-hi els dos punts «:» com prefix), o el seu identificador numèric.
La tercera part, objectiu, en aquest cas as root; l'usuari root es pot substituir per qualsevol altre nom d'usuari, grup o identificador numèric d'usuari del sistema operatiu. Aquesta part és opcional, si s'omet, s'interpreta que l'objectiu son tots els usuaris del sistema. Per tant, la regla
permit johnsmith
dona permisos a l'usuari johnsmith per a executar qualsevol ordre com a qualsevol usuari del sistema.
Els comentaris comencen amb coixinets (#) i abasten fins al final de la línia. Podeu trobar més detalls sobre les regles en la seva pàgina de manual doas.conf. Hi ha un fitxer de configuració d'exemple en /usr/share/doc/opendoas/examples/doas.conf que podeu prendre com a punt de partida per a crear el vostre fitxer doas.conf.
És recomanable que després de cada modificació del fitxer de configuració, comproveu que no té cap error sintàctic; vegeu Forma d'ús.
Avançada
Les regles de permisos tenen més opcions que permeten major flexibilitat. L'estructura completa de les regles és
permit|deny [options] identity [as target] [cmd command [args ...]]
i en podeu consultar els detalls en la pàgina de manual doas.conf. Aquí farem un tractament breu.
Opcions
Una de les opcions disponibles és nopass, que evita que doas pregunti la contrasenya a l'usuari. Per exemple
permit nopass johnsmith as root
permet a l'usuari johnsmith executar qualsevol ordre del sistema com a administrador, immediatament, sense contrasenya. Hi ha una alternativa intermèdia entre permit i permit nopass: l'opció persist. Amb aquesta opció doas demanarà la contrasenya a l'usuari només en la primera execució, després no la tornarà a demanar durant una estona.
Altres opcions disponibles son keepenv i setenv. La primera assegura que les variables d'entorn es mantenen quan es crea l'entorn del nou procés. La segona és per eliminar, mantenir o definir variables d'entorn per a l'execució de l'ordre. Per a setenv, la llista de variables es dona dins unes claus {}, totes separades per espais. Amb un signe igual (=) es defineix una variable, amb el nom sol es manté la variable, i amb un signe menys (-) davant la variable aquesta s'elimina.
Restriccions d'ordres i arguments
La part cmd d'una regla permet restringir-la per a permetre només l'execució d'una determinada ordre, potser restringint-ne també els arguments o subordres. Per exemple
permit johnsmith as root cmd apt args update
L'ordre s'escriu darrere de cmd, i els arguments o subordres darrere de args. La paraula clau args sola, sense res darrere, vol dir que l'ordre s'ha d'executar sense cap argument. Aquesta regla d'exemple, permet a l'usuari johnsmith executar com a root només l'ordre apt update. Qualsevol altre subordre o argument addicional, o l'absència d'algun d'ells, donarà com resultat un missatge d'error «Operation not permitted».
Exemple
Aquesta regla d'exemple mostra l'ús de diferents opcions avançades alhora
permit nopass setenv { -http_proxy APT_CONFIG=/etc/apt/apt.conf.d/50appstream } :updaters cmd apt args updateAixò permet a qualsevol membre del grup updaters executar apt update sense contrasenya, alhora que s'elimina la variable d'entorn http-proxy, i es defineix la variable d'entorn APT_CONFIG amb el camí a un fitxer de configuració de l'Apt.
PAM
El paquet doas instal·la un fitxer de configuració bàsica de PAM, en /etc/pam.d/doas. Per tant no és necessari que n'escriviu cap vosaltres.
Forma d'ús
A banda del que s'ha dit en la secció Configuració, l'ordre doas incorpora certa funcionalitat estàndar.
De manera predeterminada, l'ordre doas assumeix que l'usuari objectiu és l'administrador (root). Amb l'opció -u podem definir explícitament l'usuari com a qui volem executar l'ordre. Per exemple
> doas -u juliasmith whoami
intentarà executar l'ordre whoami com a juliasmith. Si juliasmith existeix i tenim permisos per actuar com a ella, es mostrarà el seu nom d'usuari: juliasmith.
Amb l'opció -s podem obrir un intèrpret d'ordres com a l'usuari objectiu. Per exemple
> doas -s
obrirà un intèrpret d'ordres com a administrador (root), ja que és l'usuari objectiu per omissió. Altrament
> doas -u juliasmith -s
obrirà un intèrpret d'ordres com a juliasmith, ja que l'hem definida explícitament com usuari objectiu.
L'opció -n activa el mode no interactiu: si cal demanar contrasenya a l'usuari, doas ho interpretarà com un error. Això vol dir que amb aquesta opció només es poden executar regles del tipus permit nopass.
L'opció -C permet comprobar si un fitxer de configuració té errors de sintaxi. Per exemple, un cop enllestit el vostre fitxer /etc/doas.conf, executeu
> doas -C /etc/doas.conf
Si el fitxer està ben format, no mostrarà res; en canvi si hi ha errors de sintaxi, en mostrarà informació.
Addicionalment, l'opció -C és útil per a fer comprovacions lògiques: donada una ordre i uns arguments, quina regla s'aplicarà, sense realment executar l'ordre. Assumint un fitxer /etc/doas.conf de dues regles com el següent
# Permetre al grup «updaters» executar «apt» com a «root», # però només amb argument «update» permit nopass :updaters as root cmd apt args update # Permetre a l'usuari «johnsmith» executar «apt upgrade» com a administrador permit persist johnsmith as root cmd apt args upgrade
suposant que ho executa johnsmith i que pertany al grup updaters
> doas -C /etc/doas.conf apt update permit nopass > doas -C /etc/doas.conf apt upgrade permit
Això és perquè la primera ordre compleix només la primera regla; en canvi la segona ordre compleix ambdues regles, per tant s'aplica l'última (la segona). Per a qualsevol altre usuari del grup updaters, el resultat hagués sigut permit nopass i deny, respectivament.
Vegeu també
sudo - Una altra utilitat amb el mateix propòsit, més antiga i popular.
Enllaços externs
doas - Pàgina de manual de l'ordre Doas.
doas.conf - Pàgina de manual del fitxer de configuració del Doas.
CategoryRoot | CategorySystemSecurity | CategorySystemAdministration
