Per creare il collegamento reale alice
avrà bisogno di write+execute
autorizzazioni su target-dir
su tutti i casi. Le autorizzazioni necessarie su target.txt
varierà:
- Se
fs.protected_hardlinks = 1
poialice
richiede la proprietà ditarget.txt
o almenoread+write
autorizzazioni su di esso. - Se
fs.protected_hardlinks = 0
quindi qualsiasi insieme di autorizzazioni andrà bene; Anche 000 va bene.
Questa risposta a una domanda simile conteneva l'informazione mancante per rispondere a questa domanda.
Da http://kernel.opensuse.org/cgit/kernel/commit/?id=800179c9b8a1 [corsivo mio]:
Collegamenti reali:
Sui sistemi che hanno directory scrivibili dall'utente sulla stessa partizione dei file di sistema, una classe di problemi di sicurezza di vecchia data è la corsa basata sul tempo di controllo-tempo di utilizzo basata sul collegamento fisico, più comunemente vista nelle directory scrivibili dal mondo come /tmp . Il metodo comune per sfruttare questo difetto consiste nell'attraversare i limiti dei privilegi quando si segue un dato hardlink (ovvero un processo root segue un hardlink creato da un altro utente). Inoltre, esiste un problema per cui gli utenti possono "bloccare" un file setuid/setgid potenzialmente vulnerabile in modo che un amministratore non aggiorni effettivamente un sistema completamente.
La soluzione è consentire la creazione di collegamenti fisici solo quando l'utente è già il proprietario del file esistente o se ha già accesso in lettura/scrittura al file esistente .