Руководство по настройке ArchLinux - часть 1 — различия между версиями

Материал из LUWRAIN Wiki
Перейти к: навигация, поиск
м (Защитил страницу Руководство по настройке 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:

  1. useradd -m -g [основная группа] -G [дополнительные группы] -s [командный интерпретатор] [имя пользователя]

• -m — создаёт домашний каталог пользователя, вида /home/[имя пользователя]; в пределах которого, пользователь, не имеющий прав доступа root, может создавать и удалять файлы, устанавливать программы, и т. д. • -g — определяет имя или номер основной группы пользователя; группа должна существовать; номер группы должен относится к уже существующей группе; если параметр не указан, пользователю будет присвоена группа в соответствии с переменной USERGROUPS_ENAB, находящейся в /etc/login.defs. • -G — определяет список дополнительных групп, в которые входит пользователь; каждая группа отделяется от другой запятой без пробелов; по умолчанию пользователь принадлежит только основной группе. • -s — определяет командную оболочку пользователя; сценарии запуска Arch Linux используют Bash; после завершения запуска системы, командная оболочка будет той, что указана в данном параметре; при выборе отличного от Bash интерпретатора, убедитесь, что он установлен в систему.

Стандартный пример - добавление нового пользователя archie, с выбором баша в качестве оболочки и включением его в группы wheel и audio:

  1. useradd -m -g users -G wheel,audio -s /bin/bash archie

Для более продвинутых примеров, наберите: $ man useradd Для того, чтобы ввести полную информацию о пользователе (ФИО, и пр.), наберите:

  1. chfn [имя пользователя] option specifies that the user's home directory and mail spool should also be deleted

(при таком использовании chfn запускается в интерактивном режиме). Для указания пароля пользователя, наберите:

  1. passwd [имя пользователя]

Также доступна интерактивная утилита для добавления пользователей:

  1. adduser

adduser запрашивает различную информацию о пользователе, и составляет команду для useradd. Также включает в себя действия, выполняемые chfn и passwd. Удаление пользователей выполняется командой userdel.

  1. userdel -r [имя пользователя]

Опция -r также удаляет домашнюю директорию и почту пользователя.

Управление группами

/etc/group - файл, хранящий информацию о группах пользователей. Чтобы отобразить группы, в которые включен пользователь, можно использовать команду groups: $ groups [имя пользователя] Если имя пользователя не указано, команда отобразит группы текущего пользователя. Используя команду id можно получить дополнительную информацию, такую как ID пользователя и его групп (UID и GID): $ id [имя пользователя] Отобразить список всех групп: $ cat /etc/group Добавить новую группу командой groupadd:

  1. groupadd [имя группы]

Добавить пользователя в группу, команда gpasswd:

  1. gpasswd -a [имя пользователя] [имя группы]

Удалить группу:

  1. groupdel [имя группы]

Убрать пользователя из группы:

  1. 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. Выполните команду с правами суперпользователя:

  1. EDITOR=nano visudo

Для того, чтобы установить выбранный редактор на постоянной основе для всей системы, но только для visudo, добавьте следующее в /etc/sudoers (предположим, что вы предпочитаете nano в качестве редактора):

  1. Сброс окружения

Defaults env_reset

  1. Установка 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 мы подробно рассмотрим во второй части настоящей статьи.