expect脚本里 su - root 报错 su: Authentication failure
时间: 2023-11-03 20:52:48 浏览: 356
在Expect脚本中,如果执行`su - root`命令时遇到`su: Authentication failure`错误,那通常意味着密码输入有误或者当前用户没有足够的权限来切换到`root`用户。
您可以尝试以下解决方法:
1. 确保您在Expect脚本中正确输入了`root`用户的密码。可以使用`send`命令发送密码给`su`命令。
```bash
#!/usr/bin/expect
spawn su - root
expect "Password:"
send "your_root_password\r"
interact
```
在上述示例中,使用`send`命令将`your_root_password`替换为实际的`root`用户密码,并添加`\r`来模拟回车键。
2. 检查当前用户是否具有切换到`root`用户的权限。确保当前用户是`sudoers`文件中允许切换到`root`用户的用户之一。
您可以使用以下命令来编辑`sudoers`文件:
```bash
sudo visudo
```
在打开的文件中,找到以下行:
```
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
```
确保当前用户所属的组在这行的前面没有被注释掉(没有以`#`开头),并且用户属于该组。如果需要添加用户到该组,可以使用以下命令:
```bash
sudo usermod -aG sudo your_username
```
将`your_username`替换为您要添加到`sudo`组的用户名。
请注意,执行`su - root`命令时,为了安全起见,密码不会显示在终端上。
如果上述方法仍然无法解决问题,请确保您的`root`用户密码正确,并且具有足够的权限来切换到`root`用户。
希望这些信息对您有所帮助!如果您还有其他问题,请随时提问。
阅读全文
相关推荐















