nouveau fichier : sio2/sisr/20-python/exo4-1.py nouveau fichier : sio2/sisr/20-python/script1.sh nouveau fichier : sio2/sisr/20-python/users.txt.pw
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
#!/usr/bin/python3
|
|
# tips lancement : sudo python exo4-1.py comptes.txt
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
# Fonction pour créer un utilisateur avec le login et le nom complet
|
|
def create_user(login, full_name):
|
|
os.system(f'sudo useradd -m -c "{full_name}" -s /bin/bash {login}')
|
|
print(f"Utilisateur {login} créé avec succès.")
|
|
res=subprocess.run(["pwgen", "7", "1"],stdout=subprocess.PIPE)
|
|
pw = res.stdout.decode('utf8').rstrip()
|
|
os.system(f"echo {login}:{pw}|chpasswd")
|
|
os.system(f"echo {login}:{pw} >> users.txt.pw")
|
|
print (pw)
|
|
|
|
# Fonction principale pour lire le fichier et créer les utilisateurs
|
|
def main(filename):
|
|
try:
|
|
with open(filename, 'r') as file:
|
|
for line in file:
|
|
if line.strip():
|
|
login, full_name = map(str.strip, line.split(':'))
|
|
create_user(login, full_name)
|
|
except FileNotFoundError:
|
|
print(f"Le fichier {filename} n'a pas été trouvé.")
|
|
except Exception as e:
|
|
print(f"Erreur lors de la lecture du fichier {filename}: {e}")
|
|
|
|
# Point d'entrée du script
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) != 2:
|
|
print("Usage: python exo4-1.py <nom_du_fichier>")
|
|
else:
|
|
main(sys.argv[1])
|