OVH Cloud OVH Cloud

Utilisation de chown

11 réponses
Avatar
Meunier Bernard
Bonjour à tous,
De temps en temps sous 'root' j'écris dans mon repertoire (et ses
sous-répertoires) 'toto' des fichiers. Ces fichiers vont appartenir
à root. Je voudrais ensuite utiliser chown pour qu'ils appartiennent à
'toto'.
Dans toto, lorsque je fais :
# chown -R toto:toto /home/bernard/*
La commande fait ce que j'attends d'elle. A savoir 'donner' à toto les
fichiers de /home/bernard ainsi que /home/bernard/(tous les autres
sous-répertoires).
Mais si je veux donner à toto les fichiers cachés et que je fais :
# chown -R toto:toto /home/bernard/.*
Le propriétaire est bien changé dans /home/bernard/ et ses sous
répertire, mais aussi dans tous (sauf ceux appartenant à root) les sous
répertoire de /home/* Et là, je trouve ça pas cool du tout.

Qu'elle erreur suis-je en train de commettre ?
Comment puis-je résoudre ce probléme ?

Merçi d'avance pour vos suggestions.

10 réponses

1 2
Avatar
Kevin Denis
On 2005-03-18, Meunier Bernard wrote:
Mais si je veux donner à toto les fichiers cachés et que je fais :
# chown -R toto:toto /home/bernard/.*
Le propriétaire est bien changé dans /home/bernard/ et ses sous
répertire, mais aussi dans tous (sauf ceux appartenant à root) les sous
répertoire de /home/* Et là, je trouve ça pas cool du tout.

Qu'elle erreur suis-je en train de commettre ?


que dans .* il y a .. qui signifie au dessus?

Comment puis-je résoudre ce probléme ?

Un truc du genre:

chown -R toto.toto /home/bernard/.[!.]*

--
Kevin

Avatar
Meunier Bernard
Le Fri, 18 Mar 2005 09:51:33 +0000, Kevin Denis a écrit :

On 2005-03-18, Meunier Bernard wrote:
Mais si je veux donner à toto les fichiers cachés et que je fais :
# chown -R toto:toto /home/bernard/.*
Le propriétaire est bien changé dans /home/bernard/ et ses sous
répertire, mais aussi dans tous (sauf ceux appartenant à root) les sous
répertoire de /home/* Et là, je trouve ça pas cool du tout.

Qu'elle erreur suis-je en train de commettre ?


que dans .* il y a .. qui signifie au dessus?

Comment puis-je résoudre ce probléme ?

Un truc du genre:

chown -R toto.toto /home/bernard/.[!.]*
A oui, d'accord, j'ai pigé : * est aussi égal à .

C'est un 'truc' cohérent qui donne le résultat attenu. Ouf. Merci
beaucoup.


Avatar
Bernard Déléchamp
Meunier Bernard wrote:
Bonjour à tous,


Bonjour,

De temps en temps sous 'root' j'écris dans mon repertoire (et ses
sous-répertoires) 'toto' des fichiers. Ces fichiers vont appartenir


C'est pô bien !

à root. Je voudrais ensuite utiliser chown pour qu'ils appartiennent à
'toto'.
Dans toto, lorsque je fais :
# chown -R toto:toto /home/bernard/*


# chown -R toto:toto /home/bernard

<...>

PS Qui t'a autorisé à créer ainsi des fichiers dans mon répertoire
personnel ;-) ?

--
Il y a plus de vieux ivrognes que de vieux médecins.
François Rabelais

Avatar
Nicolas George
Kevin Denis wrote in message
:
Un truc du genre:
chown -R toto.toto /home/bernard/.[!.]*


Ou bien utiliser un shell décent, qui ne globbe pas .. dans .*. Et au
passage, globber les deux d'un coup avec *(D).

Avatar
Meunier Bernard
Le Fri, 18 Mar 2005 13:20:06 +0100, Bernard Déléchamp a écrit :

Meunier Bernard wrote:
Bonjour à tous,


Bonjour,

De temps en temps sous 'root' j'écris dans mon repertoire (et ses
sous-répertoires) 'toto' des fichiers. Ces fichiers vont appartenir


C'est pô bien !

à root. Je voudrais ensuite utiliser chown pour qu'ils appartiennent à
'toto'.
Dans toto, lorsque je fais :
# chown -R toto:toto /home/bernard/*


# chown -R toto:toto /home/bernard

<...>

PS Qui t'a autorisé à créer ainsi des fichiers dans mon répertoire
personnel ;-) ?


Et pourquoi n'aurais-je pas ce droit. Cette machine est à moi quand
même! Donc je me suis autorisé.


Je suis preneur (ce ne sont pas des fichiers cachés)


Avatar
Meunier Bernard
Le Fri, 18 Mar 2005 13:35:44 +0100, Meunier Bernard a écrit :

Le Fri, 18 Mar 2005 13:20:06 +0100, Bernard Déléchamp a écrit :

Meunier Bernard wrote:
Bonjour à tous,


Bonjour,

De temps en temps sous 'root' j'écris dans mon repertoire (et ses
sous-répertoires) 'toto' des fichiers. Ces fichiers vont appartenir


C'est pô bien !

à root. Je voudrais ensuite utiliser chown pour qu'ils appartiennent à
'toto'.
Dans toto, lorsque je fais :
# chown -R toto:toto /home/bernard/*


# chown -R toto:toto /home/bernard

<...>

PS Qui t'a autorisé à créer ainsi des fichiers dans mon répertoire
personnel ;-) ?


Et pourquoi n'aurais-je pas ce droit. Cette machine est à moi quand
même! Donc je me suis autorisé.


Je suis preneur (ce ne sont pas des fichiers cachés)
Ne pas tenir compte de la derniére ligne du message précedent : faute de

copier/coller



Avatar
Meunier Bernard
Le Fri, 18 Mar 2005 12:27:35 +0000, Nicolas George a écrit :

Kevin Denis wrote in message
:
Un truc du genre:
chown -R toto.toto /home/bernard/.[!.]*


Ou bien utiliser un shell décent, qui ne globbe pas .. dans .*. Et au
passage, globber les deux d'un coup avec *(D).
Là, je ne comprends pas bien. A la lecture du texte de Kevin Denis, je

trouvais logique que .* englobe .. (puisque . appartient à l'ensemble *).
Qu'est qu'un shell décent qui globerait pas .. dans .* ?. est-ce un shell
parciculier (bash ou autre) ou une commande particulier dans un
shell.
N'ayant pas compris le *(D), je n'ose pas l'utiliser pour l'instant,
je vais y réfléchir.
Merçi quand même pour la suggestion


Avatar
Nicolas George
Meunier Bernard wrote in message
:
Là, je ne comprends pas bien. A la lecture du texte de Kevin Denis, je
trouvais logique que .* englobe .. (puisque . appartient à l'ensemble *).


. et .. sont spéciaux, ils ont un sens profondément différent de tous les
autres .*. Il n'est donc pas absurde de les traiter à part, et à l'usage
c'est également plus pratique.

Qu'est qu'un shell décent qui globerait pas .. dans .* ?


zsh par exemple.

N'ayant pas compris le *(D), je n'ose pas l'utiliser pour l'instant,
je vais y réfléchir.


L'option de glob (D), dans zsh, signifie qu'il ne faut pas traiter les
fichier .* de manière particulière : *foo(D) reconnaîtra aussi bien foobar
que .foorc.

Avatar
Nicolas George
Bernard Déléchamp
wrote in message <d1eh1m$tk$:
# chown -R toto:toto /home/bernard/*
# chown -R toto:toto /home/bernard



Ça ne fait pas la même chose : dans le message original, le répertoire
/home/bernard lui-même reste à root (sauf le problème avec . et ..). On peut
supposer que c'est une erreur, mais dans ce cas il faut le signaler comme
tel, pas proposer une autre commande qui corrige silencieusement.


Avatar
Meunier Bernard
Le Fri, 18 Mar 2005 13:03:17 +0000, Nicolas George a écrit :

Meunier Bernard wrote in message
:
Là, je ne comprends pas bien. A la lecture du texte de Kevin Denis, je
trouvais logique que .* englobe .. (puisque . appartient à l'ensemble *).


. et .. sont spéciaux, ils ont un sens profondément différent de tous les
autres .*. Il n'est donc pas absurde de les traiter à part, et à l'usage
c'est également plus pratique.

Qu'est qu'un shell décent qui globerait pas .. dans .* ?


zsh par exemple.

N'ayant pas compris le *(D), je n'ose pas l'utiliser pour l'instant,
je vais y réfléchir.


L'option de glob (D), dans zsh, signifie qu'il ne faut pas traiter les
fichier .* de manière particulière : *foo(D) reconnaîtra aussi bien foobar
que .foorc.
Je savais que . et .. étaient spéciaux, mais de là à en tirer toutes

les conséquences, il y a un grand pas que mes faibles connaissances en
Linux (Unix) n'ont pas su franchir.
Donc, votre remarque m'apprends beaucoup de choses, mais je vais attendre
un peu avant d'utiliser zsh et profiter de ses subtilités.
J'applique, pour l'heure, la suggestion de Kevin qui reste dans le champ
de ma totale (!) compréhension.
Merci pour ces commentaires formateurs.
J'ai quelques fois du mal avec Linux, mais au moins ma cervelle chauffe.
Merçi.


1 2