Запускать каждую программу от имени отдельного пользователя [закрыто]

Мое решение - это фактическое обходное решение путем установки PROMPT_COMMAND переменной окружения в ~/.bash_profile или в ~/.bashrc, которая создает дополнительный журнал.

Файл ~/.bash_history хранит только временную метку и команду, подобную этой:

#1488631365
ls -lah
#1488631367
history
#1488631380
cat ~/.bash_history

переменная окружения HISTTIMEFORMAT - это только установка того, как #1488631380 должно быть переведено/отображено.


Ниже будет создан сегодняшний лог-файл - ~/bash-history-2017-03-04.log

export PROMPT_COMMAND='echo -e "$(tty)\t$(history 1)" >> ~/bash-history-$(date "+%Y-%m-%d").log' 

пример вывода (в зависимости от того, как настроен HISTTIMEFORMAT)

/dev/pts/1        541  [04/03 14:02:37] tty
/dev/pts/1        542  [04/03 14:02:45] echo "hi from tty1"
/dev/pts/0        523  [04/03 13:55:07] cat ~/.bash_history
/dev/pts/0        524  [04/03 14:02:53] tty
/dev/pts/0        525  [04/03 14:02:58] echo "hi from tty 0"

1
20.08.2018, 10:54
1 ответ

Вы можете попробовать сменить владельца исполняемых файлов Firefox/Thunderbird на «userxfirefox», а затем установить для них бит uid (chmod u+s ). Это заставит их работать с привилегиями «userxfirefox» и под его эффективным идентификатором пользователя. Однако процесс может различать реальный и эффективный идентификатор пользователя, и в зависимости от того, как процесс ищет домашний каталог пользователя (, оценивая текущий $USER, $HOME или иным образом ), это может работать или не работать так, как предполагалось в отношении доступ к профилю и конфигурации пользователя Firefox/Thunderbird.

Кроме того, не забывайте, что sudo/gksudo может запускать программы как другие пользователи (, а не только как root ), и он установит как реальный, так и эффективный UID процесса для указанного пользователя.

1
27.01.2020, 23:42

Теги

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