Как я могу установить один файл .bashrc для нескольких пользователей?

Во время моей работы мне нужно постоянно добавлять команды псевдонимов в bashrc, большинство из этих команд должны запускаться другими пользователями. Есть ли способ добавить команды псевдонимов в bashrc из внешнего источника?

30
задан 27 July 2014 в 10:31

6 ответов

Много файлов конфигурации в пользовательском корневом каталоге просто переопределяют/добавляют к в /etc - например, настройки для GIMP в пользователях домой находятся в ~/.gimp-2.*, который добавляет к конфигурации в масштабе всей системы /etc/gimp/2.0.

Таким образом для ~/.bashrc, Вы могли отредактировать файлы конфигурации в масштабе всей системы /etc/bash.bashrc (для функций/псевдонимов) или /etc/profile (для материала среды) - Вы можете полный список от man bash:

FILES
       /bin/bash
              The bash executable
       /etc/profile
              The systemwide initialization file, executed for login shells
       /etc/bash.bash_logout
              The systemwide login shell cleanup file, executed when a login shell exits
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file
       ~/.bash_logout
              The individual login shell cleanup file, executed when a login shell exits
       ~/.inputrc
              Individual readline initialization file

Это предупреждение дано для нескольких систем Linux в файлах:

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

Таким образом, Вы могли отредактировать те файлы, можно хотеть создать резервную копию их сначала (cp /etc/bash.bashrc /etc/bash.bashrc-backup например), или создают сценарий оболочки в /etc/profile.d - например, можно создать один с этими командами (с корнем sudo/as):

touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh

Затем откройте его с nano /etc/profile.d/custom.sh

#!/bin/sh
alias ls='ls -lah'

И проверьте, работает ли это путем наблюдения, появляется ли это в выводе alias - Обратите внимание, что Вы, возможно, должны выйти из системы/войти или перезагрузить для наблюдения любых изменений (если Вы не хотите, работая source /etc/profile после того, как любые изменения могли бы работать),

[редактирование: удаленный эта битая ссылка] www.thelinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]

40
ответ дан 27 July 2014 в 10:31

Перейдите в /etc/bash.bashrc

энергия/etc/bash.bashrc

и сделайте свой псевдоним там.

добавьте свой псевдоним в последней строке.

abc псевдонима = "безотносительно"

Тот псевдоним станет глобальным для всех пользователей.

но из соображений безопасности мы не рекомендуем Вам это.

существует profile.d каталог, который содержит файлы пользовательской среды

перейдите в

CD/etc/profile.d/

псевдонимы энергии

и добавьте свои псевдонимы здесь.

не производя Ваши системные файлы. Это - безопасный и правильный способ работать с Вашими файлами среды.

7
ответ дан 27 July 2014 в 10:31

Здесь уже существует принятый ответ, но Вы могли бы рассмотреть использование некоторой формы модулей среды для обработки конфигурации в масштабе всей системы пользовательских сред вместо того, чтобы смешать с файлами в/etc/profile.d и т.д. Это особенно верно, если Вы хотите справиться с этим управлением в одном месте через большое количество оболочек. Lmod (при очень активной разработке), модули C/TCL (классическое решение), или Cmod (легкий вес).

3
ответ дан 27 July 2014 в 10:31

Не знайте, делаю ли я его правильно, но это работает на меня для хранения/home/ComunAtodos каталога (использованный для своей выгоды и на испанском языке для создания очевидным, что это не собственный каталог Linux), и помещенный .bashrc, .nanorc и .bash_aliases там. Затем я ссылаюсь на тех, которые в/etc/skel/.profile, таким образом, новые пользователи указывают им и только добавляют отдельно оплачиваемые предметы к определенным пользователям, которым нужны они.

1
ответ дан 7 October 2019 в 11:04

Я действительно плохо знаком с Linux operativ система, но я сделал эскиз сценария удара, который работает для изменения всех пользователей .bashrc файл а не системный файл/etc/.bashrc файл.

#!/bin/bash

X=$( cat etc/passwd | cut -f1 -d: ) #All-users

For X in /home/*/.bashrc ; do 

echo "alias ls='ls -al'" >> $X

2>/dev/null

done

source $X

exit 0

Хорошо, таким образом, я знаю, что тот сценарий работает, но я не делаю, если это - свободный отказ :) Также можно изменить его так, это не делает вовлекает всех пользователей, возможно, u делают файл для всех пользователей, которым нужен их .bashrc настроенный файл.

-1
ответ дан 23 November 2019 в 00:47

У меня похожий вопрос

#!/bin/bashX='$( cat etc/passwd | cut -f1 -d: )' #All-users
For X in /export/home/*/.bashrc ; do
echo "$HOME/.profile'" >> $X
$X 2>/dev/null
done
source $X
exit 0

но я столкнулся с ошибкой и не печатаю то, что хочу

./
ja1.sh: line 3: syntax error near unexpected token `do'
./ja1.sh: line 3: `For X in /export/home/*/.bashrc ; do '

Основная цель использования этого скрипта для печати $HOME/.profile в файле .bashrc для всех пользователей сразу, используя скрипт для пользователя root. Пробую один скрипт работает только для одного пользователя

echo "$HOME/.profile" >> /export/home/test/.bashrc
0
ответ дан 29 December 2020 в 09:05

Другие вопросы по тегам:

Похожие вопросы: