How do I create a user in Linux using Python? I mean, I know about the subprocess module and thought about calling 'adduser' and passing all the p开发者_运维百科arameters at once, but the 'adduser' command asks some questions like password, full name, phone and stuff. How would I answer this questions using subprocess? I've seen module called pexpect in this question: Can I use Python as a Bash replacement?. Is there any other standard module?
Use useradd, it doesn't ask any questions but accepts many command line options.
On Ubuntu, you could use the python-libuser package
import os
import crypt
password ="p@ssw0rd" 
encPass = crypt.crypt(password,"22")
os.system("useradd -p "+encPass+" johnsmith")
You could just use the built-in binaries so just call useradd or something through the subprocess module, However I don't know if there's any other modules that hook into Linux to provide such functionality.
def createUser(name,username,password):
    encPass = crypt.crypt(password,"22")   
    return  os.system("useradd -p "+encPass+ " -s "+ "/bin/bash "+ "-d "+ "/home/" + username+ " -m "+ " -c \""+ name+"\" " + username)
This is a solution where shell is false.
#!/bin/env/python
import subprocess
import traceback
import sys
def user_add(username, user_dir=None):
    if user_dir:
        cmd = ["sudo", "useradd", "-d", user_dir, "-m", username]
    else:
        cmd = ["sudo", "useradd", username]
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    output, error = p.communicate()
    output = output.strip().decode("utf-8")
    error = error.decode("utf-8")
    if p.returncode != 0:
        print(f"E: {error}")
        raise
    return output
try:
    username = "user"
    output = user_add(username)
    print(F"Success. {username} is added")
except:
    traceback.print_exc()
    sys.exit(1)
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论