У меня есть приложение Python, работающее в виртуальной среде, и я пытаюсь создать для него профиль apparor. У него есть оболочка, которая выглядит следующим образом:Профиль Apparmor не может работать whoami
#!/bin/bash
## This script is for running the 'fact' command on staging/prod, it sudos to
## the 'fact' user before executing /opt/fact-virtual-environment/bin/fact
## It is installed as '/usr/bin/fact'
WHOAMI=$(whoami)
PYTHONPATH=/usr/share/fact
PYTHON_BIN=/opt/fact-virtual-environment/bin/python
DJANGO_SETTINGS_MODULE=fact.settings.staging
if [ "${WHOAMI}" != "fact" ];
then
sudo -u fact $0 $*;
else
PYTHONPATH=${PYTHONPATH} DJANGO_SETTINGS_MODULE=${DJANGO_SETTINGS_MODULE} ${PYTHON_BIN} -m fact.managecommand $*;
fi
Таким образом, мы всегда убедитесь, что мы Судо к нужному пользователю перед запуском. Однако даже при использовании sudo и whoami я запускаю на ux (как показано ниже, и да, я знаю, что ux плохо/небезопасно), whoami все еще не может получить правильный идентификатор пользователя.
# Last Modified: Tue Jan 20 09:25:09 2015
#include <tunables/global>
/usr/bin/fact {
#include <abstractions/apache2-common>
#include <abstractions/base>
#include <abstractions/bash>
capability setgid,
capability sys_resource,
deny /etc/group r,
deny /etc/passwd r,
deny /usr/local/lib/python2.7/dist-packages/ r,
deny /usr/local/lib/python2.7/site-packages/ r,
/usr/bin/sudo ux,
/usr/bin/whoami ux,
/bin/bash rix,
/bin/dash rix,
/bin/uname rix,
/dev/tty rw,
/etc/default/locale r,
/etc/group r,
/etc/passwd r,
/etc/environment r,
/etc/login.defs r,
/etc/lsb-release r,
/etc/fact/fact.ini r,
/etc/python2.7/sitecustomize.py r,
#/etc/security/pam_env.conf r,
/lib{,32,64}/** mr,
/opt/fact-virtual-environment/** mr,
/opt/fact-virtual-environment/bin/python rix,
#/proc/*/fd/ r,
#/proc/*/mounts r,
#/proc/filesystems r,
#/proc/loadavg r,
#/proc/meminfo r,
#/proc/sys/kernel/ngroups_max r,
#/run/utmp rk,
/sbin/ldconfig rix,
/sbin/ldconfig.real rix,
/usr/bin/fact rix,
/usr/lib{,32,64}/** mr,
/usr/share/fact/ r,
/usr/share/fact/fact/** r,
/usr/share/pyshared/** r,
}
и ошибка:
fact
whoami: cannot find name for user ID 1010
whoami: cannot find name for user ID 111
fact is not in the sudoers file. This incident will be reported.
Потому что он не может определить пользователя, я бегу, как это sudos на самом деле все равно, а потом жалуется, потому что факт не может Судо. Какая настройка аперфоратора необходима для правильной работы whoami?
Проблема находится в/usr/bin/fact. –
Не могли бы вы рассказать о проблеме? – djsumdog
/usr/bin/fact: строка 13: [:! =: Ожидаемый унарный оператор –