2017-02-26 2 views
0

システムユーザアカウント、smbアカウント、afpアカウント(Netatalk)をDebianの一歩で作成する小さなスクリプトを書いたサーバ。ほとんどのものは、-cパラメータuseraddコマンドを除き、かなりうまく動作します。それは引用されています。私はこれが主要な問題だと思う。私はいくつかの調査を行い、argsで引用符を保持する方法を見つけましたが、すべての試みはエラーコード2で行われ、useraddコマンドの使用方法のプロンプトで終了しました。私はシェルシステムユーザ、smbユーザ、netatalkユーザ用のbashスクリプト

useradd -m -d /home/username -p abcDEFghiJKLm -c "Full Name" -g users username 

と私は取得にこ​​の行を起動するために管理

は、エラーコード2とuseraddのコマンドの使用法メッセージです。

Usage: useradd [options] LOGIN 
     useradd -D 
     <...> 

これは私のシステムユーザを作成する機能です。

AddSystemUser() { 
    echo "Adding system user" 
    myArgs="-p $cryptPass" 
    if [ "$fullName" != "" ] 
    then 
    myArgs="$myArgs -c \"$fullName\"" 
    fi 
    if [ "$userGroup" != "" ] 
    then 
    myArgs="$myArgs -g $userGroup" 
    fi 
    if [ "$userGroups" != "" ] 
    then 
    myArgs="$myArgs -G $userGroups" 
    fi 

    doUserAdd="useradd -m -d /home/$userName $myArgs $userName" 
    #echo $doUserAdd 
    $doUserAdd 
    myResultCode=$? 
    if [ $myResultCode -ne 0 ] 
    then 
    echo "Adding system user failed with error code $myResultCode" 
    exit $(($myResultCode + 100)) 
    fi 
} 

見ての通り、私は貝に完全\名前 -c構文を使用することができますので、私はこの場所で二重引用符を追加しています。

私はまた、「「フルネームは」「同じ結果とスクリプト内の引用符を追加することなく、-c のようなシェル上でそれらを入力せずにの方法を試してみました:useraddのの使用方法のメッセージ。

誰かが私を助けてくださいことはできますか?私は何が間違っているのか分からない。

答えて

関連する問題