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.

#26 Le 18/04/2012, à 13:39

soume86

Re : Changer le shell d'un user [RESOLU]

Bonjour,

Après avoir rajouter une virgule entre les commandes sa marche mieux.

Par contre j'arrive pas à me connecter en tant qu'admin depuis une tty.

Pour info: Si je me connecte en tant que root, su admin marche!

Y'a quelque chose à rajouter?
Quelqu'un pourrait m'aider?

Merci d'avance.

Hors ligne

#27 Le 18/04/2012, à 14:02

Bousky

Re : Changer le shell d'un user [RESOLU]

soume86 a écrit :

Par contre j'arrive pas à me connecter en tant qu'admin depuis une tty.

Il t'affiche quoi exactement ?


Bousky a écrit :
admin ALL=(ALL) NOPASSWD:/etc/init.d/httpd, restart

En fait je me suis trompé, il ne faut pas ajouté une virgule ici, mais tu as oublié une des deux commandes (à séparer par une virgule) :

admin ALL=(ALL) NOPASSWD:/etc/init.d/httpd, reboot

Dernière modification par Bousky (Le 18/04/2012, à 14:05)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#28 Le 18/04/2012, à 14:18

soume86

Re : Changer le shell d'un user [RESOLU]

Sisi j'avais compris sa;)

En fait, je tape le login et le mot de passe et il me redemande les identifiants (donc en boucle).

Sinon y'a pas de message, rien du tout.

J'ai bien mis, dans mon fichier passwd:

admin:x:501:501::/home/admin:/hosme/admin/script.sh

Des idées?

Hors ligne

#29 Le 18/04/2012, à 14:54

Bousky

Re : Changer le shell d'un user [RESOLU]

Je viens de faire un test en exécutant la commande

sudo adduser --no-create-home --shell blarg.sh blarg

Ça marche…

Tu as rendu le script exécutable ?

Dernière modification par Bousky (Le 18/04/2012, à 14:55)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#30 Le 18/04/2012, à 18:10

soume86

Re : Changer le shell d'un user [RESOLU]

Oui, je l'ai rendu exécutable. sa marche que quand je fais su admin,

Je viens de retenter:

sudo adduser --no-create-home --shell script.sh admin
passwd test

Et pareille, pas la possibilité de se connecter depuis un tty.

Hors ligne

#31 Le 19/04/2012, à 13:18

soume86

Re : Changer le shell d'un user [RESOLU]

Bousky ne me lâche pas;)

Au fait, j'ai installé linux sur mon pc portable en espérant que sa aller marcher mais helas non.
Par contre si j'essaie via Putty, il me dit que j'ai pas les droits:

Using username "admin".
admin@192.168.122.2's password:
Access denied
admin@192.168.122.2's password:

Une idée?

Hors ligne

#32 Le 19/04/2012, à 13:41

Bousky

Re : Changer le shell d'un user [RESOLU]

Ça donne quoi si tu mets « bash script.sh » à la place de juste « script.sh » comme shell ?

Dernière modification par Bousky (Le 19/04/2012, à 13:41)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#33 Le 19/04/2012, à 14:25

soume86

Re : Changer le shell d'un user [RESOLU]

Enfin sa marche,
Il fallait mettre le script dans le répertoire /bin.

Using username "admin".
admin@192.168.1.246's password:
Last login: Thu Apr 19 14:18:44 2012
---Possibilite----
1) Redemarrer la machine  3) Redemarrer OpenVPN     5) Quitter la console
2) Demarrer apache        4) Arreter apache
 Selectionner un choix :

Pour info, j'utilise la commande select de bash et je voudrais améliorer l'affichage!

Des pistes?
Merci pour votre aide!

Hors ligne

#34 Le 19/04/2012, à 14:59

Bousky

Re : Changer le shell d'un user [RESOLU]

On peut avoir ton script ?


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#35 Le 19/04/2012, à 16:44

soume86

Re : Changer le shell d'un user [RESOLU]

voici le contenu du script:


#!/bin/bash

                PS3=" Selectionner un choix : "
                echo "---Possibilite---- "

                select choix in "Redemarrer la machine" "Demarrer apache" "Redemarrer OpenVPN" "Arreter apache" "Quitter la console";

                  do
                        case $REPLY in

                                1) sudo reboot now;;
                                2) sudo /etc/init.d/httpd start;;
                                3) sudo /etc/init.d/openvpn restart;;
                                4) sudo /etc/init.d/httpd stop;;
                                5) echo "Au revoir"
                                        break;;
                                *) echo "Je n'ai pas compris votre choix"
                        esac
                done

Des pistes pour améliorer l'interface?

Hors ligne

#36 Le 20/04/2012, à 09:14

soume86

Re : Changer le shell d'un user [RESOLU]

Bonjour,

alors vous avez des idées?

Crld.

Hors ligne

#37 Le 20/04/2012, à 11:24

Postmortem

Re : Changer le shell d'un user [RESOLU]

Salut,
Il ne me semble pas que l'on puisse améliorer l'affichage de select.
Il faut faire ton menu toi-même, comme ceci par exemple :

while :
do
   cat <<- FIN_MENU

        1 - Redemarrer la machine
        2 - Demarrer apache
        3 - Redemarrer OpenVPN
        4 - Arreter apache
        5 - Quitter la console

        FIN_MENU

   read -p "Entrer votre choix : "
   case $REPLY in
      1) sudo reboot now;;

      2) sudo /etc/init.d/httpd start;;

      3) sudo /etc/init.d/openvpn restart;;

      4) sudo /etc/init.d/httpd stop;;

      5) echo "Au revoir"
         break;;

      *) echo "Je n'ai pas compris votre choix";;
   esac
done

La syntaxe cat <<- FIN_MENU te permet d'afficher sur la sortie standard tout le texte jusqu'à FIN_MENU (FIN_MENU est exclu).
Toutes les tabulations en début de ligne ne seront pas affichées à l'écran grâce à l'opérateur de redirection <<-
Si tu veux décaler l'affichage, il faut donc rajouter des espaces après les éventuelles tabulations.
La balise FIN_MENU doit être seule sur sa ligne avec éventuellement des tabulations devant.

Si tu remplaces l'opérateur de redirection <<- par <<, tu ne peux plus indenter dans ton script ; ou si tu indentes, le texte sera affiché tel quel (y compris les tabulations en début de ligne). Et la balise FIN_MENU devra être seule sur sa ligne (sans espaces ou tabulations, que ça soit avant ou après).

Dernière modification par Postmortem (Le 20/04/2012, à 11:26)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#38 Le 20/04/2012, à 14:00

soume86

Re : Changer le shell d'un user [RESOLU]

super Postmortem,

Par contre j'ai remarqué que:
  -si un service est démarré (par exemple apache), et qu'on choisit 2 (Démarrer apache), il se passe rien.
Ce serai pas possible d'ajouter une condition (if) pour afficher un message au cas où le service qu'on essaye de démarrer l'est déjà?

Merci d'avance.

Hors ligne

#39 Le 20/04/2012, à 14:10

Postmortem

Re : Changer le shell d'un user [RESOLU]

Tu pourrais tester la présence des process apache ; si mes souvenirs sont bons, les process apache se nomment httpd ?!
Si c'est le cas, tu pourrais rajouter ce genre de test :

if pgrep httpd > /dev/null
then
   echo "Apache est déjà démarré"
else
   echo "Démarrage d'apache..."
   sudo /etc/init.d/httpd start
fi

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#40 Le 20/04/2012, à 14:27

soume86

Re : Changer le shell d'un user [RESOLU]

Justement c'est ce que j'essaie de faire


2) if [ -z "$(ps ax | grep httpd)" ]
                           then
                                echo "Apache est demarrer"
                           else
                                sudo /etc/init.d/httpd start;;
                           fi

Mais j'ai des problème du genre:

./script.sh: line 23: Erreur de syntaxe près du symbole inattendu « ;; »
./script.sh: line 23: `                         sudo /etc/init.d/httpd start;;'

Soit il manque un ; ou quelque chose de ce genre mais exactement où, je sais pas.
T'as des idées?

Hors ligne

#41 Le 20/04/2012, à 14:57

Postmortem

Re : Changer le shell d'un user [RESOLU]

Ce sont les ;; qui sont mal placées

2) if [ -z "$(ps ax | grep httpd)" ]
                           then
                                echo "Apache est demarrer"
                           else
                                sudo /etc/init.d/httpd start
                           fi
;;

EDIT :
Et tu pourrais simplement faire :

if ps ax | grep -q httpd # Ou if pgrep httpd > /dev/null
then
echo "Apache démarré"
else
sudo /etc/init.d/httpd start
fi

RE-EDIT :
Petite explication :
Derrière un if, on est pas obligé de mettre un test. On peut mettre une commande. Si le code retour de la commande est 0, on fait ce qu'il y a dans le then, sinon, on fait ce qu'il y a dans le else.

RE-RE-EDIT :
Le ps | grep n'est pas une bonne idée car, bien que je n'ai pas de process s'appelant toto :

$ ps ax | grep toto
16927 pts/3    S+     0:00 grep toto

Dernière modification par Postmortem (Le 20/04/2012, à 15:28)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#42 Le 20/04/2012, à 16:11

Bousky

Re : Changer le shell d'un user [RESOLU]

Postmortem a écrit :

si mes souvenirs sont bons, les process apache se nomment httpd

Chez moi c'est « apache2 ».


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#43 Le 24/04/2012, à 10:02

soume86

Re : Changer le shell d'un user [RESOLU]

Bonjour,

Wi c'est bien apache2.

Maintenant ce que je voudrais savoir c'est:

Est ce que c'est possible de démarrer un service linux (service apache2 start) en cliquant sur un lien de ma page Web par exemple.

PS: J'ai mon serveur Web apache php qui est fonctionnel.

C'est faisable,non? Comment m'y prendre?

Merci d'avance.

Hors ligne

#44 Le 24/04/2012, à 11:14

johndo

Re : Changer le shell d'un user [RESOLU]

à moins que ton lien soit fourni par un autre serveur Web, je ne vois pas comment tu peux avoir accès à une page web d'un serveur arrété... roll

Hors ligne

#45 Le 24/04/2012, à 11:29

soume86

Re : Changer le shell d'un user [RESOLU]

lol, non c'est juste un exemple:lol:

Je veux que quand tu clique sur un lien, depuis ma page Web (Cliquez ici pour redémarrer openvpn), la commande service openvpn restart se lance.

C'est faisable sa, non?

Hors ligne

#46 Le 24/04/2012, à 14:59

soume86

Re : Changer le shell d'un user [RESOLU]

alors les amis,

Des idées??

Hors ligne

#47 Le 24/04/2012, à 15:44

soume86

Re : Changer le shell d'un user [RESOLU]

J'ai vu que c'est possible avec l'option exec () de php.

Est ce que quelqu'un sait comment utiliser l'option exec de php pour démarrer un service linux depuis une page Web?

Hors ligne

#48 Le 24/04/2012, à 15:46

serged

Re : Changer le shell d'un user [RESOLU]

Si la page web est hébergée sur ta machine pas de problème. Quelque chose comme :

<a href="restartvpn.php">Redémarrer le vpn</a>

et dans "restartvpn.php" :

<?php
shell_exec ("sudo service openvpn restart") ;
?>

En mettant les droits qu'il faut à l'utilisateur www-data.
... Et sécuriser cette page pour que toi seul puisse y accéder...


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#49 Le 25/04/2012, à 10:06

soume86

Re : Changer le shell d'un user [RESOLU]

Bonjour,

J'ai créé un fichier index.php:

<html>
<head><title>Exemple</title></head>
<body>
<a href="restartvpn.php">Stopper le VPN</a>
</body>
</html>

et dans restartvpn.php:

<?php
shell_exec("sudo /etc/init.d/openvpn stop");
?>

J'ai même essayé des ` à la place des " mais sa ne marche pas.
Quand je clique sur Stopper le VPN, il m'affiche une page blanche et rien ne se passe.

PS: l'utilisateur www-data peut se connecter sur la machine et a le droit de stopper le vpn.
J'ai posté le copie/coller exacte des contenus des fichiers.

Est ce qu'il faut rajouter quelques choses dans un de ces fichiers?
Des manips à faire?

Merci d'avance

Hors ligne

#50 Le 25/04/2012, à 13:43

soume86

Re : Changer le shell d'un user [RESOLU]

Pourtant quand je fais:

su apache
php restartvpn.php

sa marche.

Alors pourquoi sa marche pas via la page web?

Hors ligne