Библиотека python3 sh: не выводится и нет ошибок - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь использовать библиотеку sh для Python3 для запуска команды от имени другого пользователя.Но я не получаю никакого вывода, и команда бежит, кажется правильным.Кто-нибудь знает, как заставить это работать?

Редактировать: Возвращает код ошибки 1.

Код:

passwd = input('Enter pass:')
passwd = r'{0}\n'.format(passwd)

my_user = sh.sudo.bake('-S', '-u', 'www-data', _in=passwd)
try:
    a = my_user.ls('/home/dev/xxxxxx/html/')
    print(a)
except Exception as e:
    print('\n\n{0}'.format(e))

Вывод:

dev@node:~/scripts$ ./backup.py
Enter pass:xxxxxxx

  RAN: /usr/bin/sudo -S -u www-data ls /home/dev/xxxxxxx/html/

  STDOUT:

  STDERR:
[sudo] password for dev:

dev@node:~/scripts$

Ручной запуск:

dev@node:~/scripts$ /usr/bin/sudo -S -u www-data ls /home/dev/xxxxxxx/html/
[sudo] password for dev:
index.php        wp-admin              wp-config-sample.php  wp-links-opml.php  wp-settings.php
license.txt      wp-blog-header.php    wp-content            wp-load.php        wp-signup.php
readme.html      wp-comments-post.php  wp-cron.php           wp-login.php       wp-trackback.php
wp-activate.php  wp-config.php         wp-includes           wp-mail.php        xmlrpc.php
dev@node:~/scripts$

1 Ответ

0 голосов
/ 15 марта 2019

В итоге я не использовал sh для смены пользователя. Вместо этого я настроил разрешения или группы системы и запустил sudo -u $ user ./script.py. Где $ user имеет права на файлы, используемые в скрипте.

...