Ссылки:
1 |
!!! https://www.linuxfromscratch.org/lfs/downloads/stable-systemd/LFS-BOOK-11.1-NOCHUNKS.html#ch-tools-binutils-pass1 |
121. (9.2.) Общая конфигурация сети
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
0. Общая инфа: systemd-networkd - демон конфигурации сети, который можно использовать для базовой настройки сети. systemd-resolved - разрешение DNS-имен /etc/resolv.conf - статический файл разрешение DNS-имен Файлы конфигурации для systemd-networkd (и systemd-resolved ) можно поместить в /usr/lib/systemd/networkили /etc/systemd/network. Файлы в /etc/systemd/network имеют более высокий приоритет, чем файлы в /usr/lib/systemd/network. Существует три типа файлов конфигурации: .link, .netdev и .network файлы. Подробные описания и примеры содержимого этих файлов конфигурации см на страницах руководства systemd-link(5)и systemd-netdev(5). systemd-network(5). 1. Именование сетевых устройств: !!! Примечание !!! Имена интерфейсов зависят от реализации и конфигурации демона udev, работающего в системе. !!! Для большинства систем существует только один сетевой интерфейс для каждого типа подключения. !!! Например, классическое имя интерфейса для проводного соединения — eth0. !!! Беспроводное соединение обычно имеет имя wifi0 или wlan0. Если вы предпочитаете использовать классические или настраиваемые имена сетевых интерфейсов, есть три альтернативных способа сделать это: 1.1 Замаскируйте файл .link udev для политики по умолчанию: ln -s /dev/null /etc/systemd/network/99-default.link 1.2 Создайте схему именования вручную, например, назовите интерфейсы как-то вроде «internet0», «dmz0» или «lan0». Для этого создайте файлы .link в /etc/systemd/network/, которые выбирают явное имя или лучшую схему именования для ваших сетевых интерфейсов. См. справочную страницу systemd.link(5) для получения дополнительной информации. Например: cat > /etc/systemd/network/10-ether0.link << "EOF" [Match] # Change the MAC address as appropriate for your network device MACAddress=12:34:45:78:90:AB [Link] Name=ether0 EOF 1.3 В /boot/grub/grub.cfg укажите параметр net.ifnames=0 в командной строке ядра. |
122. (9.2.1.2.) Статическая IP-конфигурация
1 2 3 4 5 6 7 8 9 10 11 |
Приведенная ниже команда создает базовый файл конфигурации для настройки статического IP-адреса (используя как systemd-networkd, так и systemd-resolved): cat > /etc/systemd/network/10-eth-static.network << "EOF" [Match] Name=<network-device-name> [Network] Address=192.168.0.2/24 Gateway=192.168.0.1 DNS=192.168.0.1 Domains=<Your Domain Name> EOF |
123. (9.2.1.3.) DHCP-конфигурация
1 2 3 4 5 6 7 8 9 10 |
cat > /etc/systemd/network/10-eth-dhcp.network << "EOF" [Match] Name=<network-device-name> [Network] DHCP=ipv4 [DHCP] UseDomains=true EOF |
124. (9.2.2.2) Статическая конфигурация resolv.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Если система будет подключена к Интернету, ей потребуются некоторые средства разрешения имен службы доменных имен (DNS) для преобразования имен доменов Интернета в IP-адреса и наоборот. Этого лучше всего добиться, поместив IP-адрес DNS-сервера, доступный у интернет-провайдера или сетевого администратора, в файл /etc/resolv.conf. !!! Примечание !!! При использовании методов, несовместимых с systemd-resolved, для настройки ваших сетевых интерфейсов (например, ppp и т. д.), или при использовании любого типа локального !!! преобразователя (например, bind, dnsmasq, unbound и т. д.) или любого другого программного обеспечения, которое создает /etc/resolv.conf (пример: программа resolvconf , !!! отличная от предоставленной systemd), файл systemd-resolved использовать не следует. !!! Чтобы отключить systemd-resolved, введите следующую команду: !!! systemctl disable systemd-resolved 0. Создаем /etc/resolv.conf : cat > /etc/resolv.conf << "EOF" # Begin /etc/resolv.conf domain <Your Domain Name> nameserver <IP address of your primary nameserver> nameserver <IP address of your secondary nameserver> # End /etc/resolv.conf EOF |
125. (9.2.3.) Настройка имени хоста системы
1 2 3 4 5 6 |
Создайте /etc/hostname файл и введите имя хоста, запустив: echo "<lfs>" > /etc/hostname <lfs>необходимо заменить на имя, данное компьютеру. Не вводите здесь полное доменное имя (FQDN). Эта информация помещается в /etc/hosts файл. |
126. (9.2.4.) Настройка файла /etc/hosts
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Выберите полное доменное имя (FQDN) и возможные псевдонимы для использования в /etc/hosts файле. При использовании статических IP-адресов вам также необходимо выбрать IP-адрес. !!! Даже если сетевая карта не используется, все равно требуется действительное полное доменное имя. Это необходимо для правильной работы некоторых программ, таких как MTA. Синтаксис записи в файле hosts следующий: IP_address myhost.example.org aliases cat > /etc/hosts << "EOF" # Begin /etc/hosts 127.0.0.1 localhost.localdomain localhost 127.0.1.1 <FQDN> <HOSTNAME> <192.168.0.2> <FQDN> <HOSTNAME> [alias1] [alias2] ... ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters # End /etc/hosts EOF !!! Значения <192.168.0.2>, <FQDN>и <HOSTNAME> необходимо изменить для конкретных целей или требований (если IP-адрес назначен сетевым/системным администратором и машина будет подключена !!! к существующей сети). Необязательные псевдонимы могут быть опущены, а <192.168.0.2> строка может быть опущена, если вы используете соединение, !!! настроенное с помощью DHCP или автоматической настройки IPv6. !!! Запись ::1 является IPv6-аналогом 127.0.0.1 и представляет петлевой интерфейс IPv6. !!! 127.0.1.1 — это запись обратной связи, зарезервированная специально для полного доменного имени. |
127. (9.3.) Обзор работы с устройствами и модулями
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Системы Linux в целом традиционно использовали метод создания статических устройств, при котором создавалось очень много узлов устройств /dev(иногда буквально тысячи узлов), независимо от того, существовали ли на самом деле соответствующие аппаратные устройства. Обычно это делалось с помощью сценария MAKEDEV , который содержит несколько вызовов mknod . с соответствующими старшими и второстепенными номерами устройств для каждого возможного устройства, которое может существовать в мире. Используя метод udev, только те устройства, которые обнаружены ядром, получают созданные для них узлы устройств. Поскольку эти узлы устройств будут создаваться каждый раз при загрузке системы, они будут храниться в devtmpfs файловой системе (виртуальной файловой системе, которая полностью находится в системной памяти). Узлы устройств не требуют много места, поэтому используемая память незначительна. sysfs Можно задаться вопросом, как узнать sysfs об устройствах, присутствующих в системе, и какие номера устройств следует использовать для них. Драйверы, которые были скомпилированы в ядро, напрямую регистрируют свои объекты с помощью sysfs(devtmpfs внутри), поскольку они обнаруживаются ядром. Для драйверов, скомпилированных как модули, эта регистрация произойдет при загрузке модуля. После sysfs монтирования файловой системы (в /sys) данные, с которыми регистрируются драйверы, sysfs доступны процессам пользовательского пространства и udevd для обработки (включая модификации узлов устройств). Создание узла устройства Файлы устройств создаются ядром devtmpfs файловой системой. Любой драйвер, который хочет зарегистрировать узел устройства, пройдет через devtmpfs(через ядро драйвера), чтобы сделать это. Когда devtmpfs экземпляр монтируется на /dev, узел устройства изначально создается с фиксированным именем, разрешениями и владельцем. Через некоторое время ядро отправит uevent в udevd. На основе правил, указанных в файлах в каталогах , , и, /etc/udev/rules.dudevd /usr/lib/udev/rules.d создаст дополнительные символические ссылки на узел устройства, или изменит его разрешения, владельца или группу, или изменит запись (имя) внутренней базы данных udevd для этого объекта. /run/udev/rules.d Правила в этих трех каталогах пронумерованы, и все три каталога объединены. Если udevd не сможет найти правило для создаваемого устройства, он оставит права и права собственности такими, какие devtmpfs использовались изначально. Загрузка модуля Драйверы устройств, скомпилированные как модули, могут иметь встроенные псевдонимы. Псевдонимы видны в выводе программы modinfo и обычно связаны со специфическими для шины идентификаторами устройств, поддерживаемых модулем. Например, драйвер snd-fm801 поддерживает устройства PCI с идентификатором производителя 0x1319 и идентификатором устройства 0x0801 и имеет псевдоним « pci:v00001319d00000801sv*sd*bc04sc01i* ». Для большинства устройств драйвер шины экспортирует псевдоним драйвера, который будет обрабатывать устройство, через файлы sysfs. Например, /sys/bus/pci/devices/0000:00:0d.0/modalias файл может содержать строку « PCI: v00001319d00000801sv00001319sd00001319bc04sc01i00 ». Правила по умолчанию, предоставляемые udev, заставят udevd вызывать /sbin/modprobe с содержимым MODALIAS переменной среды uevent (которое должно совпадать с содержимым modaliasфайла в sysfs), таким образом загружая все модули, псевдонимы которых соответствуют этой строке . после расширения подстановочных знаков. В данном примере это означает, что помимо snd-fm801 будет загружен устаревший (и нежелательный) драйвер forte , если он доступен. Само ядро также может загружать модули для сетевых протоколов, файловых систем и поддержки NLS по запросу. Работа с горячими подключаемыми/динамическими устройствами Когда вы подключаете устройство, такое как MP3-плеер с универсальной последовательной шиной (USB), ядро распознает, что устройство теперь подключено, и генерирует событие uevent. Затем это событие обрабатывается udevd , как описано выше. |
128. (9.3.3.) Проблемы с загрузкой модулей и созданием устройств
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
0. Модуль ядра не загружается автоматически: Udev загрузит модуль только в том случае, если у него есть псевдоним, специфичный для шины, и драйвер шины правильно экспортирует необходимые псевдонимы в sysfs. В остальных случаях следует организовать загрузку модулей другими способами. Известно, что в Linux-5.16.9 udev загружает правильно написанные драйверы для устройств INPUT, IDE, PCI, USB, SCSI, SERIO и FireWire. Чтобы определить, имеет ли требуемый драйвер устройства необходимую поддержку udev, запустите modinfo с именем модуля в качестве аргумента. Теперь попробуйте найти каталог устройства /sys/bus и проверьте, есть ли там modalias файл. Если modalias файл существует в sysfs, драйвер поддерживает устройство и может обращаться к нему напрямую, но не имеет псевдонима, это ошибка в драйвере. Загрузите драйвер без помощи udev и ожидайте, что проблема будет исправлена позже. modalias Если в соответствующем каталоге под , нет файла /sys/bus, это означает, что разработчики ядра еще не добавили поддержку модалий для этого типа шины. В Linux-5.16.9 это относится к шинам ISA. Ожидайте, что эта проблема будет исправлена в более поздних версиях ядра. Udev вообще не предназначен для загрузки драйверов - оболочек , таких как snd-pcm-oss, и неаппаратных драйверов, таких как loop. 1. Модуль ядра не загружается автоматически, и udev не предназначен для его загрузки. Если модуль « wrapper » только расширяет функциональные возможности, предоставляемые другим модулем (например, snd-pcm-oss расширяет функциональные возможности snd-pcm , делая звуковые карты доступными для приложений OSS), настройте modprobe для загрузки оболочки после загрузки udev. обернутый модуль. Для этого добавьте в соответствующий файл строку « softdep ». Например: /etc/modprobe.d/<filename>.conf softdep snd-pcm post: snd-pcm-oss Обратите внимание, что команда « softdep » также допускает pre:зависимости или их сочетание . См. справочную страницу для получения дополнительной информации о синтаксисе и возможностях « softdep » .pre:post:modprobe.d(5) 2. Udev неправильно создает устройство или делает неверную симлинк Обычно это происходит, если правило неожиданно соответствует устройству. Например, плохо написанное правило может соответствовать как диску SCSI (по желанию), так и соответствующему универсальному устройству SCSI (неверно) по поставщику. Найдите неправильное правило и сделайте его более конкретным с помощью команды "udevadm info". udevadm info 3. Порядок именования устройств изменяется случайным образом после перезагрузки Это связано с тем, что udev по своей природе обрабатывает uevents и загружает модули параллельно и, следовательно, в непредсказуемом порядке. Это никогда не будет « исправлено » . Вы не должны полагаться на стабильность имен устройств ядра. Вместо этого создайте свои собственные правила, которые создают символические ссылки со стабильными именами на основе некоторых стабильных атрибутов устройства, таких как серийный номер или вывод различных утилит *_id, установленных udev. 4. Полезное почитать http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf https://mirrors.edge.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf |
129. (9.3.3.3.) Udev загружает какой-то нежелательный модуль \ отключить драйвер \ пример с forte
1 2 3 4 5 |
Либо не создавайте модуль, либо занесите его в черный список в /etc/modprobe.d/blacklist.conf файле, как это сделано с модулем forte в примере ниже: vim /etc/modprobe.d/blacklist.conf ---------------------------------- blacklist forte ---------------------------------- |
130. (9.4.) Управление устройствами
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Порядок, в котором появляются устройства с одинаковыми функциями, по /dev сути, случайный. Например, если у вас есть USB-веб-камера и ТВ-тюнер, иногда /dev/video0 ссылается на камеру и /dev/video1 ссылается на тюнер, а иногда после перезагрузки порядок меняется. Для всех классов оборудования, кроме звуковых карт и сетевых карт, это можно исправить, создав правила udev для пользовательских постоянных символических ссылок. Случай с сетевыми картами рассматривается отдельно в Разделе 9.2. Для каждого из ваших устройств, которые могут иметь эту проблему (даже если проблема не существует в вашем текущем дистрибутиве Linux), найдите соответствующий каталог в папке /sys/class или /sys/block. Выясните атрибуты, которые однозначно идентифицируют устройство (обычно работают идентификаторы производителя и продукта и/или серийные номера): /sys/class/video4linux/videoX Затем напишите правила, создающие символические ссылки, например: cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF" # Persistent symlinks for webcam and tuner KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", SYMLINK+="webcam" KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", SYMLINK+="tvtuner" EOF В результате устройства /dev/video0 и /dev/video1по-прежнему случайным образом ссылаются на тюнер и веб-камеру (и, следовательно, никогда не должны использоваться напрямую), но есть символические ссылки /dev/tvtuner, /dev/webcam которые всегда указывают на правильное устройство. |
131. (9.5.) Настройка системных часов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
В этом разделе обсуждается, как настроить системную службу systemd-timedated , которая настраивает системные часы и часовой пояс. systemd-timedated читает/etc/adjtime и, в зависимости от содержимого файла, устанавливает часы либо на UTC, либо на местное время. Если /etc/adjtimeон отсутствует при первой загрузке, systemd-timedated предположит, что аппаратные часы установлены на UTC, и настроит файл в соответствии с этим. Создайте /etc/adjtimeфайл со следующим содержимым, если ваши аппаратные часы настроены на местное время: cat > /etc/adjtime << "EOF" 0.0 0 0.0 0 LOCAL EOF !!! Обратите внимание, что команда timedatectl не работает в среде chroot. Его можно использовать только после загрузки системы LFS с помощью systemd. Вы также можете использовать утилиту timedatectl , чтобы сообщить systemd-timedated , установлены ли ваши аппаратные часы на UTC или местное время: timedatectl set-local-rtc 1 timedatectl также можно использовать для изменения системного времени и часового пояса. Чтобы изменить текущее системное время, зону: timedatectl set-time YYYY-MM-DD HH:MM:SS timedatectl set-timezone TIMEZONE Вы можете получить список доступных часовых поясов, запустив: timedatectl list-timezones |
132. (9.5.1.) Синхронизация сетевого времени
1 2 3 4 5 6 7 8 9 10 11 |
Начиная с версии 213, systemd поставляет демон под названием systemd-timesyncd , который можно использовать для синхронизации системного времени с удаленными серверами NTP. Демон не предназначен для замены хорошо зарекомендовавшего себя демона NTP, а только как клиентская реализация протокола SNTP, которую можно использовать для менее сложных задач и в системах с ограниченными ресурсами. Начиная с systemd версии 216 демон systemd-timesyncd включен по умолчанию. Если вы хотите отключить его, введите следующую команду: systemctl disable systemd-timesyncd Этот /etc/systemd/timesyncd.conf файл можно использовать для изменения серверов NTP, с которыми синхронизируется systemd-timesyncd . Обратите внимание, что если системные часы установлены на местное время, systemd-timesyncd не будет обновлять аппаратные часы. |
133. (9.6.) Настройка консоли Linux (Configuring the Linux Console)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
В этом разделе обсуждается, как настроить системную службу systemd-vconsole-setup , которая настраивает шрифт виртуальной консоли и раскладку клавиатуры. Служба systemd-vconsole-setup считывает /etc/vconsole.confфайл для получения информации о конфигурации. Решите, какая раскладка клавиатуры и экранный шрифт будут использоваться. В этом также могут помочь различные HOWTO для конкретных языков: http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html Изучите "localectl list-keymaps", чтобы найти список допустимых раскладок консоли. Найдите в /usr/share/consolefont sкаталоге допустимые экранные шрифты. localectl list-keymaps Файл /etc/vconsole.conf должен содержать строки вида: ПЕРЕМЕННАЯ="значение". Распознаются следующие переменные: KEYMAP Эта переменная определяет таблицу сопоставления клавиш для клавиатуры. Если не установлено, по умолчанию используется us. KEYMAP_TOGGLE Эту переменную можно использовать для настройки второй раскладки клавиш переключения, и по умолчанию она не установлена. FONT Эта переменная определяет шрифт, используемый виртуальной консолью. FONT_MAP Эта переменная указывает используемую карту консоли. FONT_UNIMAP Эта переменная определяет карту шрифтов Unicode. Создадим файл vconsole.conf: cat > /etc/vconsole.conf << "EOF" KEYMAP=en FONT=Lat2-Terminus16 EOF Вы можете изменить значение KEYMAP во время выполнения с помощью утилиты localectl: !!! Обратите внимание, что команда localectl не работает в среде chroot. Его можно использовать только после загрузки системы LFS с помощью systemd. localectl set-keymap MAP list-x11-keymap-models - Показывает известные модели раскладки клавиатуры X11. list-x11-keymap-layouts - Показывает известные раскладки клавиатуры X11. list-x11-keymap-variants - Показывает известные варианты раскладки клавиатуры X11. list-x11-keymap-options - Показывает известные параметры раскладки клавиатуры X11. |
134. (9.7.) Настройка языкового стандарта системы (Configuring the System Locale)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
В /etc/locale.confприведенном ниже файле задаются некоторые переменные среды, необходимые для поддержки родного языка. Правильная их установка приводит к: Вывод программ, которые переводятся на ваш родной язык Правильная классификация символов на буквы, цифры и другие классы. Это необходимо для того , чтобы bash правильно принимал символы, отличные от ASCII, в командных строках в неанглийских локалях. Правильный алфавитный порядок сортировки для страны Подходящий размер бумаги по умолчанию Правильное форматирование денежных значений, времени и дат Замените <//> приведенный ниже двухбуквенный код нужного языка (например, « en » ) и <CC>двухбуквенный код соответствующей страны (например, « GB » ). <charmap> следует заменить каноническим шармапом для выбранной вами локали. Также могут присутствовать необязательные модификаторы, такие как « @euro » . Список всех локалей, поддерживаемых Glibc, можно получить, выполнив следующую команду: locale -a Карты символов могут иметь несколько псевдонимов, например, « ISO-8859-1 » также упоминается как « iso8859-1 » и « iso88591 ». Некоторые приложения не могут правильно обрабатывать различные синонимы (например, требуют, чтобы « UTF-8 » записывалось как « UTF-8 » , а не « utf8 » ), поэтому в большинстве случаев безопаснее всего выбрать каноническое имя для конкретной локали. . Чтобы определить каноническое имя, выполните следующую команду, где <locale name> это вывод, заданный locale -a для вашего предпочтительного языкового стандарта ( в нашем примере « en_GB.iso88591 » ). LC_ALL=<locale name> locale charmap LC_ALL=en_US locale charmap "ISO-8859-1" Важно, чтобы локаль, найденная с помощью приведенной выше эвристики, была проверена до ее добавления в файлы запуска Bash: LC_ALL=<locale name> locale language LC_ALL=<locale name> locale charmap LC_ALL=<locale name> locale int_curr_symbol LC_ALL=<locale name> locale int_prefix Приведенные выше команды должны вывести название языка, кодировку символов, используемую в локали, местную валюту и префикс, который необходимо набрать перед телефонным номером, чтобы попасть в страну. Если какая-либо из приведенных выше команд завершается с ошибкой с сообщением, подобным показанному ниже, это означает, что ваша локаль либо не была установлена в главе 8, либо не поддерживается установкой Glibc по умолчанию. Пример ошибки: "locale: Cannot set LC_* to default locale: No such file or directory" В этом случае следует либо установить желаемую локаль с помощью команды localedef , либо рассмотреть возможность выбора другой локали. Дальнейшие инструкции предполагают, что таких сообщений об ошибках от Glibc нет. После определения правильных настроек локали создайте /etc/locale.conf файл: cat > /etc/locale.conf << "EOF" LANG=en_US.ISO-8859-1 EOF localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US" Обратите внимание, что вы можете изменить /etc/locale.confс помощью утилиты systemd localectl. Чтобы использовать localectl для приведенного выше примера, запустите: #!!! Примечание: Обратите внимание, что команда localectl не работает в среде chroot. #localectl set-locale LANG="<ll>_<CC>.<charmap><@modifiers>" localectl set-locale LANG="en_US.UTF-8" LC_CTYPE="en_US" Локали « C » (по умолчанию) и «en_US » (рекомендуется для пользователей английского языка в США) различаются. «C» использует 7-битный набор символов US-ASCII и обрабатывает байты с установленным старшим битом как недопустимые символы. Вот почему, например, команда ls заменяет их вопросительными знаками в этой локали. Также попытка отправить почту с такими символами из Mutt или Pine приводит к отправке сообщений, не соответствующих RFC (кодировка в исходящей почте указана как « неизвестная 8-битная »). Рекомендуется использовать локаль « C » только в том случае, если вы уверены, что вам никогда не понадобятся 8-битные символы. |
135. (9.8.) Создание файла /etc/inputrc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
Этот inputrc файл представляет собой файл конфигурации для библиотеки readline, который предоставляет возможности редактирования, когда пользователь вводит строку с терминала. Он работает, переводя ввод с клавиатуры в определенные действия. Readline используется bash и большинством других оболочек, а также многими другими приложениями. Большинству людей не нужны пользовательские функции, поэтому приведенная ниже команда создает глобальный файл /etc/inputrc, используемый всеми, кто входит в систему. Если позже вы решите, что вам нужно переопределить значения по умолчанию для каждого пользователя, вы можете создать .inputr cфайл в домашнем каталоге пользователя с помощью модифицированные отображения. Ниже приведен общий глобальный inputrc параметр вместе с комментариями, поясняющими, что делают различные параметры. Обратите внимание, что комментарии не могут находиться в той же строке, что и команды. Создайте файл с помощью следующей команды: cat > /etc/inputrc << "EOF" # Begin /etc/inputrc # Modified by Chris Lynn <roryo@roryo.dynup.net> # Allow the command prompt to wrap to the next line set horizontal-scroll-mode Off # Enable 8bit input set meta-flag On set input-meta On # Turns off 8th bit stripping set convert-meta Off # Keep the 8th bit for display set output-meta On # none, visible or audible set bell-style none # All of the following map the escape sequence of the value # contained in the 1st argument to the readline specific functions "\eOd": backward-word "\eOc": forward-word # for linux console "\e[1~": beginning-of-line "\e[4~": end-of-line "\e[5~": beginning-of-history "\e[6~": end-of-history "\e[3~": delete-char "\e[2~": quoted-insert # for xterm "\eOH": beginning-of-line "\eOF": end-of-line # for Konsole "\e[H": beginning-of-line "\e[F": end-of-line # End /etc/inputrc EOF |
136. (9.9.) Создание файла /etc/shells
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Файл shells содержит список оболочек входа в систему. Приложения используют этот файл, чтобы определить, действительна ли оболочка. Для каждой оболочки должна присутствовать одна строка, состоящая из пути оболочки относительно корня структуры каталогов (/). Например, chsh обращается к этому файлу, чтобы определить, может ли непривилегированный пользователь изменить оболочку входа в систему для своей учетной записи. Если имя команды не указано, пользователю будет отказано в возможности смены оболочки. Это требование для таких приложений, как GDM , который не заполняет браузер лиц, если не может найти /etc/shells, или демоны FTP, которые традиционно запрещают доступ пользователям с оболочками, не включенными в этот файл. cat > /etc/shells << "EOF" # Begin /etc/shells /bin/sh /bin/bash # End /etc/shells EOF |
137. (9.10.) Использование и конфигурация Systemd
1 |