Смоленск 1.6 Изменение переменной PATH при логине через SSH

Tempest

New member
Сообщения
10
#1
Доброго времени суток.

Предположим в сети имеется сервер Астра Линукс 1.6 Смоленск с включенным ssh сервером. Заметил, что переменная PATH имеет разные значения у пользователя root и, скажем, user, при выполнении следующих команд:

Код:
[user@ws ~]$ ssh root@astra "echo \$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

[user@ws ~]$ ssh user@astra "echo \$PATH"
/usr/local/bin:/usr/bin:/bin:/usr/games
Для меня является фатальным тот факт, что у пользователя "user" в такой конфигурации нет "/usr/sbin" в переменной PATH - туда устанавливается нужный для работы софт. Пытался разобраться как переопределить, как дополнить переменную PATH для данного случая. Нашел похожие строки в /etc/login.defs и /etc/profile, но они не влияют на ситуацию.

P.S. Обратите внимание, интересует именно такой способ выполнения команд. Как сделать переменную PATH корректной для стандартного ввода (когда сначала залогинились, а потом что-то делаем), я знаю.
 

Tempest

New member
Сообщения
10
#3
to oko
Для классического линукс дистрибутива (для меня это RHEL/CentOS) - да. Но не для Астры 1.6. Здесь это не работает. Поэтому и обратился за советом :(
 

oko

New member
Сообщения
1 257
#4
to Tempest
На ALSE 1.6 без графики проверил - прекрасно работает способ с .bashrc (в примере ниже .bashrc очищен до минимума и cp используется для удобства размещения всего на 1 изображении)...
1.png
 

Tempest

New member
Сообщения
10
#5
Ага, а теперь попробуйте активировать ssh и сделать:
Код:
ssh user1@localhost "echo \$PATH"
<введите пароль>
Вы тут же получите вывод значения переменной PATH и ssh сеанс завершится

Потом сравните с
Код:
ssh user1@localhost
<введите пароль>
echo $PATH
В первом случае у вас не будет /usr/sbin в путях переменной PATH
 

oko

New member
Сообщения
1 257
#6
to Tempest
Опять-таки, слишком категорично. Вам экспорт PATH нужен для быстрого ввода команд в первую голову?
Проверил:
  • создал user2 с 0:0 мандатными уровнями и 0:0 мандатными категориями;
  • очистил его .bashrc для наглядности;
  • создал новый bashrc_new с экспортом нужной PATH;
  • создал /usr/sbin/myscript.sh, дал ему права на исполнение;
  • проверил без PATH - myscript по быстрому имени не отрабатывает;
  • внес изменения в .bashrc и перезашел в шелл - myscript по быстрому имени отрабатывает.
1.jpg


Либо вы что-то не так делаете, либо я не могу понять вашу задачу и проблему...
Либо проблема в используемых средствах: нативное подключение Astra-Astra через терминал и ssh-client (ваш случай) резко отличается от подключения Win-Astra с использованием Putty (мой случай) именно в части $PATH...
 

oko

New member
Сообщения
1 257
#7
to Tempest
Проверил связку Astra-Astra. Подключался к приведенному выше серверу с модифицированной PATH для user2. При этом на АРМ user1 имел 0:0 мандатку и 63 уровень целостности...
2.jpg


Любопытно различие в выводе $PATH для двух случаев подключения в части /usr/local/games. И, собственно, эта часть $PATH реально не экспортируется...
В такой ситуации возможно явно задать весь перечень нужных $PATH в /home/имя_пользователя/.bashrc - тогда они будут отрабатывать и при ssh имя_пользователя@адрес_сервера "echo \$PATH" и вообще (пусть и с дубляжом, связанным с дефолтными значениями оболочки, заданными в /etc/skel и /etc/login.defs)...
 
Последнее редактирование:

Tempest

New member
Сообщения
10
#8
Спасибо за развернутый ответ. Вижу что у Вас получилось то, что мне нужно с user2 и ssh. Возможно дело в том, что я неправильно создавал своего пользователя.

Если не сложно, можете кинуть в меня ссылкой как из терминала (без графики) создать "user2 с 0:0 мандатными уровнями и 0:0 мандатными категориями;"? Буду очень признателен.
 

oko

New member
Сообщения
1 257
#9
to Tempest
Из-под пользователя-администратора (который в astra-admins группе или который создавался при старте системы) заходите с 63 уровнем целостности (если через ssh - пускает сразу в нужном контексте). Далее adduser user2 - создание пользователя. usermac user2 -l 0:0 - установка ему мин/макс уровней мандатки (собственно, 0). Остальные опции по adduser --help и usermac --help...
63 уровень целостности выставлял пользователю user1 на АРМ через графическую утилиту на клиенте. На сервере для user2 вообще не трогал целостность пользователя (по умолчанию, 0 - Низкий)...
Кстати, не забывайте, что при входе по ssh вы всегда попадаете под пользователя с 0 мандатным уровнем, вне зависимости от доступных ему уровней...
 

Tempest

New member
Сообщения
10
#10
Ок. Спасибо. Попробую обязательно. Даже если не поможет (что будет говорить о том, что я совсем краб), то альтернативное решение для сугубо своей задачи я нашел. Тему предлагаю закрыть.
 

rueng

New member
Сообщения
11
#11
Ок. Спасибо. Попробую обязательно. Даже если не поможет (что будет говорить о том, что я совсем краб), то альтернативное решение для сугубо своей задачи я нашел. Тему предлагаю закрыть.
Хоть бы отписали про "альтернативное решение"...
не говоря уж о "попробую"
 

Tempest

New member
Сообщения
10
#12
Хоть бы отписали про "альтернативное решение"...
не говоря уж о "попробую"
Альтернативное решение для моей задачи - выставить в настойках jenkins у сервера сборки Астры 1.6 нужное значение переменной PATH. Вряд ли у вас именно та же ситуация.

До "попробую" дело так и не дошло - отвлекли другими задачами.