Unix : comment protéger ses dossiers ?

Arthas

Membre confirmé
20 Avril 2003
31
0
Bonjour à toute la communauté Unix de Mac OS !

Etant débutant sur Unix, je réclame votre aide !

Comment se fait-il qu'en supprimant les autorisations rwx d'un dossier pour tout le monde (utilisateur, groupe et autres), je puisse quand même modifier le nom du dossier et le placer à la corbeille ?
La même chose se produit lorsque je me log sur un autre compte !

Connaitriez vous une commande plus puissante que chmod ?
L'idéal serait qu'en voulant changer le nom du dossier et en voulant le placer à la corbeille, mon password me soit demandé !

Merci d'avance pour vos réponses !
 
Bonjour Arthas,

Il y a déjà un thread ouvert sur un sujet similaire, mais en mode graphique (cf forum mac os x).
Sinon, sache que les modifications d'autorisation n'agissent pas sur la suppression de fichier avec la commande "rm". Si tu souhaite interdire un peu plus qu'avec les modifications d'autorisations, tu peux utiliser la commande "chflags" (change flags) de la manière suivante (file est le nom du fichier que tu souhaites protéger):

<font class="small">Code:</font><hr /><pre>
% chflags uchg file
</pre><hr />

"uchg" pour "user change".
Une fois cette commande prise en compte, tu ne pourras plus modifier le fichier file, quelles que soit les autorisations d'accés (les flags l'emportent sur les autorisations). Cela signifie que tu ne pourras pas l'écraser, mais tu ne pourras pas non plus le modifier, ni créer de copies ou de liens. Toutefois, quelles que soit les autorisations pour ce fichier, tu pourras le lire (les flags le permettent, et ils prennent le dessus sur les autorisations...)
Pour retirer le flags "uchg", tu tapes la commande suivante:

<font class="small">Code:</font><hr /><pre>
% chflags nouchg file
</pre><hr />

"nouchg" pour "no user change"

Par contre, un fichier protégé par des flags "user" pourra être modifié avec le root (sudo...).

Si tu souhaites protéger totalement un fichier, comme peuvent l'être certains fichiers système, tu peux utiliser la commande chflags avec le qualificatif "schg" pour "system change" (system c'est pour le root):

<font class="small">Code:</font><hr /><pre>
% chflags schg file
</pre><hr />

Alors là, ton fichier sera complètement intouchable (pas de sudo qui ne tienne...), et tellement intouchable que tu ne pourras même pas utiliser la commande "chflags noschg file" pour retirer la protection
wink.gif

Pour retirer la protection, il te faut redémarre un single-user mode pour effectuer cette commande "chflags noschg file".
Attention donc à l'utilisation de chflags avec schg.

Autre remarque: ce qui est marrant, c'est qu'en mode graphique tu pourras modifier un fichier protéger par chflags (on te demanderas si tu souhaites écraser le fichier ou non...)
Toutefois, si tu protège également de répertoire (avec chflags) dans lequel vit ton fichier à protéger, alors là il ne sera plus possible de le modifier.
wink.gif


vn
 
Bonjour Vnsullivan !

Merci à toi pour ton exposé très complet sur la commande "chflags". J'arrive dorénavant à verrouiller mes fichiers !
wink.gif
 
le fait que tu puisses détruire ton dossier ou le renommer est normal car tu es le pocesseur du dit dossier

et le dossier ou ce trouve ce dossier tu peux ecrire

chown root:wheel ton dossier et tu verras que ca change tout

attention avec les change flags

autres users normal c'est le problem du groupe staff
c'est une bidouille d'apple pas formidable

tu peux constater que tu as le droit de créer des dossier sur ton /
par le finder

pourtant celui ci appartient a admin
alors le user default navigue entre le group admin et staff

c'est pour ca qu'il y avait en autre de gros soucis avec sendmail

 
Avec un compte administrateur, on peut toujours supprimer les fichiers, même si ceux-ci appartiennent à root: le terminal propose le message "override ... root/whell ..." et alors on peut supprimer le fichier en répandant "yes".
Ceci n'est pas possible avec chflags.
wink.gif


vn