Спасибо за любую помощь.

Я помогаю настроить машину для регистрации нажатий клавиш с помощью функции /usr /bin /script. Для каждого сеанса создается файл журнала, который включает время POSIX. $ PS1 изменяется, чтобы отразить текущее время и имя пользователя, чтобы каждый раз что-то печаталось - мы знаем, когда и что.

Моя проблема в том, что /usr /bin /script запускает новую (SHLVL 2) не-входящую в систему оболочку со стандартным приглашением 'bash-4.2 $', и я не могу найти, чей / чей профиль был получен, чтобы я мог изменить $ PS1. /usr /bin /script запускается пользователем root.

Проще говоря, какой профиль создается сеансом без входа в систему SHLVL 2, принадлежащим пользователю root, в рамках сеанса, запускаемого обычным пользователем? (Это не похоже на /root/.bashrc или /root/.profile)

В качестве альтернативы - как заставить профиль bash быть прочитанным в каждой оболочке, интерактивным, неинтерактивным, не входящим в систему и т.д.

Изменить: Пользователи .bashrc .bash_profile и .profile имеют определенный $ PS1. Оказавшись во вложенной оболочке, я могу найти любой из них, чтобы изменить подсказку.

1 ответ1

0

Для этого уже существует решение: sudo . Из man 5 sudoers:

sudoers может регистрировать как успешные, так и неудачные попытки (а также ошибки) в системный журнал (3), файл журнала или в оба. По умолчанию sudoers будет регистрироваться через syslog (3), но это можно изменить с помощью настроек по умолчанию для syslog и logfile.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .