Я пытался запускать команды терминала Linux через скрипт Python, и я не могу ничего сделать с тем, что нашел до сих пор.

Это то, что я сделал до сих пор:

import os
import crypt

def addnewuser():

    uname=raw_input("Select Username")
    upass=raw_input("Select Password")

    #The encryption module seems to solve the obvious security leak,
    #but I still don't know whether even the exposed encrypted password is safe or not.
    ucrypt=crypt.crypt(upass,"123")
    os.system("useradd -m -p "+upass+" "+uname)

addnewuser()

Об этом уже спрашивали, но я не могу найти решение, потому что всякий раз, когда я запускаю скрипт, ничего не меняется, когда я пытаюсь отобразить всех пользователей, когда я печатаю

compgen -u

На терминале.

Обновление 1: я хочу сделать процесс безопасным и обнаружил, что могу защитить пароль sudo от записи в истории терминала с помощью файла stdout. Как я могу написать там с Python для создания пользователей?

Обновление 2: мне удалось избежать некоторых утечек безопасности, зашифровав пароль пользователя с помощью модуля шифрования в моем коде. Но если у злоумышленника есть зашифрованный пароль, разве это не одно и то же?


Основная цель этого для меня - научиться разрабатывать инструменты администрирования, желательно на Python.


Я использую Python 2.7, а также PythonIDLE в Ubuntu 16.04.

Спасибо за вашу помощь.

-1
Themistoklis Gkasios 20 Мар 2017 в 07:05

2 ответа

Лучший ответ

Для моего приложения мне нужен был способ запуска команд sudo через скрипт python.

Этот ответ - это в основном то, что я искал.

Еще раз спасибо, что нашли время, чтобы помочь.

0
Codebling 13 Мар 2020 в 02:17

Одним из очень грязных решений является запуск

os.system("sudo useradd -m -p "+upass+" "+uname)

И добавьте в / etc / sudoers

user ALL=NOPASSWD: useradd

Где пользователь - это имя пользователя, который запускает ваш скрипт.

СНОВА ЭТО ОЧЕНЬ БЕЗОПАСНО и НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЕТСЯ

0
rth 20 Мар 2017 в 04:15