Я пишу программу gui, используя wx-модуль в python. В программе всякий раз, когда я обращаюсь к папке, которая требует прав root, тогда она запрашивает пароль на терминале, но я хочу отобразить диалоговое окно для пользователя, чтобы ввести пароль и подтвердить его подлинность. Как вызвать этот диалог и аутентифицировать пользователя в ubuntu?
Здесь есть два разных вопроса: И как в 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
, он будет принадлежать вам (файл не должен существовать до запуска скрипта).
Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.
См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo
Вставьте этот скрипт в свой код:
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))
Здесь есть два разных вопроса: И как в 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
, он будет принадлежать вам (файл не должен существовать до запуска скрипта).
Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.
См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo
Вставьте этот скрипт в свой код:
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))
Здесь есть два разных вопроса: И как в 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
, он будет принадлежать вам (файл не должен существовать до запуска скрипта).
Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.
См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo
Вставьте этот скрипт в свой код:
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))
Здесь есть два разных вопроса: И как в 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
, он будет принадлежать вам (файл не должен существовать до запуска скрипта).
Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.
См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo
Вставьте этот скрипт в свой код:
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))
Здесь есть два разных вопроса: И как в 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
, он будет принадлежать вам (файл не должен существовать до запуска скрипта).
Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.
См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo
Вставьте этот скрипт в свой код:
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))
Здесь есть два разных вопроса: И как в 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
, он будет принадлежать вам (файл не должен существовать до запуска скрипта).
Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.
См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo
Вставьте этот скрипт в свой код:
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))
Здесь есть два разных вопроса: И как в 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
, он будет принадлежать вам (файл не должен существовать до запуска скрипта).
Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.
См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo
Вставьте этот скрипт в свой код:
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))
Здесь есть два разных вопроса: И как в 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
, он будет принадлежать вам (файл не должен существовать до запуска скрипта).
Хотя я уверен, что есть более приятное решение python, пустая и грязная версия - использовать gksudo. gksudo делает то же самое, что и sudo, за исключением того, что он создает этот диалог для аутентификации, который вы упомянули, вместо запроса в командной строке.
См. https://help.ubuntu.com/community/RootSudo# Graphical_sudo
gksu
/ gksudo
в программе Python?
– Eliah Kagan
26 May 2012 в 19:52
Вставьте этот скрипт в свой код:
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))