Как вызвать диалоговое окно для проверки подлинности?

Я пишу программу gui, используя wx-модуль в python. В программе всякий раз, когда я обращаюсь к папке, которая требует прав root, тогда она запрашивает пароль на терминале, но я хочу отобразить диалоговое окно для пользователя, чтобы ввести пароль и подтвердить его подлинность. Как вызвать этот диалог и аутентифицировать пользователя в ubuntu?

13
задан 21 May 2012 в 16:52

24 ответа

Здесь есть два разных вопроса: И как в stackoverflow, отвечая на ваш вопрос: здесь и здесь .

В обоих ответах используется команда gksudo ( уже упомянутый @khamer). Если вы запустите gksudo command (также без python), он в основном сделает то, что делает sudo, но с графическим интерфейсом - то есть попросите пользователя ввести пароль, а затем запустите команду как пользователь root, если пользователь находится в файле sudoers.

Чтобы реализовать предлагаемое решение из связанных ответов в python, вы можете использовать что-то, как показано в следующем примере:

Создать файл run.py:

#!/usr/bin/python

import subprocess
subprocess.call(['gksudo','python create.py'])

И файл create.py:

#!/usr/bin/python

# Create test file..
f = file("mytestfile", "w")

Затем запустите python run.py, и после ввода пароля будет создан файл, принадлежащий root. Если вы запустите python create.py, он будет принадлежать вам (файл не должен существовать до запуска скрипта).

8
ответ дан 25 July 2018 в 19:21

Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.

См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo

3
ответ дан 25 July 2018 в 19:21

Вставьте этот скрипт в свой код:

import os

Password = raw_input('Please enter your root password!')

sudo_command = '<your command>'

execute = os.system('echo %s|sudo -S %s' % (Password, sudo_command))
0
ответ дан 25 July 2018 в 19:21

Здесь есть два разных вопроса: И как в stackoverflow, отвечая на ваш вопрос: здесь и здесь .

В обоих ответах используется команда gksudo ( уже упомянутый @khamer). Если вы запустите gksudo command (также без python), он в основном сделает то, что делает sudo, но с графическим интерфейсом - то есть попросите пользователя ввести пароль, а затем запустите команду как пользователь root, если пользователь находится в файле sudoers.

Чтобы реализовать предлагаемое решение из связанных ответов в python, вы можете использовать что-то, как показано в следующем примере:

Создать файл run.py:

#!/usr/bin/python

import subprocess
subprocess.call(['gksudo','python create.py'])

И файл create.py:

#!/usr/bin/python

# Create test file..
f = file("mytestfile", "w")

Затем запустите python run.py, и после ввода пароля будет создан файл, принадлежащий root. Если вы запустите python create.py, он будет принадлежать вам (файл не должен существовать до запуска скрипта).

8
ответ дан 31 July 2018 в 11:48

Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.

См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo

3
ответ дан 31 July 2018 в 11:48

Вставьте этот скрипт в свой код:

import os

Password = raw_input('Please enter your root password!')

sudo_command = '<your command>'

execute = os.system('echo %s|sudo -S %s' % (Password, sudo_command))
0
ответ дан 31 July 2018 в 11:48

Здесь есть два разных вопроса: И как в stackoverflow, отвечая на ваш вопрос: здесь и здесь .

В обоих ответах используется команда gksudo ( уже упомянутый @khamer). Если вы запустите gksudo command (также без python), он в основном сделает то, что делает sudo, но с графическим интерфейсом - то есть попросите пользователя ввести пароль, а затем запустите команду как пользователь root, если пользователь находится в файле sudoers.

Чтобы реализовать предлагаемое решение из связанных ответов в python, вы можете использовать что-то, как показано в следующем примере:

Создать файл run.py:

#!/usr/bin/python

import subprocess
subprocess.call(['gksudo','python create.py'])

И файл create.py:

#!/usr/bin/python

# Create test file..
f = file("mytestfile", "w")

Затем запустите python run.py, и после ввода пароля будет создан файл, принадлежащий root. Если вы запустите python create.py, он будет принадлежать вам (файл не должен существовать до запуска скрипта).

8
ответ дан 2 August 2018 в 01:23

Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.

См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo

3
ответ дан 2 August 2018 в 01:23

Вставьте этот скрипт в свой код:

import os

Password = raw_input('Please enter your root password!')

sudo_command = '<your command>'

execute = os.system('echo %s|sudo -S %s' % (Password, sudo_command))
0
ответ дан 2 August 2018 в 01:23

Здесь есть два разных вопроса: И как в stackoverflow, отвечая на ваш вопрос: здесь и здесь .

В обоих ответах используется команда gksudo ( уже упомянутый @khamer). Если вы запустите gksudo command (также без python), он в основном сделает то, что делает sudo, но с графическим интерфейсом - то есть попросите пользователя ввести пароль, а затем запустите команду как пользователь root, если пользователь находится в файле sudoers.

Чтобы реализовать предлагаемое решение из связанных ответов в python, вы можете использовать что-то, как показано в следующем примере:

Создать файл run.py:

#!/usr/bin/python

import subprocess
subprocess.call(['gksudo','python create.py'])

И файл create.py:

#!/usr/bin/python

# Create test file..
f = file("mytestfile", "w")

Затем запустите python run.py, и после ввода пароля будет создан файл, принадлежащий root. Если вы запустите python create.py, он будет принадлежать вам (файл не должен существовать до запуска скрипта).

8
ответ дан 4 August 2018 в 16:56

Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.

См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo

3
ответ дан 4 August 2018 в 16:56

Вставьте этот скрипт в свой код:

import os

Password = raw_input('Please enter your root password!')

sudo_command = '<your command>'

execute = os.system('echo %s|sudo -S %s' % (Password, sudo_command))
0
ответ дан 4 August 2018 в 16:56

Здесь есть два разных вопроса: И как в stackoverflow, отвечая на ваш вопрос: здесь и здесь .

В обоих ответах используется команда gksudo ( уже упомянутый @khamer). Если вы запустите gksudo command (также без python), он в основном сделает то, что делает sudo, но с графическим интерфейсом - то есть попросите пользователя ввести пароль, а затем запустите команду как пользователь root, если пользователь находится в файле sudoers.

Чтобы реализовать предлагаемое решение из связанных ответов в python, вы можете использовать что-то, как показано в следующем примере:

Создать файл run.py:

#!/usr/bin/python

import subprocess
subprocess.call(['gksudo','python create.py'])

И файл create.py:

#!/usr/bin/python

# Create test file..
f = file("mytestfile", "w")

Затем запустите python run.py, и после ввода пароля будет создан файл, принадлежащий root. Если вы запустите python create.py, он будет принадлежать вам (файл не должен существовать до запуска скрипта).

8
ответ дан 6 August 2018 в 01:36

Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.

См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo

3
ответ дан 6 August 2018 в 01:36

Вставьте этот скрипт в свой код:

import os

Password = raw_input('Please enter your root password!')

sudo_command = '<your command>'

execute = os.system('echo %s|sudo -S %s' % (Password, sudo_command))
0
ответ дан 6 August 2018 в 01:36

Здесь есть два разных вопроса: И как в stackoverflow, отвечая на ваш вопрос: здесь и здесь .

В обоих ответах используется команда gksudo ( уже упомянутый @khamer). Если вы запустите gksudo command (также без python), он в основном сделает то, что делает sudo, но с графическим интерфейсом - то есть попросите пользователя ввести пароль, а затем запустите команду как пользователь root, если пользователь находится в файле sudoers.

Чтобы реализовать предлагаемое решение из связанных ответов в python, вы можете использовать что-то, как показано в следующем примере:

Создать файл run.py:

#!/usr/bin/python

import subprocess
subprocess.call(['gksudo','python create.py'])

И файл create.py:

#!/usr/bin/python

# Create test file..
f = file("mytestfile", "w")

Затем запустите python run.py, и после ввода пароля будет создан файл, принадлежащий root. Если вы запустите python create.py, он будет принадлежать вам (файл не должен существовать до запуска скрипта).

8
ответ дан 7 August 2018 в 19:05

Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.

См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo

3
ответ дан 7 August 2018 в 19:05

Вставьте этот скрипт в свой код:

import os

Password = raw_input('Please enter your root password!')

sudo_command = '<your command>'

execute = os.system('echo %s|sudo -S %s' % (Password, sudo_command))
0
ответ дан 7 August 2018 в 19:05

Здесь есть два разных вопроса: И как в stackoverflow, отвечая на ваш вопрос: здесь и здесь .

В обоих ответах используется команда gksudo ( уже упомянутый @khamer). Если вы запустите gksudo command (также без python), он в основном сделает то, что делает sudo, но с графическим интерфейсом - то есть попросите пользователя ввести пароль, а затем запустите команду как пользователь root, если пользователь находится в файле sudoers.

Чтобы реализовать предлагаемое решение из связанных ответов в python, вы можете использовать что-то, как показано в следующем примере:

Создать файл run.py:

#!/usr/bin/python

import subprocess
subprocess.call(['gksudo','python create.py'])

И файл create.py:

#!/usr/bin/python

# Create test file..
f = file("mytestfile", "w")

Затем запустите python run.py, и после ввода пароля будет создан файл, принадлежащий root. Если вы запустите python create.py, он будет принадлежать вам (файл не должен существовать до запуска скрипта).

8
ответ дан 10 August 2018 в 07:36

Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.

См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo

3
ответ дан 10 August 2018 в 07:36

Вставьте этот скрипт в свой код:

import os

Password = raw_input('Please enter your root password!')

sudo_command = '<your command>'

execute = os.system('echo %s|sudo -S %s' % (Password, sudo_command))
0
ответ дан 10 August 2018 в 07:36

Здесь есть два разных вопроса: И как в stackoverflow, отвечая на ваш вопрос: здесь и здесь .

В обоих ответах используется команда gksudo ( уже упомянутый @khamer). Если вы запустите gksudo command (также без python), он в основном сделает то, что делает sudo, но с графическим интерфейсом - то есть попросите пользователя ввести пароль, а затем запустите команду как пользователь root, если пользователь находится в файле sudoers.

Чтобы реализовать предлагаемое решение из связанных ответов в python, вы можете использовать что-то, как показано в следующем примере:

Создать файл run.py:

#!/usr/bin/python

import subprocess
subprocess.call(['gksudo','python create.py'])

И файл create.py:

#!/usr/bin/python

# Create test file..
f = file("mytestfile", "w")

Затем запустите python run.py, и после ввода пароля будет создан файл, принадлежащий root. Если вы запустите python create.py, он будет принадлежать вам (файл не должен существовать до запуска скрипта).

8
ответ дан 15 August 2018 в 19:40

Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.

См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo

3
ответ дан 15 August 2018 в 19:40
  • 1
    Поскольку это вопрос о программировании для Ubuntu в Python, можете ли вы привести пример кода, показывающий, как использовать gksu / gksudo в программе Python? – Eliah Kagan 26 May 2012 в 19:52
  • 2
    @EliahKagan Я написал ответ с примером, который, надеюсь, удовлетворит ваши требования! :) – lumbric 30 May 2012 в 02:27

Вставьте этот скрипт в свой код:

import os

Password = raw_input('Please enter your root password!')

sudo_command = '<your command>'

execute = os.system('echo %s|sudo -S %s' % (Password, sudo_command))
0
ответ дан 15 August 2018 в 19:40

Другие вопросы по тегам:

Похожие вопросы: