понедельник, 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
Для управления пользователями и группами воспользуйтесь соответствующей инструкцией.

четверг, 3 апреля 2014 г.

Создание полного образа рабочей системы (Parted Magic как аналог Acronis True Image)

К сожалению, Acronis True Image не умеет работать с линуксовыми дисковыми разделами. NTFS он бэкапит логически (только информацию), а EXT4 только посекторно, а значит
а) Долго, поскольку бэкапятся пустые сектора
б) Негибко: нет возможности восстановить образ на раздел другого размера
При этом соответствующая программа для линукса есть - FSArchiver, но она чисто консольная, а значит неинтуитивна. В таких критичных вещах, как операции с целыми дисковыми разделами - пользоваться ей страшновато. Ну как не тот раздел уничтожишь при восстановлении?
1) Оказывается, существует проект QT-FSArchiver GUI.
2) С 2012 года этот проект включен в образ загрузочного диска Parted Magic.
Сочетание инструмнтов GParted и FSArchiver GUI делает этот загрузочный диск/флэшку идеальным инструментом для работы с дисковыми разделами, при условии физической доступности компьютера.
К сожалению, с версии 2013-08-10 проект Parted Magic стал платным и распространяется теперь исключительно по подписке (на официальном сайте проекта стало невозможно скачать даже старые версии). К счастью, образ есть на рутрекере.

среда, 26 марта 2014 г.

Как переименовать сервер

Чтобы переименовать сервер, надо отредактировать на нём файлы /etc/hostname и /etc/hosts.
Если имя компьютера в этих файлах не будет совпадать, sudo будет ругаться при каждом запуске.
Есть еще команда $ sudo hostname NewHostname, она нужна чтобы временно поменять имя сервера без перезагрузки компьютера. В конфиг-файлы она ничего не пишет. Соответственно, вышеозначенные конфиг-файлы после редактирования требуют перезагрузки, без которой можно обойтись, если дополнить их редактирование командой hostname.)

пятница, 29 ноября 2013 г.

Работа с apt-get при подключении к интернету через прокси-сервер

Если выход в интернет осуществляется через прокси-сервер, для доступа к репозиториям необходимо прописать этот доступ в конфиг-файле:
/etc/apt/apt.conf.d/proxy
Если этого файла нет, его надо создать. В этом файле должна быть всего одна строчка:
Acquire::http::Proxy "http://<имя_сервера>:<порт>";
Например:
Acquire::http::Proxy "http://proxy.loc:3128";
Примечание: если при установке системы указать прокси-сервер, он прописывается именно в этот файл.

четверг, 28 ноября 2013 г.

Управление службами (services)

Управление автоматическим запуском служб:
Команда chkconfig.
(sudo apt-get install chkconfig - программа штатно в системе не установлена)
Использование:
chkconfig --list - просмотр списка установленных служб (автозапуск вкл/выкл)
sudo chkconfig <служба> on - включить автозапуск службы
sudo chkconfig <служба> off - отключить автозапуск службы
Ручной запуск и останов служб:
Команда service.
Использование:
service <служба> status - просмотр состояния конкретной службы (работает/остановлена)
sudo service <служба> start - запустить службу
sudo service <служба> stop - остановить службу
service --status-all - просмотр текущего статуса всех установленных служб (работает/остановлена)
Мониторинг сетевых служб:
Команда netstat.
sudo netstat -tulpn - просмотр открытых портов и закрепленных за ними служб

вторник, 29 октября 2013 г.

Управление фоновыми заданиями (background jobs)

Ctrl-Z - приостановить программу и вернуться в командную строку
$ bg - продолжить выполнение приостановленной программы в фоне
$ fg - продолжить выполнение приостановленной программы в интерактивном режиме
$ jobs - список фоновых заданий и приостановленных программ
$ kill %1 - прервать выполнение задания № 1 из списка, показанного командой jobs
$ fg %1 - вернуть задание № 1 в интерактивный режим
$ disown %1 - отвязать фоновое задание № 1 от текущего консольного сеанса
Если добавить значок & в конце консольной команды, она уйдёт на фоновое выполнение сразу после запуска.
Все фоновые задания (кроме отвязанных командой disown) аварийно завершаются при закрытии консольного сеанса из которого их запустили. Передать фоновые процессы от одного консольного сеанса другому нельзя. Можно передать только целиком весь консольный сеанс из одного терминала в другой, если он был создан при помощи команды screen.
Процессы, отвязанные командой disown в интерактивный режим вернуть уже нельзя. (Из списка jobs они пропадают.) Их можно убить только по номеру процесса:
$ pstree -p
$ kill <номер процесса>
Примечание: вместо системы фоновых заданий рекомендуется использовать менеджеры терминалов типа screen и tmux.