Отключаем звук системного динамика
По неизвестной мне причине в Debian оставили включенным модуль ядра “pcspkr”, который отвечает за срабатывания системного динамика. Таким образом, при включении или выключении компьютера, а так же в некоторых других случаях из системного блока доносится неприятный писк.
Дабы избавится от данной мелочи нужно просто отключить модуль pcspkr, а точнее – занести его в “черный список” (файл “fbdev-blacklist.conf“), который можно найти по пути /etc/modprobe.d/.
- Открываем файл:
sudo gedit /etc/modprobe.d/fbdev-blacklist.conf
- В его конец дописываем:
blacklist pcspkr
- Сохраняем изменения.
Автоматическое обновление Debian
В Debian, как и в Ubuntu существует возможность выполнять обновление Debian 9 для обновлений безопасности автоматически. И я сейчас не говорю про сторонний инструмент ucare-systemcore. Это инструмент unattended-upgrades и он встроен в систему. Но на всякий случай можете попытаться установить его:
Сначала откройте файл /etc/apt/apt.conf.d/50unattended-upgrades и добавьте в блок Unattended-Upgrade::Origins-Pattern такую строку:
Этот пользователь будет получать электронные сообщения в локальный почтовый ящик о возможных обновлениях. Затем используйте такую команду чтобы настроить другие параметры более тонко:
Сначала согласитесь что нужно устанавливать обновления, затем просто нажмите «Далее»:
После этого убедитесь, что в файл /etc/apt/apt.conf.d/20auto-upgrades были добавлены такие строки:
Все, теперь ваши обновления Debian будут устанавливаться автоматически и вы не пропустите никакой заплатки от новой уязвимости.
Работа с файлом hosts
В папке /etc любого linux дистрибутива, в том числе debian есть файл hosts. Разберемся немного что это за файл и для чего он нужен. По-умолчанию он выглядит следующим образом:
Представим, что у нас в локальной сети есть некий сервер с именем server и ip 192.168.1.50 Мы хотим к нему обращаться по имени. Тогда добавляем запись в файл hosts:
Теперь мы можем обращаться к серверу просто по имени server.
Сервер будет в первую очередь смотреть информацию в файле hosts, только потом в dns сервере. Например, если вы добавите в файл строку:
То обращаясь к адресу ya.ru будете попадать на локалхост:
Этот функционал может быть полезен для публикации в локальной сети каких-то внутренних сервисов, к которым доступ будет только из вашей сети. Вам нет необходимости использовать dns сервер, с файлом hosts настройка делается гораздо быстрее.
Так же правка файла hosts актуальна, если вы используете локальную копию сервиса webpagetest для тестирования скорости работы сайта на разных хостингах. Вы просто меняете ip адреса для домена и делаете тесты. Так можно наглядно и однозначно сравнивать быстродействие разных хостингов. Подробно об этом можно почитать в статье — ускорение сайта и аудит.
Как использовать команду su
Общий синтаксис команды следующий:
При вызове без каких-либо параметров по умолчанию запускает интерактивную оболочку от имени пользователя root:
Вам будет предложено ввести пароль root, и в случае аутентификации пользователь, выполняющий команду, временно станет пользователем root.
Переменные среды сеанса ( ) и home ( ) устанавливаются из замещающей записи пользователя , и текущий каталог не изменяется.
Чтобы подтвердить изменение пользователя, используйте команду :
Команда выведет имя пользователя, запустившего текущий сеанс оболочки:
Наиболее часто используемый параметр при вызове — это ( , ). Это делает оболочку оболочкой входа в систему со средой, очень похожей на реальный вход в систему, и меняет текущий каталог :
Если вы хотите запустить другую оболочку вместо той, которая определена в файле , используйте параметр , . Например, чтобы переключиться на root и запустить оболочку , вы должны ввести:
Чтобы сохранить всю среду ( , , и ) вызывающего пользователя, вызовите команду с параметром , .
Когда опция используется, игнорируется.
Если вы хотите запустить команду от имени замещающего пользователя без запуска интерактивной оболочки, используйте параметр , . Например, чтобы вызвать команду от имени пользователя root, вы должны ввести:
Чтобы переключиться на другую учетную запись пользователя, передайте имя пользователя в качестве аргумента . Например, чтобы переключиться на пользователя вы должны ввести:
Запуск графических программ с правами администратора
Для запуска графических программ с правами администратора можно воспользоваться диалогом запуска программ, вызываемым по умолчанию сочетанием клавиш Alt + F2 .
Допустим, нам необходимо запустить файловый менеджер Nautilus с правами администратора, чтобы через графический интерфейс как-то изменить содержимое системных папок. Для этого необходимо ввести в диалог запуска приложений команду
Вместо gksudo можно подставить gksu , кроме того, пользователи KDE должны вместо gksudo писать kdesu . У вас попросят ввести свой пароль, и, если вы обладаете нужными правами, Nautilus запуститься от имени администратора. Запуск любого графического ПО можно производить с правами администратора, просто написав в диалоге запуска
Как восстановить доступ к Debian Linux в случае проблем с sudo или утратой root-пароля
В некоторых ситуациях может получиться так, что мы потеряем административный доступ к серверу на базе Debian GNU/Linux. Например, к такому исходу могут привести некорректные действия администратора по настройке механизма sudo (ошибки при правке файлов и/или ) и, как следствие, получение ошибки «Username is not in the sudoers file» при любых дальнейших попытках использования sudo. Иногда бывают ситуации, когда локальный доступ к серверу есть, а данные административной учётной записи недоступны и требуется восстановить административный доступ к серверу.
Загрузка в recovery mode
В типичных ситуациях в Linux имеется режим восстановления Recovery Mode, который, как правило, доступен из загрузчика ОС. В этом режиме наша Linux-система доступна в режиме супер-пользователя root, и мы можем исправить в ней имеющиеся у нас проблемы, например внести корректировки в файлы sudo или добавить/изменить учётные данные локального администратора.
Для того, чтобы попасть в меню загрузки, в процессе запуска ОС Debian нажимаем кнопку Shift. В появившемся меню загрузчика GRUB выбираем расширенный режим загрузки:
Затем выбираем интересующее нас ядро Linux в режиме recovery mode…
Однако в случае с Debian, где супер-пользователь root в конфигурации по умолчанию выключен, мы можем получить сообщение о невозможности загрузки консоли восстановления «Cannot open access to console, the root account is locked»:
В таком случае мы можем прибегнуть к приёму изменения параметров загрузки ядра.
Нестандартная загрузка
В процессе загрузки в GRUB выбираем в списке ядер нужное нам ядро (режим recovery mode здесь уже не важен) и нажимаем «e» для редактирования параметров загрузки.
Находим строку начинающуюся с «linux …»
В конце строки меняем значение «» на «», а в самом конце строки дописываем вызов оболочки «».
После чего для продолжения загрузки жмём F10
Теперь мы получили беспарольный root-доступ к нашему серверу. Здесь можно исправить имеющиеся у нас проблемы, например внести корректировки в файлы sudo. После внесения нужных правок система может быть загружена обычным образом (все сделанные нами ранее изменения в GRUB были временными).
Дополнительные источники информации:
- Ubuntu Wiki — Lost Password?
- How to Fix “Username is not in the sudoers file. This incident will be reported” in Ubuntu
Проверено на следующих конфигурациях:
Версия ОС |
---|
Debian GNU/Linux Stretch 9.4 |
Автор первичной редакции:Алексей Максимов
Время публикации: 13.06.2018 15:45
Основные параметры
Алиас Defaults позволяет задать стандартные параметры для работы утилиты, их мы и рассмотрим в этом разделе. Начинается такой алиас со слова Defaults, дальше идет имя флага. Если перед именем есть символ !, это значит, что флаг нужно включить, в обратном случае выключить:
Отключаем введение при первом использовании:
Суперпользователь не может выполнять sudo:
Теперь если вы попытаетесь выполнить sudo sudo ничего не сработает:
Изменять домашнюю директорию для целевого пользователя, по умолчанию остается папка текущего пользователя в качестве домашней директории:
Сохранять список групп текущего пользователя:
Запрашивать пароль суперпользователя вместо пароля пользователя:
Дальше рассмотрим переменные, которым можно задать значения чтобы установить нужные настройки:
Задать количество попыток ввода пароля перед тем, как sudo прекратит работу, по умолчанию — 3:
Количество минут, которое пройдет перед тем, как sudo будет спрашивать пароль снова, по умолчанию 5. Если установить значение в 0, то пароль будет спрашиваться всегда, независимо от того как давно вы использовали утилиту:
Следующий параметр задает количество минут, пока sudo будет ожидать повторного ввода пароля при неправильном вводе:
Вы можете изменить сообщение, которое будет выводится при запросе пароля:
Можно указать другого пользователя, не root, от которого будут выполняться все команды, для этого используйте:
Вы можете записывать в лог все попытки подключения к sudo:
Затем пробуем проверить работу лога:
Это были все самые интересные параметры настройки работы sudo, которые могут вам понадобиться, дальше мы рассмотрим как задать права доступа sudo для пользователей.
Настройка пользователей sudo
Мы уже рассматривали выше синтаксис настройки действий для пользователей, здесь все сложнее чем с псевдонимами, но разобраться можно. Например, разрешим любому пользователю использовать sudo, от любого хоста и выполнять любые команды:
Такая команда очень небезопасна, она разрешает всем и все. Первое ALL — разрешить всем пользователям, второе ALL — для всех хостов, третье ALL — разрешить вход под любым пользователем и четвертое — разрешить выполнять любою команду. Но куда более часто используется другая конструкция:
Означает то же самое, что и предыдущее, только здесь мы разрешаем использовать sudo не всем пользователям, а только тем, которые состоят в группе wheel.
Тут мы уже ограничили возможный выбор пользователей только пользователем root. Также можно указать группу пользователя, от имени которого он может выполнять команды:
Это значит что можно выполнить команду от имени root или другого пользователя из группы admins. Еще мы можем указать команды, которые может выполнять пользователь. Например:
Пользователь может выполнять только команды mount и umount от имени суперпользователя. Теперь сделаем еще интереснее, пользователь может выполнять mount и umount без пароля, а все остальные команды с паролем:
Также можно ограничивать пользователям по хостах, например, разрешаем использование sudo только из host1:
Осталось еще рассмотреть как применять псевдонимы. Псевдонимы могут быть таких типов:
- User_Alias — псевдоним пользователей, которые будут использовать sudo;
- Runas_Alias — псевдоним пользователей, от имени которых будут выполняться команды;
- Host_Alias — псевдоним хоста;
- Cmnd_Alias — псевдоним команд;
Например, создадим четыре псевдонима и применим их в нашем правиле:
Далее применяем все это в правиле:
Это значит, что пользователи из списка Users смогут выполнять команды Cmds от имени пользователей Amdins на хостах Hosts.
Еще осталось сказать несколько слов о флагах. Флаг NOPASSWD говорит, что не нужно запрашивать пароль при выполнении этого правила. Например, разрешить всем пользователям выполнять команду mount с sudo без пароля:
Также можно запретить выполнять именно эту команду вообще с помощью флага NOEXEC:
Вы можете проверить правильно ли была проведена настройка файла /etc/sudoers и посмотреть все созданные правила с помощью команды:
Здесь отображены все установленные флаги и настройки, а также полномочия данного пользователя.
Переключение на суперпользователя в терминале
Теперь мы подошли к более интересному и практичному. С помощью специальных утилит вы можете переключить текущий эмулятор терминала в окружения суперпользователя и выполнять все следующие команды не от своего имени, а от его, таким образом, дав программе права root linux. Для этого существует утилита su. Вообще говоря, эта утилита позволяет не только переключаться на пользователя root но и на любого другого пользователя, но по умолчанию используется именно root. Рассмотрим ее подробнее. Команда su linux имеет следующий синтаксис:
$ su опции пользователь
Вот ее основные опции:
- -c, —command — выполнить команду
- -g, —group — установить основную группу пользователя (только для root)
- -G —supp-group — дополнительные группы пользователя (только для root)
- -, -l, —login — режим входа, будут очищены и инициализированы с учетом нового пользователя все переменные окружения, а также изменен домашний каталог
- -p, —preserve-environment — сохранить переменные окружения
- -s, —shell — задать оболочку для входа
- —version — отобразить версию программы.
Теперь немного поэкспериментируем, чтобы понять как работает команда su linux.
Сначала выполним su без параметров, но для начала создадим переменную окружения, чтобы проверить как с ними обходится эта команда:
Теперь выполняем:
Теперь смотрим что получилось:
Из этих команд мы видим, что теперь мы пользователь root, но домашней директорией считается директория нашего предыдущего пользователя и наша переменная не сохранилась также изменилась переменная PATH, теперь там добавлен путь /sbin.
Теперь используем вход в режиме логина:
И повторим ту же комбинацию:
Та же ситуация, только на этот раз изменена ко всему еще и домашняя директория на директорию root. Но мы можем сохранить наши переменные окружения, если это нужно, для этого есть опция -p:
Как видите, наша переменная осталась. Вы также можете переключится на любого другого пользователя. Например:
Более подробно о команде su вы можете почитать в отдельной статье. Получение прав суперпользователя таким способом используется во многих дистрибутивах, например, Debian, OpenSUSE, ArchLInux, Gentoo и т д. Но в Ubuntu, как дистрибутиве для начинающих вход под пользователем root отключен. Это сделано потому, что это тоже не очень безопасно, вы можете забыть что выполняете команду от root и что-то натворить в системе. Поэтому переходим к следующей программе.
Получение прав root без переключения
Чтобы реализовать максимально безопасный интерфейс для работы с правами суперпользователя в Linux была разработана команда sudo. Давайте рассмотрим что такое sudo. Эта команда пишется перед каждой командой, которую нужно выполнить от имени суперпользователя, и для ее выполнения нужно ввести пароль уже не root, а всего лишь вашего пользователя. Так же, как и в предыдущей, в этой утилиты есть свои опции. Сначала рассмотрим синтаксис:
$ sudo опции команда
Опции программы:
- -b — выполнять запускаемую утилиту в фоне
- -E — сохранить переменные окружения
- -g — запустить команду от группы
- -H — использовать домашний каталог
- -l — показать список полномочий в sudo для текущего пользователя
- -r — использовать для команды роль SELinux
- -s — использовать оболочку
- -u — запустить команду от имени пользователя, если не задано используется root
- -i — не выполнять команду, а войти в оболочку, эквивалентно su —
Вы можете выполнить те же эксперименты, только для этой команды, чтобы понять как использовать команду sudo. Например:
Или:
Использование sudo — это рекомендованный способ выполнять команды от имени суперпользователя в Linux. Так вы не забудете с чем имеете дело и меньше всего рискуете повредить систему. Более подробно о команде sudo читайте здесь. Но остался еще один нерешенный вопрос — как быть с графическими утилитами? Ведь команда sudo их не запускает, а запускать графическую оболочку от имени root небезопасно. Это мы и рассмотрим далее.
Как зайти под root в Ubuntu Desktop GUI
Если вы хотите зайти в систему как пользователь root не в консоли, а на графическом рабочем столе Ubuntu, тогда вам нужно выполнить несколько дополнительных шагов после включения пользователя root:
Откройте фаил /etc/gdm3/custom.conf . Здесь Вам надо будет добавить AllowRoot = true в блоке . Вот так:
Затем откройте файл /etc/pam.d/gdm-password и найдите такую строку:
Закомментируйте её, поставив знак # перед ней:
Далее перезагрузите компьютер. Когда он перезапустится и появится экрану входа в систему — кликните на ссылку «Нет в списке?». Остаётся лишь ввести root в поле username и указать пароль для суперпользователя. Вот и всё!
Как вы знаете, Linux очень серьезно относится к управлению пользователями и предоставлению им прав на работу с системой. Обычный пользователь может записывать файлы только в свой каталог и каталог /tmp/. Также есть возможность читать некоторые файлы в корневой файловой системе. Но вы не можете устанавливать программы, ведь для этого нужно право на запись, не можете изменять атрибуты файлов, не можете запускать сервисы, не можете читать некоторые файлы логов и еще много чего не можете.
В Linux управлять корневой файловой системой и создавать там файлы имеет право только пользователь root.
В этой статье мы рассмотрим какие программы нужны для того, чтобы получить права root пользователя linux, как они работают, как выполнять программу с правами root от обычного пользователя и как запускать графические программы с правами root. А также выясним что такое sudo в чем разница su или sudo.
Тонкая настройка
Таким образом, обычный пользователь может запускать команды с правами учетной записи root не зная ее пароль. Это очень удобно, но может быть небезопасно — есть ли возможность ограничить круг команд, которые можно исполнять посредством sudo? Да, и поможет нам в этом тот же самый конфигурационный файл. Снова запускаем visudo и разбираемся дальше. Нас интересуют параметры, указанные после имени пользователя:
Скриншот №3. Настройки ограничения команд
Разберем их подробнее:
- ALL=(ALL:ALL) ALL — первый параметр определяет к какому хосту применяется конфигурация. При использовании выделенного сервера параметр можно оставить без изменений;
- ALL=(ALL:ALL) ALL — параметры в скобках определяют с полномочиями какого пользователя (первый параметр) и/или группы (второй параметр) будет выполняться команда. По умолчанию sudo выполняет команду от имени root, однако при запуске с ключом –u можно указать другую учетную запись, а с ключом –g другую группу, чьи полномочия будут использованы при запуске;
- ALL=(ALL:ALL) ALL — третий параметр определяет к каким файлам и командам относятся данные настройки.
Исходя из вышесказанного, при необходимости определить перечень разрешенных команд заменяем последний параметр ALL тем, что нам требуется, перечисляя команды через запятую. Например, строка:
дает право пользователю user с помощью sudo осуществлять перезагрузку сервера командой sudo /sbin/shutdown –r и просматривать файлы с помощью sudo /bin/cat. Другие команды через sudo выполняться не будут. Например, при попытке выключить сервер командой sudo /sbin/shutdown –h, получим ответ:
Установка Debian 10
1. Для установки Debian 10 необходимо скачать дистрибутив программы с сайта разработчика. Для установки операционной системы достаточно скачать один диск. Скачиваем отсюда или здесь – далее Debian.
2. Скаченный образ записываем на диск или создаём загрузочную флешку . Затем начинаем установку операционной системы, выбираем Graphical Install.
3. Выбираем язык, который будет использован при инсталляционном процессе и будет использован по умолчанию при использовании операционной системой.
4. Выбираем местонахождение, которое будет учтено при настройке часового пояса.
5. В настройках клавиатуры выбираем свою страну.
6. Производим выбор переключения клавиатуры между национальной раскладкой и стандартной латинской раскладкой.
7. Указываем имя компьютера.
8. Указываем имя домена, если он есть. Если нет, то ничего указывать не надо.
9. Дважды набираем пароль для суперпользователя (root).
10. Создаём учётную запись пользователя, под которой будем работать в системе вместо суперпользователя (root). Можно ввести полное имя пользователя.
11. Вводим имя пользователя, под которым вы будете известны в системе, далее дважды вводим пароль для нового пользователя.
12. Выбираем часовой пояс из списка.
13. Далее начинается процесс разбивки диска, который можно произвести в автоматическом или ручном режиме. Выбираем “Авто – использовать весь диск и настроить LVM“.
14. Выбираем диск, который будем разбивать. Учтите, что все данные на выбранном диске будут стёрты.
15. Производим разметку диска путем выбора из списка или производим разметку диска вручную. Выбираем “Все файлы в одном разделе (рекомендуется новичкам)“.
16. Выбираем “Да” для того, чтобы записать изменения на диск в соответствии с выбранной схемой.
17. Проверяем разметку диска, если все устраивает, то выбираем “Да” для записи изменений на диск.
18. Отвечаем “Нет” на вопросы “Просканировать другой CD или DVD диск?” и “Использовать зеркало архива из сети?“. Отвечаем “Нет” на вопрос “Участвовать в опросе популярности пакетов?“. Выбор программного обеспечения оставляем по умолчанию. Можно будет все установить и настроить после окончательной установки системы.
19. Далее придётся немного подождать, произойдёт выбор и установка программного обеспечения. Затем ставим чекбокс “Да” для установки системного загрузчика GRUB на жёсткий диск.
20. Выбираем жесткий диск, на который будет установлен системный загрузчик.
21. На этом все этапы установки операционной системы Debian 10 пройдены, после того как нажмете “Продолжить“, система будет перезагружены и полностью готова к работе.
Добавляем репозиторий с несвободными пакетами
Debian известен своей политикой в отношении лицензирования ПО. В состав дистрибутива и основного репозитория входят только свободные (по мнению разработчиков) программы. Все не подходищее под это понятие попадает в non-free репозиторий, который по-умолчанию отключен. В нем находится большое количество нужного ПО, такого как: несвободные драйвера, Microsoft шрифты, Flash и т.п. Используя Debian как домашнюю десктопную ОС, данный репозиторий вам понадобится с вероятностью 99,9%.
Подключим его в систему:
- Открываем файл “sources.list“, в котором находится список всех онлайн источников пакетов:
sudo nano /etc/apt/sources.list
- В открывшемся файле находим основной репозиторий. Для Stretch он выглядит примерно так:
deb http://ftp.us.debian.org/debian/ stretch main
- Теперь добавляем в конец строчки
contrib non-free
Должно получится:
deb http://ftp.us.debian.org/debian/ stretch main contrib non-free
- Сохраняем изменения и выходим из редактора.
Поскольку мы добавили новый источник пакетов, нужно обновить индексные файлы:
sudo apt-get update