Limitare l'accesso ai file solo per l'aggiunta


11

Ho una directory con i file di registro e sto inserendo i registri dallo script avviato dagli utenti. La registrazione con syslog non sembra possibile in questo caso. (rsync non daemon)

Voglio che gli utenti dispongano solo delle autorizzazioni di scrittura sui file di registro. Il problema è che le autorizzazioni di scrittura devono essere ulteriormente limitate, in modo che gli utenti (script) possano solo aggiungere a quei file. Il filesystem sottostante è XFS.

Quanto segue non funziona:

# chattr +a test.log
chattr: Inappropriate ioctl for device while reading flags on test.log

C'è qualche altra soluzione per questo? Grazie per i tuoi suggerimenti.


Sei sicuro che sia XFS? chattr +afunziona per me qui (kernel 3.2). Nota che devi essere root per usare chattr(un $prompt suggerisce non-superutente), anche se riceveresti un messaggio di errore diverso se chattr +afosse supportato e non fossi root.
Stéphane Chazelas,


Quali sono le opzioni di montaggio sulla partizione? Potrebbe forse memorizzarlo utilizzando xattr, che potrebbe richiedere l'opzione di montaggio pertinente? (Anche la socumentazione per XFS non ne parla molto ...)
Gert van den Berg,

Questo è chiuso su San Francisco, quindi lo lascio aperto qui
Michael Mrozek

Risposte:


8

L' chattrutilità è scritta per filesystem ext2 / ext3 / ext4. Emette ioctls sui file, quindi spetta al file system sottostante decidere cosa farne. Il driver XFS nei kernel Linux più recenti supporta lo stesso FS_IOC_SETFLAGSioctl di ext [234] per controllare flag come solo append, ma è possibile che stia eseguendo un kernel più vecchio che non lo fa (CentOS?). Prova invece a utilizzare l' xfs_ioutilità:

echo chattr +a | xfs_io test.log

Si noti che, per XFS come per ext [234], solo root può modificare il flag di sola aggiunta (più precisamente, è necessaria la CAP_LINUX_IMMUTABLEfunzionalità).


1

Hai i permessi per farlo? Da man 1 chattr:

Un file con l'attributo `a 'impostato può essere aperto solo in modalità append per la scrittura. Solo il superutente o un processo che possiede la capacità CAP_LINUX_IMMUTABLE può impostare o cancellare questo attributo.


0

In alternativa, puoi ottenere lo stesso risultato usando SELinux , è probabile che sia abilitato e funzionante se stai usando una distribuzione compatibile con Red Hat. Funziona su ogni filesystem, SELinux impedisce ai processi di eseguire operazioni non consentite.

Sfortunatamente, è necessario scrivere un criterio per l'applicazione per consentire l'accesso a tutte le risorse di sistema, ad eccezione dell'aggiunta a determinati file. Questo può essere un po 'impegnativo se lo fai per la prima volta, ma c'è un vantaggio in questo - ulteriore livello di sicurezza.

Ho un esempio di come scrivere una regola di file di sola aggiunta in questo discorso: https://www.youtube.com/watch?v=zQcYXJkwTns

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.