IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script shell création user Password


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2013
    Messages : 38
    Points : 14
    Points
    14
    Par défaut Script shell création user Password
    Bonjours

    mon script a évolué, et donc me reste un problème à régler

    voilà mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/bin/bash
    clear
     
    if [ "$(id -u)" != "0" ]
    then
       echo
       echo "This script must be run as root." 1>&2
       echo
       exit 1
    fi
    #Adding user
    echo "Adding user now, please type your user name."
    read user
    echo "$user"
    useradd -m  -s /bin/bash "$user"
    echo ""$user" account had been successfully added !!"
    echo "Now, you'll be asked to create your password"
    passwd "$user"
    while [ $? != 0 ]
    do
       echo "Do it again..."
       passwd "$user" 
    done
    Ce que je veux faire c'est prendre le mot de passe que l'utilisateur entre, et le copier automatiquement ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    htdigest -c /etc/apache2/htpasswd rutorrent "$user"
    en gros, je veux que le mot de passe que l'utilisateur a saisi soit copié directement dans la commande htdigest pour éviter tout autre manipulation.

    merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Bonjour,

    Pour l'encodage d'un mot de passe système et apache digest, utilise plutôt chpasswd et openssl qui sont non interactifs. Voici ce qui pourrait fonctionner dans ton cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #!/bin/bash
    clear
     
    if [ "$(id -u)" != "0" ]
    then
       echo
       echo "This script must be run as root." 1>&2
       echo
       exit 1
    fi
     
    # demander nom et mot de passe
    read -p "Adding user now, please type your user name: " user
    read -s -p "Enter password: " pwd
    echo
     
    # ajout utilisateur
    useradd "$user"
     
    # creation du mot de passe pour cet utilisateur
    echo "${user}:${pwd}" | chpasswd
     
    # creation de l'entree dans le fichier passwd d'apache
    echo "${user}:rutorrent:"$(printf "${user}:rutorrent:${pwd}" | openssl dgst -md5) > .htpasswd

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ripat Voir le message
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if [ "$(id -u)" != "0" ]
    then
    ...
    Salut
    Utiliser -eq/-ne pour les comparaisons numériques
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if [ $(id -u) -ne 0 ]
    then
    ...
    Parce que "000000" n'est pas égal à "0" alors que 000000 -eq 0

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2013
    Messages : 38
    Points : 14
    Points
    14
    Par défaut
    Re bonjour et merci de vos réponse

    cela ne fonctionne pas pour 2 raison 1 le home n'est pas créer et j'ai besoin du home plu tard dans mon script.

    cela ne fonctionne pas j'ai créer l'utilisateur et ru torrent ne le prend pas et j'ai utiliser mon fichier en lui donnent le chemin sans résulta

    merci

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Citation Envoyé par debdarky Voir le message
    Re bonjour et merci de vos réponse

    cela ne fonctionne pas pour 2 raison 1 le home n'est pas créer et j'ai besoin du home plu tard dans mon script.
    Utilise les options de la commande useradd que tu as prises dans ton post de départ et le problème est résolu.

    Citation Envoyé par debdarky Voir le message
    cela ne fonctionne pas j'ai créer l'utilisateur et ru torrent ne le prend pas et j'ai utiliser mon fichier en lui donnent le chemin sans résultat
    J'ai formaté l'entrée dans le fichier .htpasswd comme il convient pour le module apache auth_digest et fait un essai avec un navigateur.

    user:rutorrent:598323ebf0380472e74ecfd717cb7d3b où le hash est un md5 de user:rutorrent:mot de passe

    Y a-t-il un message d'erreur dans ton navigateur ou, surtout, dans les logs d'apache?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2013
    Messages : 38
    Points : 14
    Points
    14
    Par défaut
    Ce que le fichier htpasswd affiche

    rutorrent:rutorrent:(stdin)= e5c3ad9f495da27a6e1ba4bad6e20be2
    j'ai fait un test et sa donne sa

    avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    htdigest -c /etc/apache2/htpasswd rutorrent rutorrent
    cela a généré sa dans le fichier htpasswd et la sa fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rutorrent:rutorrent:e5c3ad9f495da27a6e1ba4bad6e20be2
    Ce que j'ai écrie dans mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #!/bin/bash
    clear
     
    if [ $(id -u) -ne 0 ]
    then
       echo
       echo "This script must be run as root." 1>&2
       echo
       exit 1
    fi
     
    # demander nom et mot de passe
    read -p "Adding user now, please type your user name: " user
    read -s -p "Enter password: " pwd
    echo
     
    # ajout utilisateur
    useradd -m  -s /bin/bash "$user"
     
    # creation du mot de passe pour cet utilisateur
    echo "${user}:${pwd}" | chpasswd
     
    # creation de l'entree dans le fichier passwd d'apache
    echo "${user}:rutorrent:"$(printf "${user}:rutorrent:${pwd}" | openssl dgst -md5) > /etc/apache2/htpasswd
    Ce que les logs dis



    error.log
    [Sun Aug 04 10:59:18 2013] [notice] Apache/2.2.22 (Debian) configured -- resuming normal operations
    [Sun Aug 04 10:59:19 2013] [notice] caught SIGTERM, shutting down
    [Sun Aug 04 10:59:20 2013] [notice] Apache/2.2.22 (Debian) PHP/5.4.4-14+deb7u3 configured -- resuming normal operations
    [Sun Aug 04 10:59:25 2013] [notice] Graceful restart requested, doing restart
    apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
    [Sun Aug 04 10:59:25 2013] [notice] Apache/2.2.22 (Debian) PHP/5.4.4-14+deb7u3 configured -- resuming normal operations
    [Sun Aug 04 11:05:13 2013] [notice] caught SIGTERM, shutting down
    [Sun Aug 04 11:05:14 2013] [notice] Digest: generating secret for digest authentication ...
    [Sun Aug 04 11:05:14 2013] [notice] Digest: done
    [Sun Aug 04 11:05:14 2013] [notice] Apache/2.2.22 (Debian) PHP/5.4.4-14+deb7u3 mod_ssl/2.2.22 OpenSSL/1.0.1e configured -- resuming normal operations
    [Sun Aug 04 11:05:14 2013] [notice] caught SIGTERM, shutting down
    [Sun Aug 04 11:05:15 2013] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Sun Aug 04 11:05:15 2013] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Sun Aug 04 11:05:15 2013] [notice] Digest: generating secret for digest authentication ...
    [Sun Aug 04 11:05:15 2013] [notice] Digest: done
    [Sun Aug 04 11:05:15 2013] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Sun Aug 04 11:05:15 2013] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Sun Aug 04 11:05:15 2013] [notice] Apache/2.2.22 (Debian) PHP/5.4.4-14+deb7u3 mod_ssl/2.2.22 OpenSSL/1.0.1e configured -- resuming normal operations
    [Sun Aug 04 11:09:26 2013] [error] [client 192.168.231.1] Digest: user rutorrent: password mismatch: /rutorrent/
    [Sun Aug 04 11:09:39 2013] [error] [client 192.168.231.1] File does not exist: /var/www/favicon.ico
    access.log
    ::1 - - [04/Aug/2013:10:59:25 -0400] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Debian) (internal dummy connection)"
    ::1 - - [04/Aug/2013:10:59:25 -0400] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Debian) (internal dummy connection)"
    ::1 - - [04/Aug/2013:10:59:25 -0400] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Debian) (internal dummy connection)"
    ::1 - - [04/Aug/2013:10:59:25 -0400] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Debian) (internal dummy connection)"
    ::1 - - [04/Aug/2013:10:59:25 -0400] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Debian) (internal dummy connection)"
    192.168.231.1 - - [04/Aug/2013:11:09:10 -0400] "GET /rutorrent/ HTTP/1.1" 401 1093 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36"
    192.168.231.1 - rutorrent [04/Aug/2013:11:09:26 -0400] "GET /rutorrent/ HTTP/1.1" 401 1093 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36"
    192.168.231.1 - - [04/Aug/2013:11:09:39 -0400] "GET /favicon.ico HTTP/1.1" 404 773 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36"

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Apparemment nous utilisons deux versions différentes de openssl qui produisent deux formats de sortie différents.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ openssl version
    OpenSSL 0.9.8o 01 Jun 2010
     
    $ printf "user:rutorrent:mot de passe" | openssl dgst -md5
    ed666ce3414d12f66da85a36f81393f2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ openssl version
    OpenSSL 1.0.1e 11 Feb 2013
     
    $ printf "user:rutorrent:mot de passe" | openssl dgst -md5
    (stdin)= ed666ce3414d12f66da85a36f81393f2
    Le format de sortie de cette version plus récente ajoute (stdin)=

    Pour t'en débarrasser, tu as le choix:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    echo "${user}:rutorrent:"$(printf "${user}:rutorrent:${pwd}" | openssl dgst -md5 | cut -d" " -f2) > /etc/apache2/htpasswd
     
    echo "${user}:rutorrent:"$(printf "${user}:rutorrent:${pwd}" | openssl dgst -md5 | awk '{print $2}') > /etc/apache2/htpasswd
     
     
    # ou, en utilisant md5sum:
    echo "${user}:rutorrent:"$(printf "${user}:rutorrent:${pwd}" | md5sum | cut -d" " -f1) > /etc/apache2/htpasswd
     
    echo "${user}:rutorrent:"$(printf "${user}:rutorrent:${pwd}" | md5sum | awk '{print $1}') > /etc/apache2/htpasswd

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2013
    Messages : 38
    Points : 14
    Points
    14
    Par défaut
    merci 1000 fois résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script création user + mailbox sur AD
    Par stolken dans le forum VBScript
    Réponses: 0
    Dernier message: 12/08/2010, 17h33
  2. Création user en script
    Par tom974 dans le forum VBScript
    Réponses: 0
    Dernier message: 24/09/2009, 10h32
  3. Script shell - gestion user, touche entrée
    Par monsieur75 dans le forum Linux
    Réponses: 23
    Dernier message: 31/03/2009, 17h24
  4. script shell création de groupes
    Par Tom0251 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 06/07/2008, 20h12
  5. scripts de création des tables d'un user donné
    Par lsaid dans le forum Administration
    Réponses: 2
    Dernier message: 19/06/2007, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo