Руководство по настройке ArchLinux - часть 1 — различия между версиями
EST (обсуждение | вклад) м (Защитил страницу Руководство по настройке ArchLinux - часть 1 ([Редактирование=Разрешено только автоподтверждённым участникам] (бессрочно) […) |
(нет различий)
|
Текущая версия на 08:29, 27 августа 2019
Содержание
Введение.
В прошлой статье мы совершили установку базовой системы на жёсткий диск. Настройку системы мы разделим на два этапа: первый- настройка основных элементов конффигурации системы,не привязанных к графическому интерфейсу, второе- установка и настройка элементов графического интерфейса. Всю настройку мы произведём сразу после установки системы,ещё до первой перезагрузки. Это необходимо,потому что консольный скринридер speakup скомпилирован для работы с устаревшим espeak,а новейший speech-dispatcher- речевой сервер для графического интерфейса требует новейшего синтезатора речи espeak-ng. Теперь давайте условимся, что графический интерфейс мы будем заменять абревиатурой gui- grafics-users-interface, а консольный интерфейс- абревиатурой cli- consol-linux-interface.
Первоначальная настройка системы.
Генерирование файла fstab
Для начала сгенерируем файл- fstab, в котором прописываются наши созданные и примонтированные разделы, в нём же можно прописать параметры монтирования такие,как notime,discard,compress=lzo и прочие. Сгенерировать fstab можно с двумя ключами- -u и -l, эти ключи указывают на то как будут отражаться разделы в fstab- с пмощью uid- идинтификационного номера раздела, или же с помощью list- разделы отражаются с помощью меток. Мы сгенирируем fstab с ключём -u,введя команду-
genfstab -u /mnt/etc/fstab Если же надо отредактировать fstab, вводим команду-
nano /mnt/etc/fstab
Для начала мы можем указать то,надо ли при загрузке компьютера проверять разделы, для чего в поле (pass) надо вписать- 1- проверка корневого раздела,2- проверка других разделов и 0- не проверять раздел при загрузке, тоесть,если мы желаем ускорить загрузку системы, мы можем либо вобще отменить проверку разделов,либо назначить проверку только для корня.
Режим chroot.
Chroot- это утилита,которая позволяет нам зайти в установленную нами систему прямо из лайф-режима. Это нужно для того,чтобы производить манипуляции с системой,используя любой дистрибутив,работающий в лайф-режиме. Итак,перейдём в установленную нами систему,используя команду-
arch-chroot /mnt
часовой пояс
Зададим часовой пояс,к примеру,для региона Европа и города Москва,введя команду-
ln -sf /usr/share/zoneinfo/Europ/Moscow /etc/localtime
Далее сгенерируем файл /etc/adjtime с помощью команды-
hwclock --systohc
Заметим,что данная команда предполагает,что аппаратные часы настроены в формате UTC.
Локализация системы.
Все доступные для ArchLinux локализации прописаны в файле- /etc/locale.gen, нам надо раскоментировать, тоесть удалить знак решётка, который стоит вначале каждой закоментированной строки,
те строки,где прописаны нужные нам локали введя команду-
nano /etc/locale.gen
Обычно раскоментируют английские и русские локали,если мы используем русский язык. Замечу,что обязательно надо раскоментировать локали,где указано UTF-8, потому что UTF-8- это то,что прежде всего понимает любой линукс. Далее,введём команду-
locale-gen
сгенерировав тем самым наши локали. Чтобы общесистемный язык стал русским,мы создадим файл- /etc/local.conf, где и пропишем требуемое,для чего введём команду-
echo LANG=ru.UTF-8 > /etc/local.conf
Теперь в данном файле можно менять общесистемный язык. Закончим настройку локали командой-
export LANG=ru.UTF-8
Напоминаю,что соблюдение регистра букв обязателен. Если для консоли надо добавитьрусскую расскладку,то вводим команду-
loadkeys ru
а чтобы это стало постоянным,надо отредактировать файл- /etc/wconsole.conf. Вписав туда следующее-
Keymap=ru FONT=cyr-sun16
мы прописали и русскую раскладку,и добавили кирилические шрифты.
Настройка сети.
Для начала создадим своё имя хоста,по которому будет определяться наша система в сети, для чего введём команду-
echo myhostmame > /etc/hostmame
Где myhostname мы заменим на своё имя, которое может быть любым,но лучше чтобы оно было прописано на латинице. Далее,отредактируем файл- /etc/hosts-
nano /etc/hosts
в этом файле в строках, начинающихся с localhost и localdomain, надо ввести своё имя хоста. Далее,перед настройкой подключения к сети, для начала установим необходимые пакеты как для работы сети, так и для автоматического подключения к оной, введя команду-
pacman -S iw wpa_supplicant dialog wpa_actiond
далее, узнаем имя своего сетевого интерфейса-
ip link
далее подключим безпроводную сеть-
wifi-menu xxxxx
где xxxxx- имя нашего интерфейса. Теперь после первой перезагрузке, чтобы подключить вай-фай надо будет ввести-
sudo wifi-menu xxxx
и всё, мы в сети.
Initramfs.
Как правило, создание нового образа initramfs не требуется, поскольку pacstrap автоматически запускает mkinitcpio после установки пакета linux. Если вы используете LVM, системное шифрование или RAID, отредактируйте файл mkinitcpio.conf(5) и пересоздайте образ initramfs, введя команду-
mkinitcpio -p linux
Создание пароля для суперпользователя.
Если надо создать пароль для суперпользователя, вводим команду-
paswd
после чего вводим свой пароль, а затем подтверждаем его.
настройка загрузчика.
Для того,чтобы система загружалась, необходимо установить загрузчик. Существует много загрузчиков для линукс, но самым используемым является- grub,
мы тоже установим grub командой-
pacman -S grub
Конфигурация grub зависит от того- используем мы uefi или обычный bios. для uefi вводим следующее-
grub-install --targit=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck
После чего создадим конфигурационный файл для grub, введя команду-
grub mkconfig -o /boot/grub/grub.cfg
Для bios вводим следующее-
grub-install --targit=i386-pc --recheck /dev/sda
После чего создадим конфиг для grub уже описанной выше командой.
Создание пользователя.
Для того,чтобы мы могли пользоваться GUI, желательно создать пользователя и добавить его в нужные группы. Под суперпользователем работать крайне нерекомендуется.
Управление пользователями
Информация о пользователях находится в файле /etc/passwd. Чтобы узнать список всех пользователей в системе: $ cat /etc/passwd На каждый аккаунт приходится по одной строке, имеющей следующий формат: account:password:UID:GID:GECOS:directory:shell где: • account — имя пользователя • password — пароль пользователя • UID — идентификационный номер пользователя • GID — идентификационный номер основной группы пользователя • GECOS — необязательное поле, используемое для указания дополнительной информации о пользователе (напирмер, полное имя пользователя) • directory — домашний каталог ($HOME) пользователя • shell — командный интерпретатор пользователя (обычно /bin/sh) Примечание: Arch Linux использует затенённые пароли. Файл passwd доступен для чтения всем, поэтому хранить в нём пароли небезопасно. С целью сохранить секретность, в поле password находится символ x, указываюший на то, что пароль сохранён в файле с ограниченным доступом /etc/shadow. Посмотреть список пользователей, вошедших в систему, можно с помощью команды who. Чтобы добавить нового пользователя, следует использовать команды useradd:
- useradd -m -g [основная группа] -G [дополнительные группы] -s [командный интерпретатор] [имя пользователя]
• -m — создаёт домашний каталог пользователя, вида /home/[имя пользователя]; в пределах которого, пользователь, не имеющий прав доступа root, может создавать и удалять файлы, устанавливать программы, и т. д. • -g — определяет имя или номер основной группы пользователя; группа должна существовать; номер группы должен относится к уже существующей группе; если параметр не указан, пользователю будет присвоена группа в соответствии с переменной USERGROUPS_ENAB, находящейся в /etc/login.defs. • -G — определяет список дополнительных групп, в которые входит пользователь; каждая группа отделяется от другой запятой без пробелов; по умолчанию пользователь принадлежит только основной группе. • -s — определяет командную оболочку пользователя; сценарии запуска Arch Linux используют Bash; после завершения запуска системы, командная оболочка будет той, что указана в данном параметре; при выборе отличного от Bash интерпретатора, убедитесь, что он установлен в систему.
Стандартный пример - добавление нового пользователя archie, с выбором баша в качестве оболочки и включением его в группы wheel и audio:
- useradd -m -g users -G wheel,audio -s /bin/bash archie
Для более продвинутых примеров, наберите: $ man useradd Для того, чтобы ввести полную информацию о пользователе (ФИО, и пр.), наберите:
- chfn [имя пользователя] option specifies that the user's home directory and mail spool should also be deleted
(при таком использовании chfn запускается в интерактивном режиме). Для указания пароля пользователя, наберите:
- passwd [имя пользователя]
Также доступна интерактивная утилита для добавления пользователей:
- adduser
adduser запрашивает различную информацию о пользователе, и составляет команду для useradd. Также включает в себя действия, выполняемые chfn и passwd. Удаление пользователей выполняется командой userdel.
- userdel -r [имя пользователя]
Опция -r также удаляет домашнюю директорию и почту пользователя.
Управление группами
/etc/group - файл, хранящий информацию о группах пользователей. Чтобы отобразить группы, в которые включен пользователь, можно использовать команду groups: $ groups [имя пользователя] Если имя пользователя не указано, команда отобразит группы текущего пользователя. Используя команду id можно получить дополнительную информацию, такую как ID пользователя и его групп (UID и GID): $ id [имя пользователя] Отобразить список всех групп: $ cat /etc/group Добавить новую группу командой groupadd:
- groupadd [имя группы]
Добавить пользователя в группу, команда gpasswd:
- gpasswd -a [имя пользователя] [имя группы]
Удалить группу:
- groupdel [имя группы]
Убрать пользователя из группы:
- gpasswd -d [имя пользователя] [имя группы]
Пользователю необходимо перезайти в систему, чтобы изменения вступили в силу.
Группы
Пользовательские группы Некоторые пользователи должны состоять в некоторых из следующих групп, чтобы получить доступ к периферийным устройствам и упростить администрирование системы: Группа Затронутые файлы Цель adm
Группа администрирования, аналогичная wheel. ftp /srv/ftp/ Доступ к файлам, обслуживаемым FTP серверами. games /var/games Доступ к некоторым игровым программам. http /srv/http/ Доступ к файлам, обслуживаемым HTTP серверами. log
Доступ к лог-файлам в /var/log/, созданным syslog-ng.
rfkill /dev/rfkill Право управления состоянием питания беспроводных устройств (используется rfkill). sys
Право администрирования принтеров в CUPS. systemd-journal /var/log/journal/* Может использоваться для обеспечения доступа (только для чтения) к журналам systemd, в качестве альтернативы adm and wheel[1]. В противном случае отображаются только сообщения, созданные пользователем. users
Стандартная группа пользователей. uucp /dev/ttyS[0-9]+, /dev/tts/[0-9]+, /dev/ttyUSB[0-9]+, /dev/ttyACM[0-9]+, /dev/rfcomm[0-9]+ RS-232 последовательные порты и подключенные к ним устройства. wheel
Группа администрирования, обычно используемая для предоставления доступа к sudo и su (Не использует его по умолчанию, настраивается в /etc/pam.d/su и /etc/pam.d/su-l). Он также может использоваться для получения полного доступа на чтение к journal[broken link: invalid section] файлам. Системные группы Следующие группы используются для системных целей, назначение пользователям требуется только для специальных целей: Группа Затронутые файлы Цель dbus
Используется внутри dbus kmem /dev/port, /dev/mem, /dev/kmem
locate /usr/bin/locate, /var/lib/locate, /var/lib/mlocate, /var/lib/slocate Смотрите Core utilities#locate[broken link: invalid section]. lp /dev/lp[0-9]*, /dev/parport[0-9]*, /etc/cups, /var/log/cups, /var/cache/cups, /var/spool/cups Доступ к устройствам параллельного порта (принтеры и другие) и доступ (только для чтения) к файлам CUPS. Если вы запустите устройство параллельного порта без принтера, см. FS#50009 возможные. mail /usr/bin/mail
nobody
Непривилегированная группа. proc /proc/pid/ Группа, уполномоченная изучать информацию о процессах, в противном случае запрещена опцией монтирования proc filesystem. Группа должна быть явно задана с помощью опции монтирования. smmsp
sendmail группа. tty /dev/tty, /dev/vcc, /dev/vc, /dev/ptmx
utmp /run/utmp, /var/log/btmp, /var/log/wtmp
Pre-systemd groups Перед переходом arch на systemd, пользователи должны были быть добавлены вручную в эти группы, чтобы иметь возможность доступа к соответствующим устройствам. This way has been deprecated in favour of udev marking the devices with a uaccesstag and logind assigning the permissions to users dynamically via ACLs according to which session is currently active. Обратите внимание: сеанс не должен быть разбит, чтобы это сработало (см. General troubleshooting#Session permissions). Есть некоторые исключения, которые требуют добавления пользователя в некоторые из этих групп: например, если вы хотите разрешить пользователям доступ к устройству, даже когда они не вошли в систему. Однако обратите внимание, что добавление пользователей в группы может добавить некоторые функциональные возможности(например, группа audio нарушит быстрое переключение пользователей и позволяет приложениям блокировать смешение программного обеспечения). Группы Затронутые файлы Цель audio /dev/audio, /dev/snd/*, /dev/rtc0 Прямой доступ к звуковому оборудованию для всех сеансов. По-прежнему требуется, чтобы ALSA и OSS работали в удаленных сеансах, см.ALSA#User privileges. disk /dev/sd[a-z][1-9] Доступ к блочным устройствам, не затронутым другими группами, такими как optical, floppy, и storage. floppy /dev/fd[0-9] Доступ к флоппи-дискам. input /dev/input/event[0-9]*, /dev/input/mouse[0-9]* Доступ к устройствам ввода. Введено в systemd 215 [2]. kvm /dev/kvm Доступ к виртуальным машинам с использованием KVM. optical /dev/sr[0-9], /dev/sg[0-9] Доступ к оптическим устройствам, таким как CD- и DVD-приводы. scanner /var/lock/sane Доступ к оборудованию сканера. storage
Доступ к съемным дискам, таким как жесткие диски USB, флеш-накопители, MP3-плееры; Позволяет пользователю монтировать запоминающие устройства. video /dev/fb/0, /dev/misc/agpgart Доступ к устройствам захвата видео, аппаратное ускорение 2D / 3D, framebuffer (X можно использовать без поддержки этой группы).
Утилита sudo.
Sudo - это альтернатива su для выполнения команд с правами суперпользователя (root). В отличие от su, который запускает оболочку с правами root и даёт всем дальнейшим командам root права, sudo предоставляет временное повышение привилегий для одной команды. Предоставляя привилегии root только при необходимости, использование sudo снижает вероятность того, что опечатка или ошибка в выполняемой команде произведут в системе разрушительные действия. Sudo может также использоваться для выполнения команд от имени других пользователей; кроме того, sudo логирует все команды и неудачные попытки доступа для аудита безопасности. Для установки sudo введём команду-
pacman -S sudo
Использование Пользователи могут предварять команды словом sudo, чтобы исполнять их с привилегиями суперпользователя (или другого пользователя). Например, для использования pacman: $ sudo pacman -Syu
Настройка Просмотр текущих настроек Выполните sudo -ll для вывода текущей конфигурации sudo. Использование visudo Файл настроек /etc/sudoersвсегда следует редактировать с помощью команды visudo. visudo блокирует файл sudoers, сохраняет изменения во временный файл и проверяет, что файл грамматически корректен, перед тем как скопировать его в /etc/sudoers. Важно: • Крайне важно, чтобы файл sudoers был без синтаксических ошибок! Любая ошибка делает sudo неработоспособным. Всегда редактируйте его только с помощью visudo для предотвращения ошибок.
visudo использует vi в качестве текстового редактора по умолчанию. В core репозитории sudo скомпилирована с --with-env-editor по умолчанию и использует переменные VISUAL и EDITOR. EDITOR не используется, если задана переменная VISUAL. Чтобы сделать nano редактором visudo в течение текущего shell сеанса, задайте и экспортируйте переменную EDITOR перед тем, как выполнять visudo. Он будет использован, если вы не определили другой редактор, установив переменные окруженияVISUAL или EDITOR (используемые в таком порядке) в качестве желаемого редактора, например nano. Выполните команду с правами суперпользователя:
- EDITOR=nano visudo
Для того, чтобы установить выбранный редактор на постоянной основе для всей системы, но только для visudo, добавьте следующее в /etc/sudoers (предположим, что вы предпочитаете nano в качестве редактора):
- Сброс окружения
Defaults env_reset
- Установка nano в качестве редактора по умолчанию и запрет visudo использовать EDITOR/VISUAL.
Defaults editor=/usr/bin/nano, !env_editor
Примеры настроек Настройка sudo осуществляется добавлением записей в файл /etc/sudoers. Чтобы дать пользователю привилегии суперпользователя, когда он вводит sudo перед командой, добавьте следующую строку:
имя_пользователя ALL=(ALL) ALL
Разрешить пользователю выполнять все команды от любого пользователя, но только на машине с определенным названием хоста:
имя_пользователя название_хоста=(ALL) ALL
Предоставить членам группы wheel доступ sudo:
%wheel ALL=(ALL) ALL
Чтобы не спрашивать пароль у пользователя:
Defaults:имя_пользователя !authenticate
Разрешить выполнять только конкретные команды и только пользователю на определенном хосте:
имя_пользователя название_хоста=/usr/bin/halt,/usr/bin/poweroff,/usr/bin/reboot,/usr/bin/pacman -Syu
Примечание: Наиболее общие опции должны идти в начале файла, а наиболее частные - наоборот, в конце файла, так как более нижние строки переопределяют более верхние. В частности, добавляемая строка должна быть после строки %wheel, если ваш пользователь находится в этой группе. Разрешить выполнять конкретно определённые команды только для пользователя на определенном хосте и без пароля:
имя_пользователя название_хоста= NOPASSWD: /usr/bin/halt,/usr/bin/poweroff,/usr/bin/reboot,/usr/bin/pacman -Syu
Микрокод
Процессоры могут вести себя неправильно, что может исправить ядро, обновив микрокод при загрузке систем
Установка Для процессоров AMD установите пакет amd-ucode. Для процессоров Intel установите пакет intel-ucode. Если Arch находится на съемном носителе, вы должны установить микрокод для обоих производителей
Включение раннего обновления микрокода Микрокод должен быть загружен загрузчиком. Из-за большого разнообразия конфигураций ранней загрузки у пользователей обновления микрокода могут быть не применены автоматически конфигурацией Arch по умолчанию. Многие ядра в AUR пошли по пути официальных ядер Arch в этом вопросе. Чтобы применить эти обновления, добавьте /boot/amd-ucode.img или /boot/intel-ucode.img в качестве первого initrd в конфигурационном файле загрузчика. Это в дополнение к обычному initrd файлу. Смотрите ниже инструкции для популярных загрузчиков. Примечание: В следующих разделах замените строку производитель_цп вашим производителем, например, amd или intel. Совет: Для Arch Linux на съемном носителе добавьте оба файла initrd в настройки загрузчика. Их порядок не имеет значения, если они оба указаны до реального образа initramfs.
GRUB Автоматический способ Утилита grub-mkconfig автоматически определит обновления микрокода и настроит соответственным образом GRUB. После установки пакета микрокода, перегенерируйте настройки GRUB, чтобы включить обновление микрокода при запуске:
grub-mkconfig -o /boot/grub/grub.cfg
На этом первый этап настройки системы можно считать завершённым. Установку и настройку GUI мы подробно рассмотрим во второй части настоящей статьи.