Выполнить одну команду от имени другого пользователя; ограничения на sudo

Я работаю на машине, на которой у меня нет root, но есть список разрешенных команд sudo . Одна из этих команд - / bin / su - foouser . Итак, я могу набрать sudo su - foouser и получить интерактивную оболочку в качестве читателя. Затем я могу запускать некоторые вещи как foouser .

Проблема в том, что foouser является совместно используемым пользователем / оболочкой, которая используется для запуска определенных важных производственных процессов. Я не могу легко настроить его или настроить так, как я хочу. И я не должен работать в нем последовательно, что разделяет мои терминалы и историю команд между теми, где я вошел в систему как я, и теми, где я фальшивый .

Что я действительно хотел бы сделать, так это иметь способ запускать одну команду от имени foouser , блокировать ее, выводить stdout и stderr в мою оболочку, как обычно делает команда, а затем вернуться со мной, все еще вошедшим в систему как я (а не foouser ). Это могло бы, например, быть инкапсулировано в сценарий так, чтобы as_foo bar запускал команду bar , как foouser , печатал stdout и stderr, возвращал код возврата bar ], а затем помещает меня обратно в свою оболочку.

Я могу попросить системных администраторов изменить разрешения.Например, они могут добавить bar в список sudo, а затем я могу использовать (я думаю) su -c для запуска bar описанным мной способом. Но если на следующий день я захочу запустить bar2 , мне придется снова поговорить с ними.

Есть ли выход из этой дилеммы? Это кажется довольно глупым, потому что я, очевидно, могу стать злоумышленником и запускать столько команд, сколько захочу, поэтому я не вижу никакой разницы с точки зрения безопасности. Просто не могу найти очевидного удобного способа сделать это возможным.

0
23.11.2017, 02:22
1 ответ

Передать дополнительные аргументы в su.

sudo su - foouser sh -c 'echo $USER'
0
28.01.2020, 02:44

Теги

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