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

思路:
判断用户是否存在,标记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。

    Peter_Zhu

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

      최신 다운로드
      더>
      웹 효과
      웹사이트 소스 코드
      웹사이트 자료
      프론트엔드 템플릿
      회사 소개 부인 성명 Sitemap
      PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!