📅  最后修改于: 2023-12-03 15:36:36.956000             🧑  作者: Mango
在 Linux 系统中,可以通过命令行或者 GUI 工具来添加用户。但是如果需要在多台服务器上添加用户,手动操作就会非常烦琐。这时,我们可以编写 Python 脚本来批量添加用户,提高效率。
本程序实现的是使用 Python 脚本在 Linux 中添加用户,可以为每个用户设置密码、UID、GID、Shell 等信息。
使用 Python 进行 Linux 操作,需要导入 os
和 subprocess
模块。
import os
import subprocess
用户添加时需要使用的变量有用户名、密码、UID、GID 和 Shell 等。
username = 'newuser'
password = 'password123'
uid = '1020'
gid = '1020'
shell = '/bin/bash'
使用 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])
可以使用 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'))
sudo
命令时,需要确保当前用户有权限使用 sudo
。getpass
模块来获取用户输入的密码,也可以使用其他加密方式对密码进行加密。