passwd:未识别的选项 ‘--stdin’
时间: 2023-10-06 11:12:25 浏览: 150
如果你在使用`passwd`命令时出现了`passwd: unrecognized option '--stdin'`错误,那么很可能是因为你的Linux系统不支持`--stdin`选项。
在一些较老的Linux系统中,`passwd`命令可能不支持`--stdin`选项,这时我们可以尝试使用`chpasswd`命令来实现类似的功能。`chpasswd`命令可以从标准输入中读取用户名和密码,并将其应用到系统中。
具体地,可以使用以下命令来修改用户的密码:
```
echo 'username:newpassword' | chpasswd
```
其中,将`username`替换为要修改密码的用户名,将`newpassword`替换为新密码即可。
需要注意的是,如果你需要修改的用户不存在,或者当前用户没有足够的权限来修改密码,那么这个命令可能会失败。
相关问题
logger.info("执行设备管理:正确密码连接---TestCase1---") data = { "passwd": 1234 } try: #传输data-passwd数据,执行DeviceManagement-Connect方法 self.cns.Connect(**data) assert self.cns.dlg['Connected'].exists() logger.info("设备管理:正确密码连接---测试PASS---") except Exception as e: logger.info("FAIL") logger.error(str(e)) logger.info("设备管理:正确密码连接---测试FAIL---") self.assertEqual(True, False) 用例如果执行失败,则再次重复执行,重复3次仍失败,则判定为失败 这个要怎么改
根据你的要求,如果测试用例执行失败,则需要重复执行3次,如果3次重复执行仍然失败,则判定为失败。你可以使用一个循环来实现重复执行的功能,同时还需要记录重复执行的次数。下面是修改后的代码:
```
logger.info("执行设备管理:正确密码连接---TestCase1---")
data = {
"passwd": 1234
}
max_retry = 3 // 最大重试次数
retry_count = 0 // 当前重试次数
test_result = False // 测试结果,默认为失败
while retry_count < max_retry and not test_result:
try:
# 传输data-passwd数据,执行DeviceManagement-Connect方法
self.cns.Connect(**data)
assert self.cns.dlg['Connected'].exists()
logger.info("设备管理:正确密码连接---测试PASS---")
test_result = True
except Exception as e:
retry_count += 1
logger.info(f"第{retry_count}次重试")
logger.error(str(e))
logger.info("设备管理:正确密码连接---测试FAIL---")
if not test_result:
logger.info("FAIL")
self.assertEqual(True, False)
```
这样修改后,如果测试用例执行失败,则会进行最多3次的重复执行,如果3次重复执行仍然失败,则判定为失败。
echo a | passwd --stdin root
这是一个 Linux 下的命令,意思是将字符串 "a" 作为密码传递给 root 用户。具体来说,"echo a" 输出字符串 "a",管道符号 "|" 将其作为标准输入传递给 "passwd" 命令,"--stdin" 选项表示从标准输入读取密码,"root" 是要修改密码的用户。执行此命令将更改 root 用户的密码为 "a"。需要注意的是,这种方式修改密码并不安全,因为密码明文出现在命令行中,有可能被其他人截获。建议使用更安全的方式修改密码。