chown - Operazione non consentita


37

Ho effettuato l'accesso come minimo.

Non capisco perché non mi permetta di chown file che possiedo senza privilegi. Ovviamente posso usare sudo, ma mi piacerebbe capire perché? a causa del gruppo www-data?

chown minime:www-data user-functions.php

ls -lh

-rw-r--r--  1 minime minime    24K Jan  6 16:11 user-functions.php

Error:

chown: changing ownership of `user-functions.php': Operation not permitted

Risposte:


51

Gli utenti non privilegiati (non root) non possono chownfile su altri nomi utente. Per utilizzare chown, un utente deve disporre dei privilegi dell'utente di destinazione. In altre parole, rootpuò solo dare un file a un altro utente.

Come spiegato qui (grazie @slhck):

Solo i processi con un ID utente effettivo uguale all'ID utente del file o con privilegi appropriati possono modificare la proprietà di un file. Se _POSIX_CHOWN_RESTRICTED è attivo per il percorso:

  • La modifica dell'ID utente è limitata ai processi con privilegi appropriati.

  • La modifica dell'ID gruppo è consentita in un processo con un ID utente effettivo uguale all'ID utente del file, ma senza i privilegi appropriati, se e solo se il proprietario è uguale all'ID utente del file o (uid_t) -1 e il gruppo è uguale o all'ID gruppo effettivo del processo chiamante o a uno dei suoi ID gruppo supplementari.

La logica alla base è stata ben spiegata da @Gilles in questa risposta Unix e Linux:

Il motivo di questa restrizione è che la distribuzione di un file a un altro utente può consentire che accadano cose brutte in situazioni non comuni, ma comunque importanti. Per esempio:

  • Se un sistema ha le quote disco abilitate, Alice potrebbe creare un file scrivibile in tutto il mondo in una directory accessibile solo da lei (quindi nessun altro potrebbe accedere a quel file scrivibile in tutto il mondo nella directory), e quindi eseguire chown per rendere quel file di proprietà di un altro utente Bill. Il file verrà quindi conteggiato nella 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 determinato utente per autenticare una richiesta (ad esempio, il file contiene alcune istruzioni che il programma eseguirà per conto di tale 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 questo 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.


Grazie @slhck Ho controllato la manpagina e non sono riuscito a trovare una menzione esplicita di questo, risposta aggiornata.
terdon,

grande! molto chiaro ora ... e se minime fa parte del gruppo www-data?

@SandroDzneladze no, devi avere lo stesso ID utente dell'utente che desideri chown.
terdon,
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.