Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/01/2006, à 23:32

uzo

[résolu] 'sudo su' et 'chmod'

Bonsoir,

Attention, le post est assez long ;-)

Tout d'abord, pour ma culture, j'aimerai savoir quelle est la diffèrence - subtile je suppose mais bien réelle - entre une commande passée avec sudo genre:
$ sudo rm -rf le_fichier_a_effacer
donner_mot_de_passe

et l'équivalent en root :
$ sudo su
donner_mot_de_passe
#  rm -rf le_fichier_a_effacer
(certains voudront répondre: aucune différence, dans les deux cas le fichier est effacé... big_smile)
Ok, merci...
Mais prenons un exemple où la différence est perceptible. Chez moi, la commande
$ sudo export CC=/usr/bin/gcc-3.4

me renvoie insolemment  'sudo: export: command not found' (?) alors qu'un petit 'sudo su' suivi de
# export CC=/usr/bin/gcc-3.4
s'exécute sans broncher!?

Quelqu'un aurait une explication? Merci d'avance et passons à ce qui me pose réellement problème: le chmod (et le chroot aussi d'ailleurs) d'un fichier que l'on ne peut modifier qu'après un 'sudo su'.

Pour une raison qui m'est encore mystèrieuse (pas pour longtemps, vous allez m'expliquer le pourquoi du comment wink ) je ne peut modifier sys/devices/system/cpu/cpu0/cpufreq/scaling_governor en console qu'après un 'sudo su'.
La commande
$ sudo echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
a l'affront de me répondre 'Permission non accordée' !!!
Bien sûr, après un 'sudo su' ça marche mais pourquoi? De plus, impossible de faire un chroot mon_identifiant sur ce fichier (mais ça m'étonne moins que le reste, sinon on pourrait mettre un utilisateur propriétaire de tous les fichiers) et le chmod 0777 par exemple est accepté (après sudo su seulement bien sûr) le temps de la session mais le problème revient à l'identique après un reboot... C'est reparti pour un 'sudo su'... Car la gestion du cpu n'est plus en 'ondemand'! mais se met automatiquement en 'performance' à chaque démarrage. Bref, à defaut d'être important, c'est tout de même ennuyant (comme mon post quoi)... J'aimerais:
1 Avoir automatiquement 'ondemand' au démarrage et pouvoir passer en 'performance' au pire avec sudo, au mieux en tant qu'utilisateur.
2 Ne pas avoir automatiquement 'ondemand' au démarrage mais pouvoir changer le fichier en tant qu'utilisateur (je peux alors faire un script qui s'exécute au démarrage pour avoir 'ondemand')
3 Rester comme ça et perdre à chaque fois 5 sec au démarrage pour taper sudo su, mot de passe, commande, si, et seulement si, on me montre comment faire du chocolat chaud (je bois pas de café) avec fvwm (puisque c'est possible avec gnome...)

Merci à tous ceux qui ont pris le temps de lire ce long post et à vos futurs réponses, suggestions, compassions...
Une petite précision pour ceux qui voudraient me faire contourner le problème pour me faire changer facilement le mode de gestion de mon cpu: comme j'utilise fvwm (c'est excellent!!! cool ), je n'ai pas le gnome-panel par défaut et ne peux/veux donc pas passer par l'applet de cpufreq avec le clic gauche pour choisir 'ondemand'.

Dernière modification par uzo (Le 24/01/2006, à 12:53)

Hors ligne

#2 Le 18/01/2006, à 01:13

Bobbybionic

Re : [résolu] 'sudo su' et 'chmod'

Bonsoir (bonjour ? wink)

sudo n'est pas exactement l'équivalent du compte root.
C'est pourquoi par exemple il n'a pas l'air de connaitre la commande "export", alors que le root si.

Pour ce qui est de la modification du gouverneur pas défaut cf le post correspondant à cette astuce.

Voila (réponse brève mais je vais me pieuter wink)


Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.

http://bobbybionic.wordpress.com

Hors ligne

#3 Le 18/01/2006, à 01:40

Skippy le Grand Gourou

Re : [résolu] 'sudo su' et 'chmod'

Je comprends pas : tu veux les trois options à la fois ? hmm

Sinon : normalement, la commande export fonctionne avec n'importe quel utilisateur, pas besoin de passer en root pour ça. Je pense que c'est pour ça que sudo ne la reconnaît pas : elle ne lui est pas spécifique.

Sinon, pour définir une variable d'environnement au démarrage, tu mets export machin dans le fichier ~\.bashrc. Tu peux essayer avec la commande que tu donnes, on sait jamais... Sinon y'a plusieurs autres fichiers où tu dois pouvoir mettre ça : dans un script /jesaisplusoù/Autostart/script, ou dans ton fichier .xsession si tu en as un, sinon dans .xinitrc, par exemple... wink

Hors ligne

#4 Le 18/01/2006, à 12:18

uzo

Re : [résolu] 'sudo su' et 'chmod'

Bongiurno !

Merci à tous deux.

@ Bobbybionic: si tu parles de ce post:
http://forum.ubuntu-fr.org/viewtopic.php?id=23689
alors je le connais smile . J'y ai même posté la procédure pour que cela fonctionne avec celeron M... Mais 'ondemand' ne reste chez moi pas par défaut (!?) et le profil se met sur 'performance' à chaque redémarrage sad
Après il faut faire obligatoirement 'sudo su' alors qu'en normalement un sudo seul devrait suffir. Les deux choses sont peut-être liées roll ?

@ Skippy le Grand Gourou: non, bien sûr, je ne veux pas les trois options à la fois:lol:... J'aurais dû préciser: 'par ordre de préférence';). Mais je me suis relu et c'est vrai que mon message n'est pas un exemple de clarté... J'éviterai les posts à 22h30 désormais big_smile !

Bref en gros, je veux 'chmoder' /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor, actuellement propriété exclusive du compte root, pour pouvoir le modifier en tant qu'utilisateur. Ensuite, pas de problème pour le script, je le met dans mon ~/.fvwm2rc. Mais il ne s'exécutera que si l'utilisateur a les droits nécessaires...

Hors ligne

#5 Le 18/01/2006, à 14:25

Skippy le Grand Gourou

Re : [résolu] 'sudo su' et 'chmod'

Ben pour donner les droits, si tu veux, tu peux passer par le gestionnaire de fichier (en root si nécessaire : sudo nautilus), clic droit sur le fichier > permissions...

Hors ligne

#6 Le 18/01/2006, à 15:53

uzo

Re : [résolu] 'sudo su' et 'chmod'

J'ai essayé, vraiment au cas où roll ... Mais le résultat sous X est identique à la manière console (chmod 0777 le_fichier):
je peux changer les permissions et donner des droits pour tous pendant la session mais après redémarrage:

$ ls -la /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
-rw-r--r--  1 root root 0 2006-01-18 14:31 //sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

sad
Bref, seul root (avec 'sudo su',  sudo seul ne peut rien faire) peut modifier ce fichier. Moi, j'aimerais pouvoir modifier ce fichier au démarrage en tant qu'utilisateur. Je commence à me dire que l'on ne peut garder d'une session à l'autre les droits donnés aux utilisateurs des fichiers qui sont propriété de root. Mais pourquoi faut-il 'sudo su' et pas seulement sudo à la base mad ? Ca n'a pas l'air d'être le cas pour tout le monde et je pense que c'est ça le problème.

Bon, mais c'est pas grave. Dites-moi comment faire du chocolat chaud - ou même du café - avec ubuntu big_smile , je crois que je vais me rabattre sur la solution n°3 de mon premier post.
Merci tout de même Skippy... Enfin, si tu as une autre idée n'hésite pas, moi je suis à court hmm

Hors ligne

#7 Le 24/01/2006, à 12:51

uzo

Re : [résolu] 'sudo su' et 'chmod'

J'ai trouvé ! Il était temps car le café ubuntu est vraiment dégueulasse big_smile . Alors au cas où cela pourrait servir à d'autres, voilà  un petit résumé du problème et la solution :

Pouvoir changer les droits d'un fichier propriété de root pour qu'un utilisateur puisse le modifier. Dans mon cas par exemple, le fichier X était modifiable seulement après "sudo su" et les droits en écriture attribués à l'utilisateur en cours de session disparaissaient à chaque redémarrage. Bref énervant mad ....

La solution wink : donner à l'utilisateur le droit d'utiliser la commande "chmod" en root sans avoir à donner de mot de passe (à ne pas faire si des âmes malintentionnées ont accés à votre ordi...)
Editer le fichier /etc/sudoers (attention utiliser obligatoirement la commande indiquée  ci-après et pas directement "vi /etc/sudoers" par ex) :

$ sudo visudo

et y ajouter à la fin :

nom_utilisateur localhost=NOPASSWD: /bin/chmod

C'est tout ! smile

Dans mon cas, j'ai donc rédigé un petit script qui me permet de redonner à chaque démarrage des droits en écriture à l'utilisateur sans avoir à donner le mot de passe. Je peux désormais manipuler mon fichier X tranquillement grace à d'autres scripts en restant utilisateur cool .


Note: Dans mon cas le fichier X est :
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Hors ligne