Мне часто нужно запускать по адресу Работа в качестве другого пользователя. Я всегда делал что-то вродеКак запустить 'at' как другой пользователь?
$ echo "$PWD/batchToRun -parameters" | sudo su - otheruser -c "at now"
batchToRun
также планируется запустить через otheruser кронтаб «s. Это хорошо работает до тех пор, пока batchToRun
не начнется в зависимости от тонких побочных эффектов настроек переменных окружения - например LANG (sort any?) - которые передаются из среды пользователя, работающего sudo
.
Обычно я не хочу регистрироваться как otheruser; это полупривилегированная учетная запись, и я хотел бы «бумажный след» связанной с ней деятельности, чтобы я мог вернуться и посмотреть, что именно было сделано, кем, когда и т. д.
Помимо очевидной перезаписи batchToRun
независимо от таких настроек, что является хорошим способом обеспечить, чтобы среда sudoer не загрязняла целевую среду?
Примечание: это на FC7 (Судо версии 1.6.8p12) и других старых дистрибутивах, поэтому любые блестящие новые возможности sudo
/su
/at
(в частности, возможность передать аргумент с -i
к sudo
) находятся за пределами моего ухватить.
Обновление: выясняется, что su - otheruser
на самом деле является достаточным межсетевым экраном между пользователями и что мое загрязнение исходит от чего-то в интерактивной последовательности запуска. Тем не менее, мне все еще нравится возможность редактирования env
.
Ницца. И все эти годы я думал, что «env» полезен только для печати вашей среды. – jhfrontz