管理者対sudoユーザー:プログラムはユーザーに対して機能しません(sudo envの問題?)

管理者対sudoユーザー:プログラムはユーザーに対して機能しません(sudo envの問題?)

私は仕事をしています。QNAP NASシステム(これだけで痛いです。ファームウェア:4.1.1(新しいものではありません))とインストール二重性いくつかのコミュニティパックを介して。

質問

次にログイン行政(これはQNAPシステムのルートを置き換えます)SSH、次は動作します。

duplicity
Command line error: Expected 2 args, got 0
Enter 'duplicity --help' for help screen.

他のユーザーと同じ操作をしようとすると常に失敗します(ここ: sudo -i):

sudo -i -u backupScript
duplicity
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site

返品sudo--ログイン:

sudo -u backupScript --login
duplicity
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site

Sudo-E(可能な候補)が私のバージョンでは動作しないようです。1.8.14p3

デバッグ設定:

管理:環境

HOSTNAME=XXX
TERM=xterm
SHELL=/bin/sh
HISTSIZE=1000
SSH_CLIENT=192.168.2.106 55935 22
SSH_TTY=/dev/pts/5
LC_ALL=en_US.UTF-8
HISTFILESIZE=1000
USER=admin
TEMP=/Apps/opt/tmp
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:
PAGER=/bin/more
MAIL=/var/mail/admin
PATH=/Apps/opt/bin:/Apps/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin:/usr/local/ruby/bin:/Apps/bin:/Apps/sbin:/usr/local/jre/bin
INPUTRC=/etc/inputrc
PWD=/root
JAVA_HOME=/usr/local/jre
RUBY_PATH=/usr/local/ruby
EDITOR=/bin/vi
LANG=en_US.UTF-8
DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
PS1=[\w] #
SHLVL=1
HOME=/root
TERMINFO=/Apps/opt/share/terminfo
TMP=/Apps/opt/tmp
LOGNAME=admin
LC_CTYPE=en_US.UTF-8
SSH_CONNECTION=192.168.2.106 55935 192.168.2.103 22
_=/usr/bin/env

sudo -i -u backupScript以降のbackupScript環境

HOSTNAME=XXX
SHELL=/bin/sh
TERM=xterm
HISTSIZE=1000
LC_ALL=en_US.UTF-8
HISTFILESIZE=1000
USER=backupScript
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:
SUDO_USER=admin
SUDO_UID=0
USERNAME=backupScript
PAGER=/bin/more
MAIL=/var/mail/backupScript
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin:/usr/local/ruby/bin:/Apps/bin:/Apps/sbin:/usr/local/jre/bin
INPUTRC=/etc/inputrc
PWD=/share/homes/backupScript
JAVA_HOME=/usr/local/jre
RUBY_PATH=/usr/local/ruby
EDITOR=/bin/vi
LANG=en_US.UTF-8
DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
PS1=[\u@\h \W]\$
SHLVL=1
SUDO_COMMAND=/bin/sh
HOME=/share/homes/backupScript
LOGNAME=backupScript
LC_CTYPE=en_US.UTF-8
SUDO_GID=0
_=/usr/bin/env
  • どちらもPYTHONHOMEを定義しません(エラーで言及されています)。
  • どのように管理者は二重にすることができますが、ユーザーのbackupScriptは二重にできませんか?
  • この問題を解決する方法についてのアイデアはありますか?
  • 追加のデバッグ試みのアイデアはありますか?私がこの問題について完全に間違った方向に行っているかどうか言及してください!

ベストアンサー1

あなたの場合の主な問題は、$ PATHにこれがないことです"/Apps/opt/bin:/Apps/opt/sbin"。おそらくpythonそこから出なければならないでしょう。

sudo -iこれは、ユーザー「backupScript」が自分の家に正しいプロファイル/シェルプロファイルを持っている場合に実際に機能します/share/homes/backupScript。それ以外の場合は、そのプロファイルを変更したり、--loginまたは-iを使用しないでください。

sed -E動作を模倣するように編集できます/etc/sudoers。 PATHを無効Defaults env_resetまたは追加Defaults env_keep

ところで、管理者がルートであれば、sudoを使用する必要さえありません。su大丈夫でしょう。

su -c duplicity backupScript

おすすめ記事