LINUX.ORG.RU
ФорумAdmin

глобальная переменная для всех пользовотелей ( debian )

 , , ,


2

2

Для отдельного пользователя работает в терминале, но не в иксах

 .profile 
export BLABLA_USER=$LOGNAME

Для отдельного пользователя работает в иксах, но не в теримнале

.xsessionrc
export BLABLA_USER=$LOGNAME

Как бы прописать эту переменную в одном месте для всех пользователей сразу, и чтобы она была как в консоли, нак и в иксах?

★★

Ответ на: комментарий от jia

там же описано.
/etc/environment не сработает BLABLA_USER=$LOGNAME. ибо он считывается в систему при загрузке и пользователей на этом этапе еще просто не существует.
а вот /etc/ptrofile запускается после входа любого пользователя в оболочку и пользователь как таковой уже есть.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от pfg

… а вот /etc/profile запускается после входа любого пользователя в оболочку

но не в иксах - к чисто графическому приложению, запускаемому не из командной строки, переменные, вроде как, не прилетят

vinvlad ★★
()
Ответ на: комментарий от pfg

И не сработало:

$: echo $BLABLA_USER
$: LOGNAME

Вписка export BLABLA_USER=$LOGNAME в /etc/profile тоже не сработала:

$: echo $BLABLA_USER
$:  

jia ★★
() автор топика
Последнее исправление: jia (всего исправлений: 3)
Ответ на: комментарий от jia

… Если в каких-то универсальных shell-скриптах необходимо получить именно имя текущего пользователя, то можно обойтись без таких сложностей - просто использовать команду id:

CURRENT_USER="$( id -un )"
vinvlad ★★
()
Ответ на: комментарий от vinvlad

Спасибо тебе, добрый человек!

/etc/security/pam_env.conf:

BLABLA_USER  DEFAULT=@{PAM_USER}

Работает!

Если в каких-то универсальных shell-скриптах
необходимо получить именно имя текущего пользователя

Не, не этот случай

jia ★★
() автор топика
Ответ на: комментарий от vinvlad

Спасибо тебе, добрый человек, ещё раз. В этом случае да, но хотелось бы знать способ принудить систему считать заново все переменные без ребута. Это уже чисто академический интерес.

jia ★★
() автор топика
Ответ на: комментарий от jia

… но хотелось бы знать способ принудить систему считать заново все переменные

А что конкретно означает фраза «все переменные»?:) Если действительно все-все, то только ребут. Если же нужно задействовать исправленную конфигурацию какого-нибудь конкретного сервиса, то перегружаешь этот сервис…

vinvlad ★★
()
Ответ на: комментарий от jia

… некоторые сервисы можно не перегружать, а просто послать им сигнал, чтобы они перечитали конфигурацию - это обычно обозначается в соответствующих командах как reload (в отличие от restart).

vinvlad ★★
()