Не могу импортировать ткинтер в python2 на manjaro linux

Классический способ UNIX - сделать сценарий setuid :

$ sudo chown root gogui.sh  #not necessary if root is already the owner of the file
$ sudo chmod u+s gogui.sh

Это установит специальный бит разрешения для файла:

$ ls -l gogui.sh
  -rwsr-xr-x 1 root root [omitted] gogui.sh

(обратите внимание на букву s вместо x в четвертой позиции.)

Если вы сделаете это, каждый раз, когда вы запускаете скрипт, он будет запускаться с привилегиями владельца файла, вместо тех, которые принадлежат пользователю, который его запускает.

Теперь вы можете упростить свой сценарий gogui.sh , чтобы он содержал только

/usr/sbin/service lightdm start

. Обратите внимание, что я добавил явный путь к исполняемому файлу (который я нашел, набрав which service ): это необходимо в файлах setuid, потому что в противном случае будет выполнена первая программа с именем service , найденная в вашем PATH .Забыть явный путь было бы огромной проблемой безопасности, поскольку это означает, что любой пользователь может настроить переменную PATH и запустить программу по своему выбору с привилегиями root.

При желании вы также можете запретить другим пользователям запускать файлы с помощью chgrp some_group gogui.sh; chmod o-x gogui.sh , который сделает файл исполняемым только для членов some_group .

0
26.06.2018, 21:02
1 ответ

Когда вы устанавливаете пакет tk с помощью pacman, я считаю, что он должен быть доступен как для python3, так и для python2 в Manjaro и Arch.

Попробуйте import Tkinterв интерпретаторе python2 (С заглавной буквы «T» ).

0
28.01.2020, 04:19

Теги

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