gpt4 book ai didi

linux - passwd 命令提示用户不存在

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:47 25 4
gpt4 key购买 nike

这是我的脚本:

#!/bin/bash

for i in $(cat usernames.txt)

do
echo $i
useradd $i -m -s /bin/bash $i -G groupy $i
passwd=echo "password" | passwd $i
passwd -e $i
echo "User must change password when they come back"

done

它应该做的是:

  • 根据文件中给定的名称和主目录创建用户
  • 他们的密码将是默认的“password”,他们必须在下次登录时更改密码
  • 将他们放入已经创建的名为“groupy”的组中

这只是针对大部分时间我们只是阅读章节的类(class)的练习。我们的老师希望我们尝试这样做,但我们阅读的章节与这种脚本构建无关。我真的不确定我做错了什么。谁能指出我做错了什么和/或指出正确的方向?

我继续得到这个作为输出:

passwd: user 'wworthington' does not exist
./myscript: line 8: password: command not found
passwd: Permission denied.
User must change password when they come back

最佳答案

看来您最紧迫的问题是权限问题。用户“wworthington”未创建,这意味着 useradd 无效。大多数系统都要求您以 super 用户身份运行,通过以 root 身份登录或使用 sudo 命令运行管理命令,例如 useraddpasswd(更多信息参见 intro to sudo)。 passwd 可以由普通用户为他/她自己的帐户运行,也可以由 super 用户为任何用户帐户运行(参见 passwd man page)。

此外,passwd=echo "password"| passwd $i 将名为 passwd 的变量设置为 echo 然后运行一个不存在的命令 "password" 管道(空) 输出到 passwd $i。您可以将用户 $i 的密码设置为“password”,并使用 -puseradd 命令中设置到期日期>-e 选项(参见 useradd man page )。这两个选项都需要在选项标签后有一个值(就像您使用 -G groupy-s/bin/bash 所做的那样)。

关于linux - passwd 命令提示用户不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35529722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com