簡體   English   中英

使用 ubuntu 中的 python 從文件創建用戶和密碼

[英]Create a user and password from a file using python in ubuntu

我被要求從 ubuntu 中的兩個文件創建用戶和密碼。下面是我在 python 中所做的。

import os

with open("users.txt",'r') as file, open("passwords.txt", 'r') as password:
    for line in file:
        pass
        for passw in password:
            os.system('useradd ' +line)
            os.system('echo +line +passw | chpasswd')

users.txt的內容

avinash
ananthram

passwords.txt 的內容

lifeisbeautiful
lifeisbeautifulagain

它在最后一行給我一個錯誤,說chpasswd: line 1: missing new password 我試過使用os.system("echo +line +passw | chpasswd")但它仍然給我錯誤。 有人可以幫我解決這個問題嗎? 提前致謝

我希望使用來自兩個文件的密碼創建用戶。

嘗試這個

os.system(f'echo -e "{line}\n{passw}" | chpasswd')

解釋- echo 命令用於將字符串寫入標准 output,但您正在使用它來構建要傳遞給 chpasswd 的命令。 除了使用 echo,您還可以使用 echo 的 -e 選項在傳遞給 chpasswd 的字符串中包含一個新行。

  1. 您必須同時遍歷兩個文件中的行。 您提供的代碼從用戶文件中讀取第一行,然后遍歷所有嘗試為第一個用戶設置這些密碼的密碼。 當您到達用戶文件中的讀取第二行時,您已經到達密碼文件中的 EOF。
  2. 用這些變量的值替換最后一個命令中的linepassw
  3. chpasswd需要用冒號而不是空格分隔的用戶和密碼
  4. -n添加到echo以禁止在末尾添加換行符
import os

with open("users.txt",'r') as file, open("passwords.txt", 'r') as password:
    for line, passw in zip(file, password):
        os.system('useradd ' +line)
        os.system(f'echo -n "{line}:{passw}" | chpasswd')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM