Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Petite question sur chmod

9 réponses
Avatar
Jean Bon (de Parme)
Bonjour

J'ai une petite question.

J'ai un fichier dont je suis le proprio (moi:moi)

moi@P2800:/home/data/$ ls -l -R mon_fichier
-rwxrwxr-x 1 moi moi 813571072 2008-11-22 17:36 Mon_fichier

Si j'essaye de virer le bit executable en utilisant (r+w ; 4+2):
(Le R majuscule dans la ligne suivante c'est pour Recurcif)

chmod 666 * -R

Je me retrouve avec ca en faisant ls -l -R :

-????????? ? ? ? ? ? Mon_fichier

Par contre si je fais sudo ls -l -R

-rw-rw-rw- 1 moi moi 813571072 2008-11-22 17:36 Mon_fichier

Pourquoi suis je obligé d'avoir les droits root pour lire ou changer
les droit d'un fichier dont j'ai juste viré l'attribut executable ?

Desolé de poser une question aussi basique, mais je suis toujours
passé par un GUI pour faire cette manip et maintenant j'aimerai bien
approfondir

Merci de vos lumieres.

9 réponses

Avatar
Erwan David
"Jean Bon (de Parme)" écrivait :

Bonjour

J'ai une petite question.

J'ai un fichier dont je suis le proprio (moi:moi)

:/home/data/$ ls -l -R mon_fichier
-rwxrwxr-x 1 moi moi 813571072 2008-11-22 17:36 Mon_fichier

Si j'essaye de virer le bit executable en utilisant (r+w ; 4+2):
(Le R majuscule dans la ligne suivante c'est pour Recurcif)

chmod 666 * -R

Je me retrouve avec ca en faisant ls -l -R :

-????????? ? ? ? ? ? Mon_fichier

Par contre si je fais sudo ls -l -R

-rw-rw-rw- 1 moi moi 813571072 2008-11-22 17:36 Mon_fichier

Pourquoi suis je obligé d'avoir les droits root pour lire ou changer
les droit d'un fichier dont j'ai juste viré l'attribut executable ?



Parceque tu t'es retiré les droits d'exécution sur le répertoire
contenant le fichier ? Tu as gardé les droits de lectures, donc tu peux
avoir la liste des fichiers. Mais n'ayant pas les droits d'exécutions tu
ne peux rien en faire, ni open() ni stat().

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
Jean Bon (de Parme)
On Tue, 02 Dec 2008 23:53:34 +0100, Erwan David
wrote:

Pourquoi suis je obligé d'avoir les droits root pour lire ou changer
les droit d'un fichier dont j'ai juste viré l'attribut executable ?



Parceque tu t'es retiré les droits d'exécution sur le répertoire
contenant le fichier ? Tu as gardé les droits de lectures, donc tu peux
avoir la liste des fichiers. Mais n'ayant pas les droits d'exécutions tu
ne peux rien en faire, ni open() ni stat().



Ben justement je peux pas lire le fichier.
Meme un fichier texte de 1ko avec kate par exemple.

Je dois utiliser sudo alors le le x est retiré a tout le monde.
Avatar
YBM
Jean Bon (de Parme) a écrit :
On Tue, 02 Dec 2008 23:53:34 +0100, Erwan David
wrote:

Pourquoi suis je obligé d'avoir les droits root pour lire ou changer
les droit d'un fichier dont j'ai juste viré l'attribut executable ?


Parceque tu t'es retiré les droits d'exécution sur le répertoire
contenant le fichier ? Tu as gardé les droits de lectures, donc tu peux
avoir la liste des fichiers. Mais n'ayant pas les droits d'exécutions tu
ne peux rien en faire, ni open() ni stat().



Ben justement je peux pas lire le fichier.
Meme un fichier texte de 1ko avec kate par exemple.

Je dois utiliser sudo alors le le x est retiré a tout le monde.



Qu'est-ce que tu veux permettre et interdire exactement et à qui ?
Avatar
Jean Bon (de Parme)
On Wed, 03 Dec 2008 18:40:41 +0100, YBM wrote:

Jean Bon (de Parme) a écrit :
On Tue, 02 Dec 2008 23:53:34 +0100, Erwan David
wrote:

Pourquoi suis je obligé d'avoir les droits root pour lire ou changer
les droit d'un fichier dont j'ai juste viré l'attribut executable ?


Parceque tu t'es retiré les droits d'exécution sur le répertoire
contenant le fichier ? Tu as gardé les droits de lectures, donc tu peux
avoir la liste des fichiers. Mais n'ayant pas les droits d'exécutions tu
ne peux rien en faire, ni open() ni stat().



Ben justement je peux pas lire le fichier.
Meme un fichier texte de 1ko avec kate par exemple.

Je dois utiliser sudo alors le le x est retiré a tout le monde.



Qu'est-ce que tu veux permettre et interdire exactement et à qui ?



Je veux simplement degager l'attribut "x executable" en ligne de
commande.
Mais si j'applique :

:$chmod 666 *

je ne peux plus y acceder en lecture ecriture sans passer par sudo.
Alors qu'en ca ne pose pas de probleme:
: chmod 777 *

Mais a ce moment là il y a l'attribut executable. Mais c'est pas un
executable, c'est un fichier texte.

Cet attribut apparait lorsque je copie des fichier de CD/DVD vers
ext3.
Avatar
Erwan David
"Jean Bon (de Parme)" écrivait :

On Tue, 02 Dec 2008 23:53:34 +0100, Erwan David
wrote:

Pourquoi suis je obligé d'avoir les droits root pour lire ou changer
les droit d'un fichier dont j'ai juste viré l'attribut executable ?



Parceque tu t'es retiré les droits d'exécution sur le répertoire
contenant le fichier ? Tu as gardé les droits de lectures, donc tu peux
avoir la liste des fichiers. Mais n'ayant pas les droits d'exécutions tu
ne peux rien en faire, ni open() ni stat().



Ben justement je peux pas lire le fichier.
Meme un fichier texte de 1ko avec kate par exemple.

Je dois utiliser sudo alors le le x est retiré a tout le monde.



Mais il faut laisser le bit x aux répertoires...

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
Michaël
Jean Bon (de Parme) a jugé bon de nous dire :
[...]
Je veux simplement degager l'attribut "x executable" en ligne de
commande.
Mais si j'applique :

:$chmod 666 *

je ne peux plus y acceder en lecture ecriture sans passer par sudo.
Alors qu'en ca ne pose pas de probleme:
: chmod 777 *

Mais a ce moment là il y a l'attribut executable. Mais c'est pas un
executable, c'est un fichier texte.

Cet attribut apparait lorsque je copie des fichier de CD/DVD vers
ext3.



Je ne suis pas sûr d'avoir bien compris toute la manipulation (quel est
le répertoire courant quand tu lances le chmod, etc.), mais je sais que
si on enlève l'attribut x (exécution) à un dossier, on ne peut plus rien
y exécuter, et même la lecture devient impossible. Je me suis déjà
retrouvé avec des listings en ?????, et c'était à chaque fois parce que
le dossier parent n'était pas « exécutable ».

En ce qui concerne les fichiers copiés depuis des CD, DVD, clés USB,
etc., l'attribution est normale : le système de fichiers de ces supports
ne gère pas les droits. Au moment du montage, ce sont les droits par
défaut qui s'appliquent, dont l'exécution pour tous les fichiers.

Si tu veux enlever tous les attributs x des fichiers, il faut le faire
de manière à préserver les dossiers, et ne lancer le chmod que sur les
fichiers :

$ find . -type f -exec chmod -x "{}" ;

(en se plaçant à la racine de l'arborescence copiée)


--
les seuls qui lisent les FAQs sont ceux qui savent déjà ce qu'il
y a dedans.
-+- AT in: Guide du Cabaliste Usenet - chapitre 4 -+-
Avatar
Jean Bon (de Parme)
On Wed, 03 Dec 2008 20:53:58 +0100, Erwan David
wrote:

"Jean Bon (de Parme)" écrivait :

On Tue, 02 Dec 2008 23:53:34 +0100, Erwan David
wrote:

Pourquoi suis je obligé d'avoir les droits root pour lire ou changer
les droit d'un fichier dont j'ai juste viré l'attribut executable ?



Parceque tu t'es retiré les droits d'exécution sur le répertoire
contenant le fichier ? Tu as gardé les droits de lectures, donc tu peux
avoir la liste des fichiers. Mais n'ayant pas les droits d'exécutions tu
ne peux rien en faire, ni open() ni stat().



Ben justement je peux pas lire le fichier.
Meme un fichier texte de 1ko avec kate par exemple.

Je dois utiliser sudo alors le le x est retiré a tout le monde.



Mais il faut laisser le bit x aux répertoires...



haaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ca a l'air d'etre ca.
Je vais jeter un oeuil...
Avatar
Jean Bon (de Parme)
On Wed, 03 Dec 2008 20:53:58 +0100, Erwan David
wrote:

"Jean Bon (de Parme)" écrivait :

On Tue, 02 Dec 2008 23:53:34 +0100, Erwan David
wrote:

Pourquoi suis je obligé d'avoir les droits root pour lire ou changer
les droit d'un fichier dont j'ai juste viré l'attribut executable ?



Parceque tu t'es retiré les droits d'exécution sur le répertoire
contenant le fichier ? Tu as gardé les droits de lectures, donc tu peux
avoir la liste des fichiers. Mais n'ayant pas les droits d'exécutions tu
ne peux rien en faire, ni open() ni stat().



Ben justement je peux pas lire le fichier.
Meme un fichier texte de 1ko avec kate par exemple.

Je dois utiliser sudo alors le le x est retiré a tout le monde.



Mais il faut laisser le bit x aux répertoires



Bon c'est plus simple comme ca :

chmod -R -x,a+rwX

-R : recurcif
-x ca desactive l'executable
+X ca active le l'attribut du repertoire
Avatar
Jean Bon (de Parme)
On Wed, 03 Dec 2008 20:54:25 +0100, Michaël
wrote:


Si tu veux enlever tous les attributs x des fichiers, il faut le faire
de manière à préserver les dossiers, et ne lancer le chmod que sur les
fichiers :

$ find . -type f -exec chmod -x "{}" ;



Bon c'est plus simple comme ca :

chmod -R -x,a+rwX

-R : recurcif
-x ca desactive l'executable
+X ca active le l'attribut du repertoire

Par contre ca peut poser probleme chez certains qui veulent pas
reactiver les repertoires. Mais chez moi ca me derange pas.