понедельник, 9 ноября 2015 г.

Чистка конфиг-файлов от комментариев

Многие конфиг-файлы Ubuntu идут с огромным количеством комментариев, описывающих настройки, или предлагающих закомментированные варианты настроек под разные конкретные задачи. Чтобы легко окинуть глазом, какие настройки из этого разнообразия реально работают, а какие закомментированы, надо пропустить конфиг-файл через скрипт, который удаляет из него закомментированные строки и оставляет прочие.
Вот команда, которая выводит на экран реальное содержимое конфига, игнорируя комментарии. Конфиг-файл при этом сокращается иногда раз в двадцать. Кроме того, в нём становится гораздо проще искать ошибки.
grep ^[^#] CONFIGFILE.conf
Другой вариант использования этого скрипта - когда настраиваем мы исходный конфиг-файл, со всеми комментариями и пояснениями. А потом пропускаем его через фильтр и подаём на вход программе уже отфильтрованный вариант, который обрабатывается проще и быстрее:
grep ^[^#] CONFIGFILE-COMMENTED.conf > CONFIGFILE-WORKING.conf

Выявление списка пользователей, имеющих административные права в системе

Для вывода списка всех пользователей кроме системных (системными считаются все пользователи с UID < 1000) служит следующая команда:
# awk -F: '{if ($3>=1000) print $1}' /etc/passwd
Просмотр списка пользователей, которым в файле sudoers разрешён доступ к административным функциям (показывает все значащие строчки файла sudoers, игнорируя комментарии):
# grep -v '^#' /etc/sudoers
Редактировать файл /etc/sudoers настоятельно рекомендуется только при помощи команды visudo, т.к. она включает в себя проверку корректности синтаксиса после завершения редактирования. Однако vi достаточно дебильный редактор, поэтому при желании его можно разово поменять на любой другой.
Редактирование файла sudoers при помощи редактора mcedit (необходимо, чтобы был установлен Midnight Commander):
# EDITOR=mcedit visudo
Редактирование файла sudoers при помощи редактора nano (в большинстве случаев штатно установлен в системе):
# EDITOR=nano visudo
Упрощенное описание синтаксиса строк файла sudoers:
username ALL=(ALL) ALL - дать неограниченные админские права пользователю username
%groupname ALL=(ALL) ALL - дать неограниченные админские права группе groupname
Настройка в файле sudoers, которая определяет таймаут между вызовами команды sudo, по достижении которого снова будет запрашиваться пароль.
Defaults env_reset - 15 минут (вариант по умолчанию)
Defaults env_reset,timestamp_timeout=30 - 30 минут
Defaults env_reset,timestamp_timeout=-1 - Неограниченно долго (до выхода из системы)
Команда просмотра всех пользователей группы groupname:
# awk -F: '/^groupname:/ {print $4;}' /etc/group
Команда просмотра всех групп, в которые входит пользователь username:
# groups username
Для управления пользователями и группами воспользуйтесь соответствующей инструкцией.