📜  使用Python脚本在 Linux 中添加用户(1)

📅  最后修改于: 2023-12-03 15:36:36.956000             🧑  作者: Mango

使用Python脚本在 Linux 中添加用户

在 Linux 系统中,可以通过命令行或者 GUI 工具来添加用户。但是如果需要在多台服务器上添加用户,手动操作就会非常烦琐。这时,我们可以编写 Python 脚本来批量添加用户,提高效率。

程序功能

本程序实现的是使用 Python 脚本在 Linux 中添加用户,可以为每个用户设置密码、UID、GID、Shell 等信息。

实现步骤
1. 导入模块

使用 Python 进行 Linux 操作,需要导入 ossubprocess 模块。

import os
import subprocess
2. 定义变量

用户添加时需要使用的变量有用户名、密码、UID、GID 和 Shell 等。

username = 'newuser'
password = 'password123'
uid = '1020'
gid = '1020'
shell = '/bin/bash'
3. 添加用户

使用 os.system() 或者 subprocess.run() 方法来执行 Linux 命令,完成用户添加操作。

os.system('sudo useradd -m -p $(openssl passwd -1 {}) -u {} -g {} -s {} {}'.format(password, uid, gid, shell, username))
subprocess.run(['sudo', 'useradd', '-m', '-p', '$(openssl passwd -1 {})'.format(password), '-u', uid, '-g', gid, '-s', shell, username])
4. 验证用户

可以使用 subprocess.run() 方法来执行 sudo cat /etc/passwd 命令,查看新增的用户是否存在。

result = subprocess.run(['sudo', 'cat', '/etc/passwd'], stdout=subprocess.PIPE)
print(result.stdout.decode('utf-8'))
完整代码
import os
import subprocess

username = 'newuser'
password = 'password123'
uid = '1020'
gid = '1020'
shell = '/bin/bash'

os.system('sudo useradd -m -p $(openssl passwd -1 {}) -u {} -g {} -s {} {}'.format(password, uid, gid, shell, username))

result = subprocess.run(['sudo', 'cat', '/etc/passwd'], stdout=subprocess.PIPE)
print(result.stdout.decode('utf-8'))
注意事项
  1. 在使用 sudo 命令时,需要确保当前用户有权限使用 sudo
  2. 在输入密码时,需要进行安全处理,可以使用 getpass 模块来获取用户输入的密码,也可以使用其他加密方式对密码进行加密。
  3. 在参数传递时,需要进行类型转换,确保传递的参数类型正确。