In che modo il sistema di privilegi dei file Unix differisce da quello di Windows?


9

Domanda correlata: in che modo il file system / l'organizzazione Linux differisce da Windows?

Conosco in qualche modo il funzionamento dei privilegi quando si tratta di file e directory: ogni voce ha una proprietà ownere groupproprietà che rappresentano il proprietario del file e il gruppo a cui appartiene il proprietario (correggimi se sbaglio).

In cosa differisce dall'organizzazione delle autorizzazioni nel filesystem NTFS su Windows? Quali sono i vantaggi del sistema di autorizzazioni di Unix rispetto a NTFS?

Risposte:


16

NTFS ha ACE di Windows. Unix utilizza "bit di modalità" su ciascun file.

Su NTFS, ogni file può avere un proprietario e zero o più voci di controllo di accesso a Windows (ACE). Un ACE è costituito da un'entità (utenti e gruppi sono entità), un insieme di operazioni (Leggi, Scrivi, Esegui, ecc.) E se tali operazioni sono consentite o negate. I file possono avere molti ACE. Anche altri oggetti in Windows diversi dai file possono avere ACE, come voci di registro, oggetti stampante e altre cose. Tutti gli ACE vengono presi in considerazione quando si verifica un'operazione sul file. Nega ha la precedenza su consenti.

Gli ACE di Windows supportano l'ereditarietà in cui è possibile impostare un ACE per una directory e farlo propagare automaticamente alle directory di livello inferiore.

I file in Unix hanno un utente proprietario (proprietario) e un gruppo proprietario (gruppo proprietario). Esistono tre "presidi" fissi che sono proprietari, membri del gruppo proprietario e tutti gli altri (alias mondo). Per ogni principale ci sono tre "bit" che coprono le abilità di lettura, scrittura ed esecuzione. (hanno significati diversi per le directory rispetto ai file, vedi questo ). Questi bit determinano chi può eseguire quali operazioni. Questa è chiamata modalità del file ed è integrata nel file (non ci sono ACE separati).

La maggior parte delle volte ti preoccupi delle autorizzazioni "world", ovvero impostare tutti e tre i bit su 0 per "world" significa che nessuno che non è il proprietario o il proprietario del gruppo può fare nulla con il file. Le autorizzazioni Unix funzionano solo sul filesystem, ma poiché la maggior parte degli oggetti viene visualizzata come file, è possibile utilizzare le autorizzazioni per limitare l'accesso a dischi, stampanti, ecc. Le autorizzazioni Unix sono più semplici ma più "grossolane". Le autorizzazioni Unix non supportano l'ereditarietà e non influiranno sulle directory di livello inferiore, ad eccezione dell'autorizzazione di esecuzione per le directory (credo) che fa sì che i file appena creati assumano le autorizzazioni della directory (ma non influisce sui file attualmente creati).

Tradizionalmente i file Unix hanno un singolo proprietario e un singolo gruppo di proprietari. Esistono estensioni di Linux che aggiungono ACE ai file in modo simile a Windows.

Il vantaggio di Unix è solo che un sistema più semplice è di solito più facile da capire e proteggere e velocizza poiché il filesystem non deve recuperare ACE oltre agli inode quando si aprono i file.


4
Questa è l' autorizzazione setgid per le directory e fa sì che i file ereditino il gruppo proprietario, non le autorizzazioni.
Casuale 832,

3
@George: Una cosa che devi ricordare è che il gruppo NON è il gruppo del proprietario, è separato. Vedi chgrp (1).
Ciao,

@ Random832: Grazie per il chiarimento.
LawrenceC,

3
La maggior parte delle distribuzioni al giorno d'oggi include il supporto per elenchi di controllo di accesso (ACL) estesi compilati nei vari filesystem disponibili per impostazione predefinita. Il nome del pacchetto software necessario per accedere e modificare questi è generalmente chiamato aclo faclo qualcosa di simile, con i due programmi nominati setfacle getfaclper modificare o recuperare le impostazioni dell'elenco di controllo degli accessi.
Shadur,

7

Una cosa abbastanza diversa è che "eseguibile" è un'autorizzazione sotto Linux / Unix, non basata sul nome o sull'estensione del file.

Questo è un vantaggio rispetto a Windows, in quanto su Linux puoi assicurarti che qualcosa non venga eseguito rimuovendo le autorizzazioni eseguibili. Le estensioni magiche non contano affatto. Questo è probabilmente uno dei motivi per cui i tradizionali file virus non hanno ottenuto esattamente nulla su Unix e Linux.


2
Windows in realtà ha un'autorizzazione eseguibile, anche se sconfiggono lo scopo impostandolo per impostazione predefinita.
Patch del

1
Anche le estensioni non contano su Windows.
Logan Capaldo,

1
@Logan: In realtà, hanno un significato su Windows. L'estensione del file determina quale programma (i) può essere utilizzato per aprirlo e indica di esplorare che tipo di file è in modo da poter generare le miniature. In quest'ultimo caso, ciò potrebbe potenzialmente sfruttare un bug presente nel generatore di miniature e quindi compromettere un sistema.
Nathan Osman,

1
@George Lo stesso vale per un file manager grafico con un'anteprima dell'unghia del pollice buggy su qualsiasi sistema operativo. Il mio punto era che CreateProcess non dà due spunti se il tuo programma termina in .exe (e questo è facile da vedere eseguendo un programma da cmd.exe), ma in realtà si preoccupa del bit di esecuzione.
Logan Capaldo,

2
@George, proprio come Unix (a meno che tu non voglia iniziare a discutere se la ricerca di uno shebang è "avanzata" o no). Volevo solo chiarire che l'estensione del file non ha nulla a che fare con il modello di sicurezza. Se si contrassegna un eseguibile non eseguibile su Windows, ha lo stesso effetto che ha su un unix.
Logan Capaldo,
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.