Как сделать sudo с POSIX лучше?
Я внес изменения в мою систему Arch Linux x86-64, где я запускаю bash исключительно через режим POSIX, используя /bin/sh
(связан с '/bin/bash') в качестве оболочки входа в систему и вместо того, чтобы помещать вещи в /etc/profile
Я определил ENV=/etc/shrc
в моем /etc/environment
в соответствии с руководством Bash, так что он выполняет /etc/shrc
файл при запуске, куда идут все мои псевдонимы, подсказки и тому подобное.
По сути, я хотел полностью отказаться от специфических функций Bash, включая /etc/profile
и друзья.
Проблема возникла, хотя, где после выполнения sudo
, здесь нет ENV
переменная, как sudo
очевидно сбросить среду (либо после разбора /etc/environment
или вообще не делай так) и все мои псевдонимы и прочее исчезли. sudo -i
делает то же самое, в основном - нет ENV
,
Должен ли я считать это полезным для безопасности системы, или я должен сделать что-то с этим, например, make sudo preserve ENV
переменная?
Чтобы добавить к этому горе, su -
(но нет su
) также не хватает ENV
и, таким образом, все вещи /etc/shrc
делает. Так что, возможно, это не просто sudo
проблема, в конце концов? Я думаю, что man-страница Bash не является специфической для этого - она просто говорит: "Когда вызывается как интерактивная оболочка с именем sh, bash ищет переменную ENV..." -Ну, я вызываю ее как интерактивную оболочку, не так ли?? Почему в моей среде нет ENV (протестировано с env
)
Я не понимаю, как сохранить POSIXness всего этого и в то же время не вносить слабые места в безопасность, хотя sudo
сохранить один или несколько env. переменные. По крайней мере, это должно сохранить ENV
нет?
Я надеюсь, что я проясняю себя здесь.