Advertisement
leo_mgt

Linux Script

Apr 15th, 2021
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.52 KB | None | 0 0
  1. #!/usr/bin/python3
  2.  
  3. #---------------------------------------
  4. # Script de gerenciamento de usuários.
  5. # Autor: Leonardo Migot.
  6. # Data: Jun/2016
  7. #
  8. # Funções:
  9. #   Exibe usuários/grupos existentes.
  10. #   Lista usuários de cada grupo.
  11. #   Adiciona novos usuários/grupos.
  12. #   Remove usuários/grupos.
  13. #   Altera propriedades de usuários/grupos.
  14. #  
  15. #   Deve ser executado como 'Root'.
  16. #---------------------------------------
  17.  
  18. def ifRoot():
  19.  
  20.     if not os.getenv("USER") == 'root':
  21.         print(u"Você não é o administrador!.")
  22.         exit(1)
  23.  
  24. def getKey(item):
  25.  
  26.     return item[0]
  27.  
  28. ################
  29. ### USUÁRIOS ###
  30. ################
  31.  
  32. def lsUser(address):
  33.  
  34.     idMin = int(sys.argv[1])
  35.     idMax = int(sys.argv[2])
  36.  
  37.     file = open(address, "r")
  38.     pair = []
  39.  
  40.     for string in file.readlines():
  41.  
  42.         temp = int(string.split(":")[2]), string.split(":")[3], string.split(":")[0]
  43.         pair.append(temp)
  44.  
  45.     pair.sort(key=getKey)
  46.  
  47.     for i in pair:
  48.  
  49.         if i[0] >= idMin and i[0] <= idMax:
  50.             print(i[0], "\t", i[1], "\t", i[2])
  51.  
  52.     file.close()
  53.  
  54. def adduser():
  55.  
  56.     name = input(u"Nome do usuário: ")
  57.     uid = input(u"UID do usuário: ")
  58.     group = input("Nome do grupo: ")
  59.  
  60.     home = "/home/" + name
  61.     os.system("useradd -m -d " + home + " -s /bin/bash " + " -G " + group + " -u " + str(uid) + " " + name)
  62.  
  63. def removeuser():
  64.  
  65.     name = input(u"Nome do usuário: ")
  66.  
  67.     os.system("userdel " + name)
  68.  
  69. def edituser():
  70.  
  71.     nomeusr = input(u"Nome do usuário: ")
  72.        
  73.     print(  u"1 - Adicionar á algum grupo.\n"
  74.         u"2 - Mudar nome.\n"
  75.         u"3 - Bloquear senha.\n"
  76.         u"4 - Desbloquear senha.\n"
  77.         u"5 - Data de expiração.\n"
  78.         u"6 - Alterar UID.\n" )
  79.  
  80.     op2 = int(input(">> "))
  81.  
  82.     if op2 == 1:
  83.  
  84.         parameter = input("Nome do grupo: ")
  85.         os.system("usermod -G " + parameter + " " + nomeusr)
  86.  
  87.     elif op2 == 2:
  88.  
  89.         parameter = input("Novo nome (login): ")
  90.         os.system("usermod -l " + parameter + " " + nomeusr)
  91.  
  92.     elif op2 == 3:
  93.  
  94.         os.system("usermod -L " + nomeusr)
  95.  
  96.     elif op2 == 4:
  97.  
  98.         os.system("usermod -U " + nomeusr)
  99.  
  100.     elif op2 == 5:
  101.  
  102.         ano = input(u"Ano de expiração: ")
  103.         mes = input(u"Mês de expiração: ")
  104.         dia = input(u"Dia de expiração: ")
  105.  
  106.         os.system("usermod -e " + ano + "-" + mes + "-" + dia + " " + nomeusr)
  107.  
  108.     elif op2 == 6:
  109.  
  110.         parameter = input("Novo UID: ")
  111.         os.system("usermod -u " + parameter + " " + nomeusr)
  112.  
  113. ##############
  114. ### GRUPOS ###
  115. ##############
  116.  
  117. def lsGroup(address):
  118.  
  119.     idMin = int(sys.argv[3])
  120.     idMax = int(sys.argv[4])
  121.  
  122.  
  123.     file = open(address, "r")
  124.     pair = []
  125.  
  126.     for string in file.readlines():
  127.  
  128.         temp = int(string.split(":")[2]), string.split(":")[0]
  129.         pair.append(temp)
  130.  
  131.     pair.sort(key=getKey)
  132.  
  133.     for i in pair:
  134.  
  135.         if i[0] >= idMin and i[0] <= idMax:
  136.             print(i[0], "\t", i[1])
  137.  
  138.     file.close()
  139.  
  140. def groupUsers(address):
  141.  
  142.     name = input("Nome do grupo: ")
  143.  
  144.     file = open(address, "r")
  145.  
  146.     pair = []
  147.  
  148.     for string in file.readlines():
  149.  
  150.         temp = int(string.split(":")[2]), string.split(":")
  151.         pair.append(temp)
  152.  
  153.     pair.sort(key=getKey)
  154.  
  155.     for i in pair:
  156.  
  157.         if i[1][0] == name:
  158.             print(i[1][3])
  159.  
  160.     file.close()
  161.  
  162. def addgroup():
  163.  
  164.     name = input("Nome do grupo: ")
  165.     gid = input("GID do grupo: ")
  166.  
  167.     os.system("groupadd -g " + str(gid) + " " + name)
  168.  
  169. def removegroup():
  170.  
  171.     name = input("Nome do grupo: ")
  172.  
  173.     os.system("groupdel "+ name)
  174.  
  175. def editgroup():
  176.  
  177.     name = input("Nome do grupo: ")
  178.     new = input("Novo nome do grupo: ")
  179.     gid = input("Novo GID do grupo: ")
  180.  
  181.     os.system("groupmod -g" + str(gid) + " -n " + new + " " + name)
  182.  
  183. ##############
  184. ###  MAIN  ###
  185. ##############
  186.  
  187. import os
  188. import sys
  189.  
  190. user_f = "/etc/passwd"
  191. group_f = "/etc/group"
  192.  
  193. ifRoot()
  194.  
  195. while True:
  196.     print(  u"Escolha um opção:\n"
  197.  
  198.             #Usuários
  199.             u"1 - Listar todos usuários.\n"
  200.             u"2 - Adicionar um usuário.\n"
  201.             u"3 - Remover um usuário.\n"
  202.             u"4 - Editar usuário.\n"
  203.  
  204.             #Grupos
  205.             u"5 - Listar todos grupos.\n"
  206.             u"6 - Listar usuários por grupo.\n"
  207.             u"7 - Adicionar um grupo.\n"
  208.             u"8 - Remover um grupo.\n"
  209.             u"9 - Editar um grupo (GID e nome).\n"
  210.             u"0 - SAIR.\n" )
  211.  
  212.     opcao = int(input("> "))
  213.  
  214.     if opcao == 0:
  215.  
  216.         exit(0)
  217.  
  218.     elif opcao == 1:
  219.  
  220.         lsUser(user_f)
  221.  
  222.     elif opcao == 2:
  223.  
  224.         adduser()
  225.  
  226.     elif opcao == 3:
  227.  
  228.         removeuser()
  229.  
  230.     elif opcao == 4:
  231.  
  232.         edituser()
  233.  
  234.     elif opcao == 5:
  235.  
  236.         lsGroup(group_f)
  237.  
  238.     elif opcao == 6:
  239.  
  240.         groupUsers(group_f)
  241.  
  242.     elif opcao == 7:
  243.  
  244.         addgroup()
  245.  
  246.     elif opcao == 8:
  247.  
  248.         removegroup()
  249.  
  250.     elif opcao == 9:
  251.  
  252.         editgroup()
  253.  
  254.     pause = input("Tecle enter...")
  255.     os.system("clear")
  256.  
  257. #############
  258. ###  FIM  ###
  259. #############
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement