Kali Linux Come posso fare in modo che un file possa essere cancellato solo con privilegi root!??

Stato
Discussione chiusa ad ulteriori risposte.

UltraCode

Utente Bronze
9 Settembre 2016
25
9
0
35
Salve a tutti,
Io vorrei aggiungere ad un file i permessi di root in modo tale che solo e soltanto l'utente con privilegi root possa cancellare tale file.
Ho provato a cercare un po su internet ma nada. Sapreste aiutarmi??
 
Ultima modifica:
Salve a tutti,
Io vorrei aggiungere ad un file i permessi di root in modo tale che solo e soltanto l'utente con privilegi root possa cancellare tale file.
Ho provato a cercare un po su internet ma nada. Sapreste aiutarmi??
strano che su google non hai trovato nulla
http://www.mrwebmaster.it/linux/gestire-permessi-chmod-chown-chgrp_10211.html
edit: errore mio pensavo intendessi non far eliminare il contenuto del file, se vuoi rendere il file non eliminabile usa
Codice:
chattr +i nomefile
ovviamente questo comando va lanciato con i privilegi di root
per rendere il file nuovamente eliminabile (e modificabile)
Codice:
chattr -i nomefile
nb: attenzione che finchè non usi -i neanche l'utente root potrà eliminare il file
 
Ma usare il classico
Codice:
chown root:root nomefile
per dare l'attribuzione di proprietà al root e impostare i permessi a 700
Codice:
chmod 700 nomefile
così dai i permessi di far tutto solo al proprietario (7) agli altri utenti nulla (0) e al pubblico nulla (0).
 
Ma usare il classico
Codice:
chown root:root nomefile
per dare l'attribuzione di proprietà al root e impostare i permessi a 700
Codice:
chmod 700 nomefile
così dai i permessi di far tutto solo al proprietario (7) agli altri utenti nulla (0) e al pubblico nulla (0).
Stefano, in questo modo il file è comunque eliminabile, non permetti di eliminare il contenuto però è eliminabile, prova tu stesso

Inviata da HUAWEI VNS-L31 tramite app ufficiale di Inforge.net
 
C'è anche l'opzione +a di chattr che dovrebbe consentire di editare il file oltre che renderlo non eliminabile..Non sò se sui file funziona io per ora l'ho solo provato su directory
 
Per modificarlo da root devi prima rimuovere l'attributo

Inviata da HUAWEI VNS-L31 tramite app ufficiale di Inforge.net
Si certo.Ma usando, ad esempio, [HASHTAG]#chattr[/HASHTAG] -R +a Documenti la cartella Documenti e le sottocartelle presenti non si possono eliminare manco da root, pero si possono aggiungere altre cartelle o file in Documenti mentre con l'opzione +i no..Pensavo che per i file fosse lo stesso..Ho fatto delle prove e impostando l'argomento +i su un file, e poi aprendolo con l'editor, il pulsante salva è inutilizzabile mentre con l'opzione +a il pulsante si clicca ma non salva, dice che ha solo permessi di lettura..Un bug di chattr? Mah
 
Per quel che è stato detto fino ad ora:
  • chattr +i nomefile: il file diventa immutabile, quindi oltre ad essere incancellabile non può essere nemmeno modificato (a meno di rimuovere la flag, ma è sconveniente).
  • chown root:root nomefile && chmod 700 nomefile: il file non può essere né letto (problema risolvibile) né modificato da chi non è root, ma può essere cancellato.
  • chattr +a nomefile: è consentita scrittura solo in append, puoi aggiungere cose, ma non puoi rimuoverle. Provare per credere, date echo "nuova riga" >> nomefile. Se usate un text editor la questione è un po' più spinosa perché non state facendo un append (a meno che non trovate il modo di dire al text editor cosa deve fare).
Un altra soluzione è quella di utilizzare lo sticky bit (restricted deletation flag or sticky bit): se questa flag è impostata su una directory (sui file non ha effetto), i file in quella directory possono essere cancellati solo dall'owner. Quindi:
Bash:
# setto lo sticky bit
chmod +t directory

# la directory è di root
chown root directory

# il file è di root
chown root directory/file
Adesso chiunque può aggiungere i file in directory, chiunque può modificare/cancellare/rinominare i propri file, solo il root può cancellare/rinominare i file degli altri. L'unico compromesso è lo sticky bit non ha effetto se impostato su un file, quindi bisogna metterlo su una directory.
 
Stato
Discussione chiusa ad ulteriori risposte.