Существует ли способ видеть, в какого пользователя входят система и переключился с “su”?

Сначала из bash документации:

-c string

Чтение и выполнение команд из строки после обработки опций, потом выход. Любые оставшиеся аргументы присваиваются позиции параметры, начиная с $0.

Таким образом, когда вы поставляете опцию -c, bash рассматривает строку после -c как последовательность команд, а затем выполняет эти команды в дочерней среде процесса. Поэтому, когда вы вызываете -c файл bash, bash рассматривает файл как команду, найдите ее, просматривая переменную окружения PATH. Если файл file найден, то выполните его, в противном случае будет поднята команда не найденная ошибка.

Когда вы вызвали bash файл , bash просто рассматривает файл как скрипт оболочки shell, читает и выполняет команды из файла , а затем выходит. Опять же, из документации bash:

Если после обработки опции остаются аргументы, то ни -c, ни был задан параметр -s, предполагается, что первым аргументом будет имя файла, содержащего команды оболочки (см. Shell Scripts). Когда Бэш вызывается таким образом, $0 устанавливается в качестве имени файла, а параметры позиционирования устанавливаются на оставшиеся аргументы. Бэш читает и выполняет команды из этого файла, затем выходит из него. выход Бэша статус - это статус выхода последней команды, выполненной в скрипте. Если команды не выполняются, статус выхода равен 0.

Таким образом, ваше понимание верно.

0
15.01.2015, 12:11
1 ответ

Использование sudo вместо su для предоставления привилегий позволяет вам иметь подробные записи журнала в безопасном журнале (/ var / log / secure в Rheel - подобных Rheelitors). Например, Sudo VI / etc / group ', запись журнала:

Jan 15 13:41:12 vm02 sudo:   userabc : TTY=pts/1 ; PWD=/home/userabc ; USER=root ; COMMAND=/bin/vi /etc/group
1
28.01.2020, 02:51

Теги

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