Администратор и суперпользователь
Итак, при установке системы вы указывали имя пользователя и пароль, и я сказал, что указанный пользователь после установки будет администратором системы. Так же я сказал, что использование учётной записи администратора не несёт практически никакой угрозы безопасности системы. Теперь постараюсь объяснить всё немного поподробней.
Суперпользователь
Во всех системах на базе Linux всегда есть один привилегированный пользователь, который зовётся root или по-русски суперпользователь. Полномочия этого пользователя не ограничены ничем, он может делать в системе абсолютно всё, что угодно. Кроме того, большинство системных процессов работают от имени root. Понятное дело, использование такого всемогущего пользователя крайне опасно, ибо любая ошибка может привести к катастрофическим последствиям, вплоть до полного уничтожения системы. Обычный же пользователь в Linux вообще говоря никак не может повлиять на работоспособность системы, в частности, не может устанавливать и удалять программы, управлять системными настройками и изменять файлы вне своего домашнего каталога. Поскольку использование суперпользователя крайне опасно, в Ubuntu он спрятан внутри системы, а управлением занимаются обычные пользователи со специальными административными привилегиями 1) .
Администратор
Администратор в Ubuntu по умолчанию может по запросу делать всё то же самое, что и суперпользователь 2) , однако случайно что-то испортить из-под администратора нельзя, т.к. перед выполнением каждого опасного действия система спрашивает у пользователя-администратора его пароль. Вообще говоря, администратор является обычным пользователем, однако при необходимости он может вмешаться в работу системы, но для этого ему потребуется ввести свой пароль.
Главное отличие администратора от суперпользователя как раз и заключается в необходимости вводить пароль для выполнения любого потенциально опасного действия. Если система спрашивает у вас пароль, значит вы собираетесь как-то вмешаться в её работоспособность. Поэтому элементарная внимательность спасёт вас от ошибок, поскольку, я надеюсь, сложно ввести пароль и не заметить этого.
Теория теорией, но вам наверно интересно, как же это всё выглядит на практике? Давайте попробуем установить какую-нибудь программу. Запускаем Центр приложений Ubuntu (нажимаем на его значок в панели запуска). Ищем нужную программу либо через строку поиска, либо по категориям. Давайте установим Midnight Commander 3) . Набираем в стоке поиска mc, выбираем из списка нужную программу и нажимаем «Установить». Поскольку установка программного обеспечения — операция потенциально опасная, то, для ее выполнения, нужны права суперпользователя. О чем система вам незамедлительно сообщит:
Если вы введете правильно (и если вы являетесь администратором, конечно), то программа успешно установится. Если же вы не являетесь администратором (или забыли пароль), то система даст вам возможность три раза ввести пароль, после этого появится окно с сообщением о том, что у вас недостаточно прав и ничего установить у вас не получится:
Привилегии администратора нужны не только для установки и удаления программ, но и для запуска системных приложений, внесения изменений, которые могут затронуть работоспособность системы и т.п. Попробуем добавить нового пользователя. Запускаем «Параметры системы», находим пункт «Учетные записи»:
Видите, вы не можете ничего изменить, поскольку поля добавления и удаления пользователей заблокированы. Однако в правом верхнем углу экрана находится кнопка «Разблокировать». Нажмите её, система снова спросит ваш пароль:
После ввода пароля, поле добавления пользователей стало активным:
Связки ключей
Есть ещё один интересный механизм, связанный с обеспечением безопасности. Дело в том, что для хранения различных пользовательских паролей в Ubuntu используются так называемые связки ключей (keyrings). Весь этот механизм служит одной цели — никто, кроме конкретного пользователя, не должен иметь доступа к пользовательским паролям. Связка ключей — это собственно зашифрованный контейнер для хранения паролей, для доступа к которому строго говоря тоже нужен пароль. Кстати, связки ключей не имеют ничего общего с административными правами. Они принадлежат конкретному пользователю и вообще не зависят от прав доступа к системным параметрам.
Вообще система связок ключей достаточно прозрачна и незаметна в использовании, однако иногда вы всё же можете на неё неожиданно наткнуться. Поэтому на всякий случай имейте ввиду: каждая связка ключей блокируется паролем, соответственно, только после его ввода можно разблокировать это связку и получить доступ к её содержимому. Однако среди всех связок ключей есть одна по умолчанию, которая разблокируется при входе в систему конкретного пользователя, соответственно, никаких дополнительных паролей вводить для доступа к ней не нужно. Обычно все приложения используют именно связку ключей по умолчанию (которая в Ubuntu называется login ), но иногда некоторые пытаются создать свою собственную. В этом случае вам сначала потребуется ввести пароль для новой связки, а потом нужно будет вводить его каждый раз, когда потребуется к ней доступ. Что не очень удобно. Поэтому если у вас какое-то приложение просит пароль для разблокирование связки ключей, то можете обратить внимание на дополнительные параметры в диалоге ввода пароля. Там будет галочка — разблокировать при входе в систему:
Если её установить, то больше вам не потребуется вводить пароль для доступа к этой связки ключей, она так же, как и связка по умолчанию, будет разблокироваться при логине пользователя.
Для управления паролями и связками ключей, а так же ключами шифрования, в Ubuntu существует специальная утилита Пароли и ключи шифрования, называется она seahorse
Однако ещё раз повторюсь — в большинстве случаев вам не потребуется явно управлять паролями, за вас всё сделает система. Но иногда всё же знание механизма связок ключей оказывается полезным.
Что ж, надеюсь вы немного разобрались с тем, как управлять вашей новой системой. Если же всё вышеописанное показалось вам китайской грамотой, то запомните одну простую вещь: в Ubuntu у каждого пользователя есть только один пароль, и когда у вас система запрашивает авторизацию, всегда вводите именно его 4) . Если у вас будут права на доступ к запрашиваемому функционалу, то вы получите к нему доступ, если не будет — то не получите, всё просто. Никаких дополнительных паролей для доступа к каким-либо функциям системы в Ubuntu нет. Если вы так и не поняли смысла вводить один и тот же пароль несколько раз, то перечитайте эту статью с начала. А теперь пора отдать должное истории развития Linux и рассказать про основы использования терминала:
Источник
Администрирование Linux
Операционная система Linux развивается уже больше двадцати пяти лет и за это время она набрала большую популярность среди системных администраторов и программистов. Из-за своей архитектуры Linux чаще всего применяется на серверах и других подобных платформах для размещения проектов. Как и любая другая операционная система, Linux нуждается в обслуживании, настройке и решении проблем.
В этой статье мы рассмотрим администрирование Linux для начинающих, что нужно знать начинающему администратору, у которого только появился свой сервер, например, VPS в интернете, что с ним делать, на что обратить внимание и как избежать проблем.
Администрирование Linux
Администрирование Linux — это очень обширная область и, естественно, что мы не сможем полностью охватить ее в этой статье. Но попытаемся охватить основные задачи, которые возникают перед администратором будь то сервера или домашнего компьютера. Вот основные задачи, которые мы рассмотрим:
- Удаленный доступ;
- Диагностика сети;
- Мониторинг ресурсов системы;
- Проверка работоспособности сервисов;
- Просмотр логов;
- Установка программного обеспечения.
Мы не будем рассматривать очень подробно каждую из тем, возможно, некоторые основы администрирования Linux были более детально рассмотрены в предыдущих записях, тогда на них будет ссылка. С первоначальной настройкой сервера обычно проблем не возникает. Можно использовать одну из известных панелей управления, например, панель управления VestaSP, которая позволяет все установить и настроить автоматически, но вам нужно следить за показателями системы и перенести на сервер файлы.
Удаленный доступ к серверу Linux
Чаще всего веб-мастера и администраторы используют для удаленного доступа и загрузки файлов на сервер протокол SSH и FTP. По SSH вы не только передавать файлы, но и выполнять на сервере различные команды Linux. Протокол FTP позволяет лишь загружать файлы на сервер, перемещать и переименовывать их. Если кратко, то, например, чтобы перенести файлы сайта с одного сервера на другой, сначала мы создаем архив с помощью tar:
tar cvzf backup.tar.gz /папка/с/файлами
Обратите внимание, что опцию p передавать не нужно, чтобы права на файлы не сохранились, затем, вам нужно будет установить права вручную. Когда архив готов, используем копирование scp для передачи его на сервер:
scp backup.tar.gz user@ip_сервера:/var/www/public_html/
Затем авторизуемся на сервере и распаковываем архив:
ssh user@ip_сервера
$ cd /var/www/public_html/
$ tar xvzf backup.tar.gz
После этого останется сменить владельца для распакованных данных на имя пользователя веб-сервера:
chown -R www-data /var/ww/public_html/project/
Большинство действий по администрированию сервера вам придется выполнять так что лучше понять как пользоваться ssh.
Диагностика сети Linux
Этот момент администрирования Linux серверов подходит больше для компьютеров, к которым у вас есть физический доступ, но может в некоторых случаях полезным и на сервере. Самый простой способ проверить есть ли доступ к сети на компьютере, это выполнить команду ping:
Если команда правильно отрабатывает, и вы видите передачу пакетов на удаленный узел, значит все хорошо. Если же нет, хотелось бы понять причину. Проверьте, указан ли ip адрес и маска сети для этого подключения:
Убедитесь, что правильно задан шлюз доступа к сети:
Обычно, это может подсказать вам, что конфигурация сети выполнена неверно, например, компьютер не получает нужные данные по протоколу DHCP или заданы неправильные статические настройки. Также проблема может быть в DNS. Возможно, сеть есть, но сервер не может получить ip адрес на основе доменного имени, для проверки вы можете выполнить ping какого-либо внешнего ip:
Если же сеть не работает, и она настроена правильно, то можно еще попытаться узнать на каком узле обрывается соединение. Для этого используется команда traceroute:
Все эти данные помогут понять в чем была ошибка и как ее решить.
Мониторинг ресурсов системы
Часто может случится, что сервер начинает работать очень медленно, веб-службы начинают очень долго отвечать на запросы и даже соединение по SSH работает медленно. Скорее всего, причиной этому может стать перегрузка ресурсов процессора или памяти. Если вся память будет занята, система будет сбрасывать данные на диск, в раздел подкачки, что тоже сильно замедляет работу сервера. Чтобы посмотреть сколько памяти осталось доступно используйте команду free:
Естественно, что если свободно только 40-50 Мб, то этого системе очень мало и все будет работать очень медленно. Следующим шагом будет выяснить какой процесс потребляет больше всего памяти, для этого можно использовать команду htop:
В утилите вы можете сортировать процессы по загрузке процессора, колонка %CPU% или по потреблению памяти %MEM%. Так вы можете очень просто понять в чем проблема и кто перегружает систему. Например, веб-сервер Apache потребляет слишком много памяти, поэтому, возможно, будет эффективнее использовать Nginx.
Также в некоторых случаях нас может интересовать загрузка диска Linux и какие именно процессы перегружают жесткий диск. Для этого применяется утилита iotop. Просто выполните утилиту без параметров:
Проверка работоспособности сервисов
В системное администрирование linux также входит управление сервисами. Сейчас в большинстве дистрибутивов, в качестве системы инициализации используется systemd. Соответственно, управление службами linux выполняется с помощью нее. Чтобы посмотреть запущена ли служба, например, веб-сервер nginx, выполните:
sudo systemctl status httpd
В многочисленном выводе утилиты вы должны увидеть сообщение Active (running), это означает, что все хорошо и служба работает так как нужно. Возможно, также вам придется перезапустить службу:
sudo systemctl restart httpd
Или запустить ее, если она не была запущена до этого:
sudo systemctl start httpd
Если служба не запустилась, то вы можете посмотреть информацию об этом с помощью команды status или же выполнить:
Просмотр логов
Если какой-либо сервис или системный компонент не работает, то первое что нужно сделать — это смотреть логи. Если не помогает — включить режим отладки и смотреть логи. В 90% вы найдете ответ почему ничего не работает в логах программы. Логи всех служб и системные логи находятся в папке /var/log/. Некоторые службы создают отдельные папки для своих файлов, например, /var/log/nginx или /var/log/apache.
Если в обычном логе вы не нашли решение, то можно переключить программу в режим отладки или включить отображение максимально подробной информации. Обычно это дается в конфигурационном файле программы. Приводить конкретные примеры нет смысла, поскольку у каждого сервиса все по-другому. Но рассмотрим несколько команд, которые вы можете использовать:
tail -f /путь/к/лог/файлу
С помощью этой команды вы можете в реальном времени просматривать изменения в конце лог файла. Если опцию -f не указывать, то команда tail покажет десять последних строк из лога:
Также для просмотра лог файла вы можете использовать любой текстовый редактор или утилиту cat.
Установка программного обеспечения
Установка программного обеспечения, одна из распространенных задач администрирования. В Linux большинство программ можно установить из официальных или сторонних репозиториев. Некоторые программы нужно собирать из исходников. Для установки софта из репозиториев используется пакетный менеджер. Существуют два основных пакетных менеджера, которые применяются на серверах, это yum, который используется в CentOS и apt, который применяется в Ubuntu. Работают пакетные менеджеры похожим образом и все их мы рассматривали в отдельных статьях, смотрите установка программ CentOS и установка программ Ubuntu. Например, чтобы установить пакет в Ubuntu используйте такую команду:
sudo apt install имя_пакета
А в CentOS/RedHat:
sudo yum install имя_пакета
Для удаления программы используется команда remove вместо install. Но что еще более важно для серверов обновление программ. Никогда не отключайте автоматическое обновление, и старайтесь следить, чтобы система была в самом актуальном состоянии. Нужно обновлять все программные продукты, поскольку в них постоянно обнаруживаются новые уязвимости и следует получить вовремя исправления для них.
Выводы
В этой статье мы рассмотрели в общих чертах администрирование Linux для начинающих, это очень обширная тема, поэтому сложно охватить ее в одной статье. Мы рассмотрели диагностику сети, установку пакетов, просмотр логов и другие основные действия. Если у вас остались вопросы, спрашивайте в комментариях!
Источник