Perché il chown
command root-only?
Perché gli utenti non root non possono utilizzare chown per distribuire i file di loro proprietà?
Risposta accettata:
La maggior parte dei sistemi unix impedisce agli utenti di "dare via" i file, ovvero gli utenti possono eseguire solo chown
se hanno l'utente di destinazione e i privilegi di gruppo. Da quando ho usato chown
richiede il possesso del file o l'essere root (gli utenti non possono mai appropriarsi dei file di altri utenti), solo root può eseguire chown
per cambiare il proprietario di un file in un altro utente.
Il motivo di questa restrizione è che regalare un file a un altro utente può consentire che accadano cose brutte in situazioni non comuni, ma comunque importanti. Ad esempio:
- Se un sistema ha le quote disco abilitate, Alice potrebbe creare un file scrivibile da tutto il mondo in una directory accessibile solo a lei (in modo che nessun altro possa accedere a quel file scrivibile da tutto il mondo), quindi eseguire
chown
per rendere quel file di proprietà di un altro utente Bill. Il file verrebbe quindi conteggiato sotto la quota del disco di Bill anche se solo Alice può utilizzare il file. - Se Alice regala un file a Bill, non c'è traccia che Bill non abbia creato quel file. Questo può essere un problema se il file contiene dati illegali o comunque compromettenti.
- Alcuni programmi richiedono che il loro file di input appartenga a un particolare utente per autenticare una richiesta (ad esempio, il file contiene alcune istruzioni che il programma eseguirà per conto di quell'utente). Questo di solito non è un progetto sicuro, perché anche se Bill ha creato un file contenente istruzioni sintatticamente corrette, potrebbe non aver intenzione di eseguirle in quel particolare momento. Tuttavia, consentire ad Alice di creare un file con contenuto arbitrario e averlo preso come input da Bill può solo peggiorare le cose.