#1 Le 20/09/2007, à 01:45
- Dadou
Recherche script pour droit sur dossier
Bonsoir,
Je viens vous voir après avoir poster une question dans '' l'aide générale du forum '' et sur les conseils éclairés de Faustus !
Voila, l'idée est que j'ai un dossier dans lequel on place des idées (vidéos, images, fichiers texte, html...etc...)
Je souhaiterais que ce dossier puisse recevoir les idées (donc écriture) de tout le monde.
Mais ne puisse être supprimé que par le propriétaire (moi ) voire l'utilisateur root du pc (re-moi )
Voilà, on m'a conseillé de faire ma demande chez les développeurs et autres génis du clavier, j'espère que vous pourrez m'aider
Merci
DADOU
Dernière modification par Dadou (Le 20/09/2007, à 01:49)
Hors ligne
#2 Le 20/09/2007, à 01:54
- compte supprimé
Re : Recherche script pour droit sur dossier
Re-moi
C'est juste pour que le sujet apparaissent dans mes messages...
Eclairés ? N'exagérons rien !
A+
Dernière modification par faustus (Le 20/09/2007, à 01:55)
#3 Le 20/09/2007, à 02:27
- belga
Re : Recherche script pour droit sur dossier
Je pense qu'il faut faire ceci:
Tu donnes les droits en écriture sur ce dossier pour
les utilisateurs: chmod -R u=rwx dossier
puis chattr -R +i dossier
l'option i (à vérifier dans man) à part root, on ne
peut supprimer modifier renommer faire des liens.
je ne sais pas si l'option i interdit l'écriture d'un nouveau fichier, si c'est le cas, à oublier.
Multi-bomb : Multi-doze : Mandoze, Ubundoze, Pardoze.
900s entre deux postes: mododoze
Hors ligne
#4 Le 20/09/2007, à 02:31
- Link31
Re : Recherche script pour droit sur dossier
je ne sais pas si l'option i interdit l'écriture d'un nouveau fichier, si c'est le cas, à oublier.
À oublier donc...
Dans ton cas, le sticky bit serait assez approprié, bien que ne correspondant pas à 100% à ce que tu veux. N'importe qui peut créer un document dans un dossier muni du sticky bit, mais seul le propriétaire d'un fichier peut l'effacer ou le renommer.
sudo chown root:root dossier
sudo chmod 1777 dossier
Dernière modification par Link31 (Le 20/09/2007, à 02:35)
Hors ligne
#5 Le 20/09/2007, à 02:38
- athena
Re : Recherche script pour droit sur dossier
la solution de link31 me semble la bonne mais en tout cas j'ai trouvé ca sur chatr:
Un exemple d'emploi typique : vous stockez sur votre disque des fichier d'archives qui n'ont vocation qu'à être consultés mais jamais ou très rarement modifiés ? Alors pour éviter tout incident du à la maladresse ou à la malveillance, vous les rendrez non modifiables et surtout non effaçables (même par root) à l'aide de la commande chattr +i nom_de_fichier (naturellement, root, et lui seul, pourra annuler l'attribut par un simple chattr -i nom_de_fichier (rappelez-vous que même un fichier sans droit d'écriture peut être effacé par son propriétaire et par root, c'est ce qu'empêche justement l'attribut '+i'). La commande peut agir récursivement sur tout un répertoire avec l'option '-R''.
non ça a pas l'air d'aller ça
sudo apt-get install cerveau
man cerveau
Hors ligne
#6 Le 20/09/2007, à 02:39
- belga
Re : Recherche script pour droit sur dossier
tu confirmes donc que i interdit l'écriture.
La je suis sous DSL impossible de le vérifier
Multi-bomb : Multi-doze : Mandoze, Ubundoze, Pardoze.
900s entre deux postes: mododoze
Hors ligne
#7 Le 20/09/2007, à 02:44
- Link31
Re : Recherche script pour droit sur dossier
En effet, ça donne ça chez moi :
link31@linux ~ $ touch test/fichier
link31@linux ~ $ su
Password:
linux . # chattr = test
linux . # chattr +i test
linux . # exit
link31@linux ~ $ cd test
link31@linux ~/test $ cat fichier
link31@linux ~/test $ cat > fichier
hello world
link31@linux ~/test $ cat fichier
hello world
link31@linux ~/test $ touch fichier2
touch: ne peut faire un touch sur `fichier2': Permission non accordée
link31@linux ~/test $ rm fichier
rm: ne peut enlever `fichier': Permission non accordée
link31@linux ~/test $ cat > fichier
dlrow olleh
link31@linux ~/test $ cat fichier
dlrow olleh
link31@linux ~/test $ su
Password:
linux test # chattr = .
linux test # exit
link31@linux ~/test $ touch fichier2
link31@linux ~/test $ rm *
Hors ligne
#8 Le 20/09/2007, à 02:48
- belga
Re : Recherche script pour droit sur dossier
je n'ai pas bien compris la question alors.
Le but est que personne ne puisse effacer le fichier
même le proprio (à part root)?
Multi-bomb : Multi-doze : Mandoze, Ubundoze, Pardoze.
900s entre deux postes: mododoze
Hors ligne
#9 Le 20/09/2007, à 02:53
- athena
Re : Recherche script pour droit sur dossier
non,le but est que seul le proprio et root puisse effacer les fichiers mais que les autres puissent quand meme ecrire
à la limite si seul root peux effacer,je ne pense pas que ce soit un probleme
sudo apt-get install cerveau
man cerveau
Hors ligne
#10 Le 20/09/2007, à 02:54
- Link31
Re : Recherche script pour droit sur dossier
Je souhaiterais que ce dossier puisse recevoir les idées (donc écriture) de tout le monde.
Mais ne puisse être supprimé que par le propriétaire (moi smile) voire l'utilisateur root du pc (re-moi smile)
moi != tout le monde, en tout cas c'est comme ça que je l'ai compris...
Hors ligne
#11 Le 20/09/2007, à 02:56
- compte supprimé
Re : Recherche script pour droit sur dossier
Si j'ai bien compris, il faudrait que "touch fichier2" soit possible pour tout le monde, mais effectivement pas "rm fichier2", sauf pour root (en gros).
Quod scripsi, scripsi, comme disaient les latins (ce qui est écrit, est écrit).
Dernière modification par faustus (Le 20/09/2007, à 03:01)
#12 Le 20/09/2007, à 03:01
- belga
Re : Recherche script pour droit sur dossier
ok merci
et si après un chattr -R +i dossier
on fait un chattr -i dossier (sans le -R)
est ce qu'on le dossier devient accessible en écriture
à tous mais interdit de modification du contenu?
Multi-bomb : Multi-doze : Mandoze, Ubundoze, Pardoze.
900s entre deux postes: mododoze
Hors ligne
#13 Le 20/09/2007, à 03:07
- athena
Re : Recherche script pour droit sur dossier
Il y a aussi le problème des sauvegardes. Si tu passes des heures a "bidouiller" avec chattr et que le backup ne peut restaurer tous tes "chattr", c'est pas terrible. Enfin, ce n'est que pour ext(2 et 3). Ce n'est pas portable vers ReiserFR, XFS, NFS, etc...
Mais c'est une commande qu'il faut connaitre. Entre autre suite à un plantage disque il y a parfois des attributs un peu étrange qu'il faut virer (j'en ai fait l'expérience une foie et j'ai ramé avant de trouver chattr).
c'est surement pour ça que j'ai obtenue ça:
flo@Jim:~$ chattr -R +i '/home/flo/Desktop/nouveau dossier'
chattr: Ioctl() inappropré pour un périphérique lors de la lecture des drapeaux sur /home/flo/Desktop/nouveau dossier
je suis en reiserfs...
Dernière modification par athena (Le 20/09/2007, à 03:09)
sudo apt-get install cerveau
man cerveau
Hors ligne
#14 Le 20/09/2007, à 03:13
- Dadou
Re : Recherche script pour droit sur dossier
Bah même si le seul à pouvoir effacer est root, c'est bon pour moi (puisque c'est moi) mais que tout le monde puisse écrire sans pouvoir effacer ensuite, c'est ça l'important !
C'est compliqué comme demande... Mais pour moi qui ne connait rien à tout ce langage de programmeurs... quand je lis vos réponses, je me gratte la tête !!!
Hors ligne
#15 Le 20/09/2007, à 03:31
- athena
Re : Recherche script pour droit sur dossier
Quand à la commande:
sudo chown root:root dossier
sudo chmod 1777 dossier
je n'ais pas de message d'erreur mais ça ne semble n'avoir aucun effet on dirait que chown ne fontionne pas,impossible de changer le proprietaire
sudo apt-get install cerveau
man cerveau
Hors ligne
#16 Le 20/09/2007, à 03:43
- Dadou
Re : Recherche script pour droit sur dossier
Sinon, la solution que tu avais proposé dans l'autre post était pas mal aussi :
Un petit script qui permettrait de faire une sauvegarde automatique du dossier à intervalle régulier
Ce que vous dite est vraiment du chinois pour moi en tout cas !
Hors ligne
#17 Le 20/09/2007, à 06:31
- best_friend_fr
Re : Recherche script pour droit sur dossier
Salut
Je ne sais pas si ca peut se faire avec les permissions, mais je te propose une alternative.
Tu crees ton dossier idees, tu le donne a root et tu lui mets les droits 755.
tu crees un programme c:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#define PATH "/path/vers/idees"
int main(int argc, char** argv) {
printf("Copie de %s vers %s\n",argv[1],PATH);
execl("/bin/cp","cp",argv[1],PATH,0);
}
tu compiles ca vers un executable que tu nommes depot.
Tu mets root en proprietaire, et tu mets cet executable dans ton dossier idees
tu donnes a l'executable les droits 755.
Tu ajoutes ensuite les set user id flag (sudo chmod +s idees/depot)
Tout le monde peut ainsi deposer un fichier par la commande
idees/depot fichier
Mais une fois deposes, les fichiers appartiennent a root, et sont donc immodifiables.
Voila
J'espere que ca repond a ta question, ou que ca donnera une piste a quelqu'un.
Dernière modification par best_friend_fr (Le 20/09/2007, à 06:32)
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#18 Le 20/09/2007, à 07:03
- best_friend_fr
Re : Recherche script pour droit sur dossier
Je laisse a d'autres plus experimentes le soin de completer le programme pour eviter d'autoriser l'effacement par recopie.
Une methode simple et d'ajouter un timestamp au nom du fichier (c'est ce qui se fait habituellement).
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#19 Le 20/09/2007, à 07:45
- lunique
Re : Recherche script pour droit sur dossier
Il me semble que samba permet de definir un masque pour la creation des fichiers dans les dossiers.
Donc l'idée serait d'interdire sommairement l'acces au dossier via un acces direct à tout le monde sauf l'utilisateur qu'utilise samba (qui se nomme je ne sais plus comment et je n'ai pas le temps d'aller voir car je pars dans 10 minutes)
Ensuite on configure un partage reseau sur ce dossier et on lui dit que chaque fichier doit etre crée avec le masque : 555
Apres on fait en sorte que le montage soit monté automatiquement et on le pose sur le bureau et voila.
Ce ne serait pas jouable comme methode ?
P.S. Je teste dans la journée et si sa marche, je posterai une version plus detaillé de la procedure
Hors ligne
#20 Le 20/09/2007, à 08:24
- athena
Re : Recherche script pour droit sur dossier
bonjour
pour faire une sauvegarde periodique de ton dossier
La ligne a ajouté à cron serait
cp -r -b '/chemin/vers/Dossier_à_copier' '/chemin/vers/Dossier_de_sauvegarde'
pour voir comment mettre ça dans cron:
http://doc.ubuntu-fr.org/cron
simple et efficace
Dernière modification par athena (Le 20/09/2007, à 08:25)
sudo apt-get install cerveau
man cerveau
Hors ligne
#21 Le 20/09/2007, à 08:28
- compte supprimé
Re : Recherche script pour droit sur dossier
Bien matinale...
Il y a aussi la commande watch (pour une périodicité inférieure à la minute, le minimum de cron). Il faudrait regarder la syntaxe.
PS Je pense que ce n'est pas nécessaire ici, mais ça peut peut-être en intéresser d'autres...
Dernière modification par faustus (Le 20/09/2007, à 08:38)
#22 Le 20/09/2007, à 09:10
- athena
Re : Recherche script pour droit sur dossier
salut Faustus
oui,je ne pense pas qu'une periodicité inferieur à la minute soit necessaire ici..
peut etre même q'une sauvegarde par heure serait suffisant et donc on peut utiliser la syntaxe @hourly ce qui donne une ligne dans le cronstab comme ceci:
@hourly cp -r -b '/home/flo/Desktop' '/home/flo/backup'
qui fait une sauvegarde de mon bureau toutes les heures dans le dossier backup
bien sûr il ne faut pas oublier de creer le dossier backup:
mkdir /home/flo/backup
on peux aussi creer un fichier backup caché en mettant un point devant,comme ça les gosses ne verront même pas le fichier .backup
je viens de jeter un oeil sur le man de watch:
watch - Exécuter un programme périodiquement en affichant le résultat à
l’écran
oui mais nous on ne veux pas que le resultat de la commande s'affiche à l'ecran
j'ai bien penser à une redirection mais le fichier test crée par
watch -d ls -l > test
n'est pas vraiment lisible dommage mais il doit bien y avoir un moyen
Dernière modification par athena (Le 20/09/2007, à 09:15)
sudo apt-get install cerveau
man cerveau
Hors ligne
#23 Le 20/09/2007, à 09:27
- athena
Re : Recherche script pour droit sur dossier
par contre c'est vrai qu'on peux aussi utiliser la commande ls et la redirection pour creer un fichier de log qui capture periodiquement la liste du contenu du repertoire à surveiller
on rajoute à cron:
@hourly date >> /home/mon_repertoire/nom_fichier;ls -l -a >> /home/mon_repertoire/nom_fichier
sudo apt-get install cerveau
man cerveau
Hors ligne
#24 Le 20/09/2007, à 12:20
- compte supprimé
Re : Recherche script pour droit sur dossier
Si cron (ou tout autre processus) est lancé par root, il devrait pouvoir écrire n'importe où. En particulier dans un répertoire inaccessible à l'utilisateur lambda. Celui-ci fait comme d'habitude, sauf que root dispose d'un log (ou d'une copie) de ce que lambda a fait. Evidemment, ça n'empêche pas lambda d'effacer, dans le dossier accessible à tous, ce qu'il a fait lui, ou ce que quelqu'un d'autre y a fait.
En fait ce qui se passe avec la plupart des processus et leurs fichiers log...
Dernière modification par faustus (Le 20/09/2007, à 12:22)
#25 Le 20/09/2007, à 19:09
- Dadou
Re : Recherche script pour droit sur dossier
Si cron (ou tout autre processus) est lancé par root, il devrait pouvoir écrire n'importe où. En particulier dans un répertoire inaccessible à l'utilisateur lambda. Celui-ci fait comme d'habitude, sauf que root dispose d'un log (ou d'une copie) de ce que lambda a fait. Evidemment, ça n'empêche pas lambda d'effacer, dans le dossier accessible à tous, ce qu'il a fait lui, ou ce que quelqu'un d'autre y a fait.
En fait ce qui se passe avec la plupart des processus et leurs fichiers log...
Bein ça me parrait pas mal aussi ça
Comment je fais alors pour le paramétrer pour mon dossier 'idee' ?
>> déjà, faut que je l'installe hihi
Merci
Dernière modification par Dadou (Le 20/09/2007, à 19:10)
Hors ligne