Useradd

Résolu
Harrys -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Voilà, je vous explique rapidement, j'ai un pbm avec la création d'un utilisateur avec la commande useradd

useradd -d /home/$nameUser -m -g 1000 -s /bin/bash $nameUser


il me met
operateur binaire attendu


9 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Personnellement j'aurais plutôt écrit un truc du genre :

    #!/bin/sh
    
    user="toto"
    if [ $(grep -c "^$user:" /etc/passwd) -eq 0 ] ; then
            echo "add"
    else
            echo "Cet utilisateur existe déjà" >&2
    fi


    Bonne chance
    1
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    À mon avis c'est ta variable $nameUser qui contient n'importe quoi.

    (root@aldur) (~) # useradd -d /home/tata -m -g 1000 -s /bin/bash tata
    (root@aldur) (~) # grep tata /etc/passwd
    tata:x:1006:1000::/home/tata:/bin/bash


    Bonne chance
    0
  3. Harrys
     
    CreateUser () 
    { 
     echo "Nom du nouvel utilisateur"; 
     read nameUser; 
     if [ Existe user $nameUser ] 
     then 
      echo "Cet utilisateur existe déjà !" 
     else 
      sudo useradd -d /home/$nameUser -m -g 1000 -s /bin/bash $nameUser 
     fi 
    }
    
    


    Je vois pas l'erreur. Dsl
    0
  4. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    À première vue ça à l'air correct.

    (root@aldur) (~) # read nameUser
    tata
    (root@aldur) (~) # echo [$nameUser]
    [tata]
    (root@aldur) (~) # useradd -d /home/$nameUser -m -g 1000 -s /bin/bash $nameUser
    (root@aldur) (~) # grep tata /etc/passwd
    tata:x:1001:1000::/home/tata:/bin/bash


    Tu as peut-être un caractère invisible sur la ligne comportant useradd, essaye de l'effacer et de la retaper.

    Si je peux me permettre, attribuer le groupe primaire 1000 à un utilisateur n'est pas forcément une idée géniale car ce groupe correspond souvent au groupe primaire du premier utilisateur créé sur la machine.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Harrys
     
    je sais mais c'est un script que je fais pour les cours donc ca a pas énormément d'importance

    En tout cas, merci !
    0
  7. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    C'était bien un caractère invisible ? Parce que l'initialisation de $userName semble correct (à vérifier avec un echo [$userName]).
    0
  8. Harrys
     
    J'ai toujours l'erreur, je pense qu'elle vient de ma fonction de test de l'existence de l'utilisateur ou de son appel.

    Je regarderais ca quand j'aurais 5 minutes !

    Existe ()
    {
    	case "$1" in
    		"user") grep "^$2:" /etc/passwd > /dev/null && return 0
    		return 1
    		;;
    		"group") grep "^$2:" /etc/group > /dev/null && return 0
    		return 1
    		;;
    		*)
    		echo "Option incorrecte."
    		;;
    	esac
    }
    0
  9. Harrys
     
    Je viens de trouver d'où vient cette erreur.
    J'ai remplacé les crochets par des parenthèses et là miracle, plus d'erreur !
    0
  10. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    J'ai mon message d'hier soir qui est passé à la trappe, tu peux écrire ton test plus simplement grâce à l'option -c :

    user=mando
    if [ $(grep -c "^$user:" /etc/passwd) -eq 0 ] ; then
        echo "add"  
    else
        echo "Cet utilisateur existe déjà" >&2
    fi
    


    Bonne chance
    0