11-05-2022

9 майских рекомендаций про Linux в 2022 году

9 майских рекомендаций про Linux в 2022 году
NJ Soft

Предполагается что читатель знаком с работой в эмуляторе терминала.

Примеры операционных систем (далее ОС,дистрибутив — всё это в статье называется линуксом): Ubuntu, Fedora, ArchLinux, AstraLinux, ALTlinux.

В общем случае все системы распространяются бесплатно или доступны для бесплатного использования в некоммерческих условиях. Условия использования системы устанавливаются лицензионным соглашением.

Рекомендация № 1: Перед использованием ОС — прочитайте лицензионное соглашение.

После понимания целей использования операционной системы, нужно убедиться что выбранная ОС соответсвует требованиям к вашему оборудованию и программному обеспечению. ОС на базе линукс, умеют работать на разных архитектурах и на многочисленном разнообразии оборудования.

Рекомендация № 2: Выбирайте систему в соответсвии с возможностями оборудования и потребностями в ПО.

Самое новое оборудование требует свежего ПО, а свежее != стабильное. ОС различаются между собой в:

  • Способах распространения ПО (src vs bin)
  • Политиках обновления ПО (актуальность vs стабильность)

После того как система установлена,её нужно настроить. Как правило, в отличие от «других операционных систем», линукс достаточно 1 раз настроить и она будет работать стабильно и надёжно без вмешательств извне. Настройка ОС будет зависеть от целей её использования и от уровня подготовки пользователя, который будет её использовать. Например, если вы программист, и ваш софт будет работать только в линукс, то рекомендуется вести весь процесс и цикл разработки в линуксе, соответственно настраивать систему нужно с учётом целей разработки ПО и с учётом того как разрабатываемое ПО нужно будет запускать/вести отладку.

Рекомендация № 3: Для работы пользователя в системе рекомендуется создать пользователя и задать ему домашнюю директорию и пароль.

По умолчанию для работы с системой доступен только 1 пользователь это root. Его идентификатор = 0. Посмотреть идентификаторы пользователя можно через команду id или в файле /etc/passwd . В линукс по-умолчанию существует два файла с данными о пользователях. Это /etc/passwd и /etc/shadow — последний хранит хеши паролей, поэтому не рекомендуеся работать с этим файлом, т.к если его данные «утекут», то можно будет по словарям подобрать хеш. Тем не менее все пароли используют «соль». Подбор пароля по хешу является сложной и ресурсоёмкой задачей.

Рекомендация № 4: После добавления разрешений на работу из под sudo необходимо проверить «возможность повышение привилегий через выданное разрешение».

Например, если выдаётся разрешение на работу в программе less, то необходимо проверить ограничение на вызов других команд из под less. Т.к в less и других программах может быть включена возможность выполнения bash команд. Например в less это ! Перед вызовом команды. Например: !rm -rf /var/log и таким образом если less был запущен под sudo, есть шанс возможности получения привилегий root, на тем места, куда администратор системы ввёл запрет.

Рекомендация № 5: Не изменяйте права на файлы и директории без осмысленного понимания конечного результата и целей этого действия.

От того какие права выставлены, может зависеть вся безопасность системы вашего оборудования/сервера/ноутбука. Не забывайте как работает программа (chmod и chown) выставления прав.

9 майских рекомендаций про Linux в 2022 году

Где owner — это владелец файла, group — группа пользователя, other — другие пользователи. Флаг на чтение = 4 (R), на запись = 2(W) и на выполнение = 1 (X).

Данная картинка помогает сориентироваться в том, какое значение вводить для команды chmod. Например, команда chmod 0444 предоставит всем пользователям чтение файла, а команда chmod 0655 — (4 + 2) чтение (R) и запись (W) для владельца файла, а для группы и остальных пользователей только чтение и выполнение (4+1 = 5).

Также команда chmod принимает значение режима доступа в виде комбинации [ugoa]*([-+=]([rwxXst]). Например если хотим убрать чтение у владельца файла, то вызываем chmow u-r , что означает убрать чтение для user (owner). А если хотим добавить, то вызываем u+r.

Владелец файла — это u (owner на картинке)
Группа файла — это g (group на картинке)
Остальные пользователи — это o (other на картинке)

А оператор + (добавить) и — (убрать) управляет флагами.

А флаги доступа это r (Read чтение), w (Write запись), x (Execute выполнение).
Хотим добавить чтение и запись группе, значет g+rw.

Рекомендация № 6: Используйте иерархию файловой системы ОС по назначению.

В линукс всё представлено файлами. Например устройства, информация о процессах (procfs он же /proc), дескрипторы и т.д. Всё это находится на своих местах внутри иерархии файловой системы. Следовательно для каждой цели существует своя директория, например для временных файлов это /tmp (которую можно подключить в tmp ram fs в оперативку, после перезагрузки оборудования файлы из этой директории удаляются), директория var - это файлы для работы приложений: журналы, логи, файлы данных, кеша и т.п. (там есть lib, logs, cache, pool и т.п, файлы которые нужны для работы приложений). Директория /usr это директория хранения приложений. Директория /etc — конфиги и т.д. Каждая директория соответсвует своему предназначению. Для 99% целей уже созданы все необходимые директории и заданы для них все необходимые права.

Не придумывайте свои директории в корне, управляйте файлами в соответсвии с иерархией ОС.

Рекомендация № 7: Используйте bash скрипты для автоматизации задач.

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

Рекомендация № 8: Для удалённого доступа к системе отдавайте предпочтение ssh доступу через командную строку.

Огромное преимущество — это очень компактный объём трафика.К тому же, в линукс командная строка - это основное средство управление системой. Даже на скорости в 9 кб/с будет возможность обслуживать систему.

Рекомендация № 9: Пользуйтесь документацией и пытайтесь её осознать и понять.

В некоторых случаях понять документацию программы — ресурсоёмкая и затратная по времени задача. В линукс документация по командам доступа с помощью программы man. Например, если вам надо узнать для чего предназначена программа и как ей пользоваться используйте man [программа], например man bash.

linux dev