GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come rendere l'account utente di sola lettura in CentOS/RHEL 7

Domanda :Come creare un account utente che non può scrivere su nessun file sul sistema? In altre parole, come creare un account utente di sola lettura in CentOS/RHEL 7?

Linux non fornisce una classificazione degli account a livello di ruolo. L'autorizzazione di accesso è controllata a livello di I-node, il che implica le autorizzazioni per ogni singolo file o directory separatamente.

Se possiamo riformulare leggermente il problema, ci sono almeno due tecniche che possono fornire l'operazione desiderata. Invece di pensare in termini di account utente, pensa in termini di file e directory. Questo ci consente alcuni metodi alternativi per ottenere più o meno lo stesso risultato. Ciascun elemento di seguito mostra un'implementazione alternativa che fornisce una protezione leggermente diversa che può essere utile in alcuni casi d'uso.

Crea un account anonimo non privilegiato

Ogni file o directory in Linux ha tre serie di autorizzazioni di lettura/scrittura/esecuzione, una per il proprietario del file, altri utenti nello stesso gruppo del proprietario originale e tutti gli altri. È possibile creare un nuovo account con un ID utente e un ID gruppo univoci e questo nuovo account può essere utilizzato come account di sola lettura. Poiché l'account non possiede file al di fuori della sua home directory, l'unica autorizzazione di accesso sarebbero le autorizzazioni "altre", che in genere omettono l'accesso in scrittura.

# useradd -c 'Mostly R/O Account' roaccount

Il roaccount avrà un ID utente e un ID gruppo univoci assegnati, che obbliga qualsiasi file al di fuori della sua home directory a essere controllato dalle "altre" autorizzazioni di accesso. L'O/S ha già un account con privilegi minimi, ma questo account è trattato in modo speciale dal sistema. Si consiglia un account separato per l'utilizzo R/O.

Il difetto in questo schema è che si basa su ogni file e ogni directory sul server e sull'archiviazione per avere i suoi "altri" permessi impostati correttamente. Questo può essere fatto manualmente o impostando la umask del processo di creazione su almeno 0002 (che blocca l'impostazione degli "altri" permessi di scrittura).

Ricevi una notifica quando vengono scritti determinati file.

Se l'obiettivo è determinare tutti i file scritti da un determinato utente, lo strumento auditctl può essere utile. È possibile impostare un controllo sulla chiamata di sistema di scrittura che si attiva quando eseguita da un particolare utente. Ad esempio un'impostazione:

# auditctl -a always,exit -S write -F auid=1000

attiverebbe una voce di traccia di controllo ogni volta che l'ID utente 1000 scrive su qualsiasi file. Il sottosistema della pista di controllo è abbastanza espressivo nelle condizioni che possono essere espresse.

Trova più documentazione nella pagina man di audit.rules.

# man audit.rules

Utilizza gli elenchi di controllo di accesso (ACL) per ignorare le autorizzazioni.

Alcuni gestori di filesystem supportano elenchi di controllo di accesso (ACL) che sono autorizzazioni più dettagliate di quelle consentite dal proprietario/gruppo/altre divisioni. Singoli file o directory possono utilizzare un ACL per selezionare un determinato insieme di utenti, non necessariamente nello stesso gruppo, e concedere solo a quegli utenti le autorizzazioni di accesso ai file desiderate.

Ad esempio, vogliamo fornire a utenteA, utenteB e utenteC l'accesso in sola lettura alla directory /file-segreti/ e sotto. Possiamo farlo in questo modo:

# setfacl -Rd -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files
# setfacl -R  -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files

La prima riga imposta un ACL predefinito che si applicherà a tutti i nuovi file o directory creati in /secret-files in futuro. Il secondo file applica l'ACL a qualsiasi contenuto esistente nella struttura /secret-files e sotto.

Per maggiori dettagli su questa funzione, controlla la pagina aclman.

# man acl


Cent OS
  1. Come ridurre il filesystem di root su CentOS / RHEL 6

  2. Come eseguire rsyslog come utente non root in CentOS/RHEL 7

  3. Come rendere conforme a CentOS/RHEL 7 FIPS 140-2

  4. CentOS / RHEL:come aggiungere file di scambio

  5. Come aggiungere le impostazioni internazionali su CentOS/RHEL 8

Come abilitare Kdump su RHEL 7 e CentOS 7

Come avviare il server RHEL 7 / CentOS 7 in modalità utente singolo

Come avviare il server CentOS 8 / RHEL 8 in modalità utente singolo

Come installare e utilizzare Fail2ban su RHEL 8 / CentOS 8

Come creare un utente Sudo in RHEL, CentOS, Rocky e AlmaLinux

Come installare Parallels Plesk Panel su CentOS e RHEL 8