root .bashrc не применяются переменные

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Ответить
Аватара пользователя
bars
Сообщения: 917
ОС: BSD/LINUX
Контактная информация:

root .bashrc не применяются переменные

Сообщение bars »

Привет.
Столкнулся с непонятной ерундой.
В системе Gentoo Linux 5.15.88-gentoo x86_64, у пользователя root, не применяются переменные окружения из файла ~/.bashrc.

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

server15 ~ # cat /root/.bashrc
# /etc/skel/.bashrc
#
if [[ $- != *i* ]] ; then
        # Shell is non-interactive.  Be done now!
        return
fi

alias la='ls -lah'
alias sss='sh sss'
alias nload='nload -i 100000 -o 100000'
alias kal='python'
alias top='top -1'
alias ll='ls -lh'
alias df='df -h'

export HISTCONTROL=ignoredups
export HISTIGNORE=":pwd:id:uptime:resize:clear:history:df:w:"
export HISTSIZE=5000
export HISTFILESIZE=5000
Проверяю после перезагрузки системы, допустим.

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

# echo $HISTFILESIZE
500
Обновляю в ручную переменные окружения.

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

# source .bashrc
Смотрю

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

# echo $HISTFILESIZE
5000
Почему так?
С простым пользователем в системе нет проблем, переменные применяются автоматически из ~/.bashrc.
Не хочется городить костыль в кроне у пользователя root.

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

@reboot source .bashrc
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Акаролибр
Сообщения: 104

Re: root .bashrc не применяются переменные

Сообщение Акаролибр »

Всё работает.

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

$ sudo su -
Last login: Пн янв 30 15:33:56 MSK 2023 on pts/0
computer ~ # echo $HISTFILESIZE
5000

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

# cat /root/.bashrc
# /etc/skel/.bashrc
#
# This file is sourced by all *interactive* bash shells on startup,
# including some apparently interactive shells such as scp and rcp
# that can't tolerate any output.  So make sure this doesn't display
# anything or bad things will happen !


# Test for an interactive shell.  There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]] ; then
	# Shell is non-interactive.  Be done now!
	return
fi
# Put your fun stuff here.
export HISTFILESIZE=5000

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

# uname -r
5.10.13-x86_64

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

# grep "PRETTY_NAME" /etc/os-release
PRETTY_NAME="Gentoo Linux"
Последний раз редактировалось Акаролибр 30.01.2023 15:40, всего редактировалось 1 раз.
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 917
ОС: BSD/LINUX
Контактная информация:

Re: root .bashrc не применяются переменные

Сообщение bars »

Акаролибр писал:
30.01.2023 15:37
Ты не написал, где по-твоему у рута директория (какой у неё абсолютный путь).
Этого что не достаточно?!
cat /root/.bashrc
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Акаролибр
Сообщения: 104

Re: root .bashrc не применяются переменные

Сообщение Акаролибр »

Ну незнаю, вот это внимательно прочитай, может другие имена нужны:
https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
у меня концентрации не хватает.

# uptime
15:51:39 up 108 days, 22:58, 1 user, load average: 1,96, 1,99, 2,08
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 917
ОС: BSD/LINUX
Контактная информация:

Re: root .bashrc не применяются переменные

Сообщение bars »

В корневой диреткории root создал файл

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

/root/.bash_profile
С таким содержимым, теперь переменные окружения пользователя root из файла .bashrc активируются.

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

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Но только странно, почему у простого пользователя в той же системе, без создания файла (bash_profile) в корне его директории, переменные автоматически считываются и применяются из файлы .bashrc
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
Ater
Сообщения: 170
Статус: Дважды Будда Советского Союза
ОС: Gentoo

Re: root .bashrc не применяются переменные

Сообщение Ater »

Это только с 5.15.88 так? Может, стоит откатиться на 80? Там такого нет, только что проверил интереса ради.
Кстати, вопрос - что в 88 нового, стоит ли его юзать? Сейчас стоит 80, полет нормальный.
Азъ есмь БҌшеный Їзюмъ
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 917
ОС: BSD/LINUX
Контактная информация:

Re: root .bashrc не применяются переменные

Сообщение bars »

Ater писал:
30.01.2023 17:02
Это только с 5.15.88 так? Может, стоит откатиться на 80?
Версия ядра тут не причем.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
Ater
Сообщения: 170
Статус: Дважды Будда Советского Союза
ОС: Gentoo

Re: root .bashrc не применяются переменные

Сообщение Ater »

bars
Возможно. Просто Вы упомянули конкретную версию, вот я и предположил, что дело может быть в этом.
Азъ есмь БҌшеный Їзюмъ
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: root .bashrc не применяются переменные

Сообщение Bizdelnick »

А какой логин-шелл прописан у root? getent passwd root
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 917
ОС: BSD/LINUX
Контактная информация:

Re: root .bashrc не применяются переменные

Сообщение bars »

Bizdelnick писал:
30.01.2023 19:07
А какой логин-шелл прописан у root? getent passwd root

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

root:x:0:0:root:/root:/bin/bash
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 917
ОС: BSD/LINUX
Контактная информация:

Re: root .bashrc не применяются переменные

Сообщение bars »

Есть еще идеи?
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5282
ОС: Gentoo

Re: root .bashrc не применяются переменные

Сообщение /dev/random »

Как вы запускаете оболочку от обычного пользователя, и как от рута? Файл .bashrc обрабатывается только в том случае, если оболочка запущена как интерактивная, но не-логинная. Если она у вас запускается как логинная, то вместо .bashrc вызывается .bash_profile, .bash_login или .profile, смотря что из этого существует.
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 917
ОС: BSD/LINUX
Контактная информация:

Re: root .bashrc не применяются переменные

Сообщение bars »

/dev/random писал:
31.01.2023 10:52
Как вы запускаете оболочку от обычного пользователя, и как от рута? Файл .bashrc обрабатывается только в том случае, если оболочка запущена как интерактивная, но не-логинная. Если она у вас запускается как логинная, то вместо .bashrc вызывается .bash_profile, .bash_login или .profile, смотря что из этого существует.
Не понял насчет логичная/интерактивная.
Консоль запускаю xfce4-terminal под обычным пользователем, после повышаю права su - до рута.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5282
ОС: Gentoo

Re: root .bashrc не применяются переменные

Сообщение /dev/random »

bars писал:
31.01.2023 11:00
Не понял насчет логичная/интерактивная
Не "логичная", а "логинная". От слова "логин". Эмуляторы терминала обычно запускают оболочку как не-логинную, а программы запроса пароля при входе в текстовую консоль без иксов - как логинную. Команда su запускает оболочку как логинную, если указать параметр "-" или "-l", и как не-логинную в противном случае. При ручном запуске оболочки (командой "bash") с той же целью используется параметр "-l" или "--login" (в отличие от su, сокращение этой опции до "-" здесь или недопустимо, или не документировано, не помню точно).
Спасибо сказали:
Акаролибр
Сообщения: 104

Re: root .bashrc не применяются переменные

Сообщение Акаролибр »

bars писал:
31.01.2023 10:43
Есть еще идеи?
Конечно есть. Директория для пользователя создаётся в процессе прохождения хендбука, там выполняется команда useradd, которая копирует в директорию пользователя файлы из директории /etc/skel.
А с домашней директорией рута такого не происходит потому что она берётся как есть из состава файла stage3.

Файл stage3 формируется пакетом dev-util/catalyst. А у меня директория нормальная, потому что система старее, чем этот catalyst был написан. Тогда файлы stage3 формировали по-другому.

Надо написать багу по этому билду в bugs.gentoo.org. Ну, или лучше пофиксить сам catalyst.
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2604
ОС: Gentoo

Re: root .bashrc не применяются переменные

Сообщение ormorph »

Акаролибр писал:
31.01.2023 15:19
Директория для пользователя создаётся в процессе прохождения хендбука, там выполняется команда useradd
Если в Gentoo, то не всегда, ещё ебилдом в acct-user, создается пользователь и каталог, хотя при этом тоже используется useradd, просто этого не видно.
Акаролибр писал:
31.01.2023 15:19
Файл stage3 формируется пакетом dev-util/catalyst.
Чего то не вкурил, где вы там dev-util/catalyst откопали? Или вы выпуски там строчите? Он не прописан в портах в profiles, по этому если вам каким то боком попалось, то если оно прописано в мире. Либо если вы используете какой то хитрый оверлей.
Акаролибр писал:
31.01.2023 15:19
А с домашней директорией рута такого не происходит потому что она берётся как есть из состава файла stage3.
usermod - не пробовали?
Спасибо сказали:
Ответить