linux - shell创建用户,报错“passwd: Unknown user name '}''.”
PHPz
PHPz 2017-04-17 13:54:01
0
2
2300

思路:
判断用户是否存在,标记flag
存在,修改用户密码
不存在,创建用户并修改密码


#!/bin/bash #the script act on a batch of add user,username at the same password name="admin" password="demo" userList="cat /etc/passwd | awk -F ':' '{print $1}'" flag=false for name in $userList; do #statements flag=true done if [ $flag=true ]; then #change password echo "user exist" else echo "create user admin" useradd /home/$name $name fi echo "change password to demo" echo $password | passwd --stdin $name echo "succeed"

输出如下:


实际:
用户不存在且没有创建成功

PHPz
PHPz

学习是最好的投资!

全員に返信 (2)
洪涛

用id命令判断岂不是更方便?

id admin >& /dev/null if [ $? -ne 0 ] then #不等于0,创建用户 echo "create user admin" useradd -d /home/admin -m admin else #等于0说明用户已经存在 echo "user exist" fi

注意你的useradd指定家目录参数,否则是执行不成功的。
而且判断用户是否存在于/etc/passwd中,也可以用:

grep admin /etc/passwd >& /dev/null;echo $?

看看是否等于0。

いいねを押す+0
    Peter_Zhu

    你这用户应该是包含了}符号的原因

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!