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, 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. El paquet doas instal·la 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 update
Això 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 comprovar 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 johnsmith pertany al grup updaters i executa el següent, tenim
> 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