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のの使用方法のメッセージ。
誰かが私を助けてくださいことはできますか?私は何が間違っているのか分からない。