Я внес изменения в мою систему 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, сохранить переменную ENV ?

Чтобы добавить к этому горе, su - (но не su) также не хватает ENV и, следовательно, все, что делает /etc/shrc . Так может, в конце концов, это не просто проблема sudo ? Bash не страница руководства конкретно по этому, я думаю - это просто говорит : «При вызове в качестве интерактивной оболочки с именем ш, Баш ищет переменной ENV ...» -Ну, я призываю его в качестве интерактивной оболочки, не я ? Почему в моей среде нет ENV (протестировано с env)

Я не понимаю, как сохранить POSIXness всего этого и в то же время не вводить слабые места в безопасности, хотя заставляю sudo сохранять один или несколько env. переменные. По крайней мере, это должно сохранить ENV , нет?

Я надеюсь, что я проясняю здесь.

0