IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Nastavení práv uživatele

Aktivity
Avatar
Go
Člen
Avatar
Go:14.1.2023 10:09

Mohl by mi někdo poradit s nastavením práv k adresářům?

Mám stroj s nainstalovanou serverovou verzí Debianu, ke kterému js připojen externí disk (/media/EXT/), na kterém je adresář /media/EXT/MEDIA. Nyní potřebuji k adresáři přiřadit uživatele s jejich právy, což se mi zdánlivě daří, ale ve finále to nefunguje.

Zkusil jsem: Přečetl jsem několik článků o nastavování práv uživatelů k adresářům, částečně jsem je pochopil, ale nenapadá mě návrh a kombinatorika. Proto jsem se rozhodl jít cestou ACL, které mi připadá jednodušší.

Vytvořil jsem skupinu "media" a do této skupiny jsem přiřadil uživatele (příkaz id "nazev_uzivatele" mi vypíše skupiny, jejichž je součástí a nyní je u těchto uživatelů i tato skupina uvedena.

root@SERVER:/home/gooo# id media
uid=1001(media) gid=1001(media) groups=1001(media),100(users)
root@SERVER:/home/gooo# id minidlna
uid=104(minidlna) gid=111(minidlna) groups=111(minidlna),1001(media)

Pomocí příkazu setfacl se pokouším adresáři /media/EXT/MEDIA (a jeho podadresářům) přiřadit skupinu "media" s právy pro čtení:

setfacl -R -m g:media:r-- /media/EXT/MEDIA

Opět kontrolou zjistím, že se nastavení aplikovalo

root@SERVER:/home/gooo# getfacl /media/EXT/MEDIA
getfacl: Removing leading '/' from absolute path names
# file: media/EXT/MEDIA
# owner: gooo
# group: gooo
# flags: -s-
user::rwx
group::r-x
group:media:r--
mask::r-x
other::rwx

Tím si myslím, že je vše nastaveno. Přesto mi miniDLNA neskenuje žádné média ve složce a stav mi vypisuje nedostatečné práva ve složce s médii:

× minidlna.service - MiniDLNA lightweight DLNA/UPnP-AV server
     Loaded: loaded (/lib/systemd/system/minidlna.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Sat 2023-01-14 01:22:16 CET; 8h ago
   Duration: 117ms
       Docs: man:minidlnad(1)
             man:minidlna.conf(5)
    Process: 2636 ExecStart=/usr/sbin/minidlnad -f $CONFIGFILE -P /run/minidlna/minidlna.pid -S $DAEMON_OPTS (code=exited, status=255/EXCEPTION)
   Main PID: 2636 (code=exited, status=255/EXCEPTION)
        CPU: 76ms

Jan 14 01:22:16 SERVER systemd[1]: Started MiniDLNA lightweight DLNA/UPnP-AV server.
Jan 14 01:22:16 SERVER minidlnad[2636]: [2023/01/14 01:22:16] minidlna.c:670: error: Media directory "V,/media/EXT/MEDIA/MOVIES" not accessible [Permission denied]
Jan 14 01:22:16 SERVER systemd[1]: minidlna.service: Main process exited, code=exited, status=255/EXCEPTION
Jan 14 01:22:16 SERVER systemd[1]: minidlna.service: Failed with result 'exit-code'.

Takže někde dělám chybu, ale se svými znalostmi ji neumím odhalit.

Chci docílit: Chci, mít více uživatelů, kteří mají do adresáře plný přístup (čtení i zápis) a chci mít několik uživatelů, kteří budou mít k adresáři omezený přístup (pouze čtení).

 
Odpovědět
14.1.2023 10:09
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Go
Atrament:14.1.2023 12:33

acl je na tohle zbytečné, chybu děláš v tom že máš na tom adresáři nastavené owner a group na gooo, potřebuješ to mít nastavené na media a zajistit aby minidlna běželo buď přímo pod uživatelem 'media' a nebo aspoň takovým uživatelem, který je ve skupině 'media'.

 
Nahoru Odpovědět
14.1.2023 12:33
Avatar
Go
Člen
Avatar
Odpovídá na Atrament
Go:16.1.2023 7:22

Jak bez ACL realizovat tuto situaci:

Uživatelé:

  • Uživatel 1
  • Uživatel 2
  • Uživatel 3
  • Uživatel 4
  • Uživatel 5

Potřebuji, aby do adresáře měli práva:

  • Plný přístup: Uživatel 1, Uživatel 2
  • Omezený přístup: Uživatel 3, Uživatel 4
  • Zakázaný přístup: Uživatel 5

V tuto chvíli to řeším bez ACL, ale musel jsem se spokojit s variantou, kdy má plný přístup pouze Uživatel 1 (majitel) a omezený přístup Uživatel 2, 3 a 4 (skupina) a pro všechny ostatní odmítnutí (případně skupině uživatelů 2,3 a 4 nedám omezený přístup, ale plný).

Prostě dvě skupiny s rozdílnými právy k jednomu adresáři neudělám. Mi přitom připadá logické mít u každého adresáře možnost tří skupin (dle třídy oprávnění) a do každé skupiny jen nasypat ty uživatele, které zvolím.

 
Nahoru Odpovědět
16.1.2023 7:22
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Go
Atrament:16.1.2023 10:44

Aha to je ale výrazně komplikovanější situace, než jak jsem to prve pochopil, potom to acl smyl dává.

Ty píšeš

Pomocí příkazu setfacl se pokouším adresáři /media/EXT/MEDIA (a jeho podadresářům) přiřadit skupinu "media" s právy pro čtení:

(ve skutečnosti, je to tak, že ty povoluješ skupině media čtení na tom adresáři, jenom takové upřesnění), ale pokud to minidlna neběží po takovým uživatelem, tak to fungovat nebude.

Samotné nastavení uživatelů by mělo být triviální, místo skupin nastavuj práva přímo pro uživatele:

# setfacl -R -m u:uzivatel1:rw- /media/EXT/MEDIA  #plný přístup pro uzivatel1
# setfacl -R -m u:uzivatel3:r-- /media/EXT/MEDIA  #omezený přístup pro uzivatel3
# setfacl -R -m u:uzivatel5:--- /media/EXT/MEDIA  #žádný přístup pro uzivatel5
Editováno 16.1.2023 10:44
 
Nahoru Odpovědět
16.1.2023 10:44
Avatar
Go
Člen
Avatar
Odpovídá na Atrament
Go:16.1.2023 15:47

Ano, možná se zbytečně snažím řešit skupinami a definování přímo uživatele je možná vhodnější. Otestuji a dám vědět.

Děkuji

 
Nahoru Odpovědět
16.1.2023 15:47
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.