Решено: su (локаль)

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Аватара пользователя
faria
Сообщения: 70

Решено: su

Сообщение faria »

Доброго времени суток. Собственно код:

Код: Выделить всё

root@darkstar:~# locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
root@darkstar:~# su
root@darkstar:~# locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

При входе в su меняется локаль. Нужно что-бы не менялась) Если есть идеи пните куда-нибудь)
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Решено: su

Сообщение bormant »

# su -
или
http://www.slackware.ru/wiki/BugFix/13.1/su

ps. Но в любом случае, su без "-" противопоказано до тех пор, пока не сможете сами себе объяснить, какие негативные последствия способно повлечь. Хинт: окружение остаётся от текущего пользователя.
Спасибо сказали:
Аватара пользователя
faria
Сообщения: 70

Re: Решено: su

Сообщение faria »

Спасибо bormant) А я, как дурак, пытался в конфигах локаль найти...
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Решено: su

Сообщение bormant »

В моих можно найти ;)
("/etc/profile.d/lang.sh") писал(а):if [ "$(id -u)" = "0" ]
then export LANG=en_US.UTF-8
else export LANG=ru_RU.UTF-8
fi

Только оно всё равно из /etc/profile вызывается, то есть из login shell, который "su -" или "su -l".
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Решено: su

Сообщение eddy »

Ну так можно явно руту в .bashrc засунуть определение локали. Конечно, все равно придется писать su -l.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Решено: su

Сообщение drBatty »

faria писал(а):
22.09.2011 21:37
При входе в su меняется локаль. Нужно что-бы не менялась) Если есть идеи пните куда-нибудь)

faria писал(а):
22.09.2011 21:37
LC_CTYPE="ru_RU.UTF-8"

учтите - это дыра в безопасности. Если это действует на скрипты, запускаемые с правами рута, злоумышленник может протащить вредоносный код через данные, которые парсит скрипт.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Решено: su

Сообщение alv »

faria писал(а):
22.09.2011 21:37
Нужно что-бы не менялась

А зачем нужно? Это как раз сделано правильно и умно. Если, например, слетает русификация и надо править, то от рута хотя бы маны можно читать по английски, а не по абракадабрински.
И потом, есть программы, которые собираются только с локалью Си, она же Позикс. Их мало, но они есть.
bormant писал(а):
22.09.2011 21:54
Только оно всё равно из /etc/profile вызывается

совсем не обязательно, потому что
eddy писал(а):
22.09.2011 22:59
можно явно руту в .bashrc засунуть определение локали

И вообще это самый простой и надёжный способ. Особенно если пользуется не bash, а, например, zsh.
Правда, я как раз наоборот делаю - в zshrc рута у меня прописана локаль Си.
Спасибо сказали:
Аватара пользователя
faria
Сообщения: 70

Re: Решено: su

Сообщение faria »

Спасибо всем ответившим)
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Решено: su

Сообщение bormant »

alv писал(а):
23.09.2011 13:31
bormant писал(а):
22.09.2011 21:54
Только оно всё равно из /etc/profile вызывается
совсем не обязательно, потому что
eddy писал(а):
22.09.2011 22:59
можно явно руту в .bashrc засунуть определение локали

И вообще это самый простой и надёжный способ. Особенно если пользуется не bash, а, например, zsh.
Да, именно об этом и было предупреждение -- в Slackware /etc/profile.d/lang.sh вызывается из /etc/profile, то есть для login shell. Поэтому, если такое поведение по каким-либо причинам не устраивает, нужно воспользоваться другими вариантами.

В общем, об одном и том же, но разными словами.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Решено: su

Сообщение alv »

bormant писал(а):
23.09.2011 22:43
В общем, об одном и том же, но разными словами.

Ну да, ведь и вариантов решения - не один.
оффтопический PS проще всего и логичней это во Фре сделано: локаль - атрибут учётной записи, определяется через class, можно хоть индейскую, хоть зулусскую приписать, на что фантазии хватит.
Спасибо сказали: