
У меня есть задание, и я не знаю, какой файл конфигурации bash редактировать.
Мне нужно отредактировать файл конфигурации bash, изменить приглашение PS1 и добавить переменную окружения, которая ищет ~/scripts всякий раз, когда пользователь root вводит команду. Затем мне нужно скопировать ее в соответствующий каталог, чтобы все новые созданные пользователи также имели переменные.
Я могу сделать первую часть нормально, но не уверен, какой файл конфигурации мне следует редактировать. Исходя из второго требования, я редактирую ~/.bashrc, но затем я застрял на второй части, в какой каталог копировать.
NDG говорит, что все файлы в этом каталоге с расширением .sh автоматически выполняются в /etc/profile.d/, поэтому я пошел дальше и скопировал/переименовал ~/.bashrc во что-то вроде bashrc.sh там. Но когда я тестирую его с новым профилем пользователя, в терминале появляется пустое приглашение.
Надеюсь, кто-нибудь здесь сможет мне помочь, спасибо.
Точная формулировка задания
- В соответствующем файле конфигурации оболочки bash настройте основную командную строку так, чтобы она отображала вашу фамилию, за которой следуют @, имя хоста и рабочий каталог.
- Создайте каталог с именем ~/scripts
- В соответствующем файле конфигурации оболочки bash измените соответствующую переменную среды, чтобы система также выполняла поиск в недавно созданном каталоге ~/scripts, когда пользователь root вводит команду.
- Скопируйте файл конфигурации оболочки bash, который вы изменили, выполнив описанные выше действия, в соответствующий каталог, чтобы при создании нового пользователя у него также были эти значения переменных среды.
решение1
Кажется, вы отлично справляетесь с редактированием .bashrc
; каталог, в который вам также нужно скопировать шаблоны любого файла конфигурации/скрипта, который будет дублироваться при создании пользователя, обычно находится по адресу /etc/skel
.
Итак, вы бы сделали:
Добавить
~/.bashrc
и поместить туда:PS1="surname@\h\w>"
Создайте заполнитель для будущих пользовательских скриптов в ~/scripts
mkdir ~/scripts
Добавьте
~/.bashrc
модификатор $PATH для поиска скриптов; как правило, из соображений безопасности его следует добавлять в конец, а не в начало.PATH=$PATH:~/scripts
В этой последней части вам нужно сделать это как
root
, или принадлежа кsudo
группе, предваряя командуsudo
привилегиями суперпользователя; ваших обычных привилегий пользователя по умолчанию будет недостаточно для записи в каталог /etc/skel. Как вsudo cp ~/.bashrc /etc/skel
или как
root
пользователь:cp ~your_user_name/.bashrc /etc/skel
Смотрите соответствующиесвязьдля получения более подробной информации о /etc/skel
Каталог /etc/skel содержит файлы и каталоги, которые автоматически копируются в домашний каталог нового пользователя, когда такой пользователь создается программой useradd.
/etc/skel позволяет системному администратору создать домашний каталог по умолчанию для всех новых пользователей на компьютере или в сети и, таким образом, гарантировать, что все пользователи начинают работу с одинаковыми настройками или средой.
Несколько файлов конфигурации пользователя по умолчанию помещаются в /etc/skel при установке операционной системы.
Название каталога skel происходит от слова «скелет», поскольку содержащиеся в нем файлы образуют базовую структуру домашних каталогов пользователей.
Что касается переменной среды PATH, см.этот
Переменная среды PATH — это разделенный двоеточиями список каталогов, в которых оболочка просматривает команду при вводе.
Файлы программ (исполняемые файлы) хранятся во многих разных местах в системе Unix. Ваш путь сообщает оболочке Unix, где искать в системе, когда вы запрашиваете определенную программу.
Для изменения подсказки на PS1 вы можете поиграть с.bashrc генератор PS1и наблюдайте за изменениями в режиме реального времени, используя довольно умную веб-страницу.