Назад | Перейти на главную страницу

Файл, который запускается всеми пользователями для новых сеансов bash

Я хотел бы поместить код в файл, который при создании нового сеанса вызывается для всех пользователей системы Debian.

/etc/profile затрагивается только сеансами входа в систему.

Файл, который запускается всеми пользователями для новых сеансов bash

Когда вы читаете главу о Призыв в мануале вы узнаете, что такого файла нет. https://linux.die.net/man/1/bash

У меня нет под рукой Debian, но возможно, что Debian делает что-то похожее на то, что делают RHEL / CentOS: по умолчанию эти дистрибутивы развертываются из /etc/skell как ~/.bash_profile и ~/.bashrc в домашний каталог пользователя.

Когда bash вызывается как интерактивная оболочка входа, ~/.bash_profile должен быть загружен.

/etc/skel/.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

При запуске интерактивной оболочки, которая не является оболочкой входа в систему, bash читает и выполняет команды из ~/.bashrc

Загрузив ~/.bashrc из ~/.bash_profile вы получите файл, который будет загружен как для обычного сеанса, так и для сеанса входа в систему.

/etc/skel/.bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# User specific aliases and functions  

В ~/.bashrc в свою очередь загрузит глобальные /etc/bashrc и вы получаете общесистемный файл, который загружается как для входа в систему, так и для интерактивных сеансов bash без входа.