python 写一个windows连接到linux使用普通用户登录后跳转为root用户的脚本
时间: 2024-05-06 18:18:30 浏览: 4
你可以使用 Paramiko 模块实现 Python 脚本连接 Linux。
以下是一个示例脚本,可以在 Windows 上使用 Python 连接到 Linux 并以普通用户登录,然后使用 su 命令切换到 root 用户:
```python
import paramiko
# 远程 Linux 服务器信息
hostname = 'your_host_name'
port = 22
username = 'your_username'
password = 'your_password'
# 创建 SSH 客户端对象
client = paramiko.SSHClient()
# 自动添加服务器的 SSH 主机密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
client.connect(hostname, port=port, username=username, password=password)
# 执行普通用户命令
stdin, stdout, stderr = client.exec_command('ls -l')
# 打印命令输出
print(stdout.read().decode())
# 切换到 root 用户
stdin, stdout, stderr = client.exec_command('su')
stdin.write('your_root_password\n') # 输入 root 用户密码
stdin.flush()
# 执行 root 用户命令
stdin, stdout, stderr = client.exec_command('whoami')
# 打印命令输出
print(stdout.read().decode())
# 关闭连接
client.close()
```
注意:在这个示例中,我们直接使用 `stdin.write()` 方法输入 root 用户密码。在实际生产环境中,为了安全起见,你可能需要使用 Paramiko 的 `Channel` 对象来实现更安全的密码输入方法,如使用 `getpass()` 函数读取控制台输入的密码,或者使用 SSH 密钥登录。