Права суперпользователя root в Linux: полный обзор

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

Введение

Linux[email protected]:~$имя пользователясимвол @ имя системыПРИМЕЧАНИЕ:

Ады Лавлейс/home/matthewEnter

Список

  1. pwd

    pwd расшифровывается как «Print Working Directory» («вывести текущий каталог»). Эта команда возвращает ваше местоположение в файловой системе, например, /usr/share или /home/matthew. Это может оказаться полезно при склерозе, если вы забудете, где находитесь.

  2. ls

    При использовании в отдельности, команда ls выводит список всех файлов и подкаталогов в текущем каталоге. Можно также использовать ls для вывода списка всего содержимого любого каталога, не переходя к нему, за счет добавления к команде адреса этого каталога, например: ls etc/python.

  3. cd

    Эта команда приводит к смене текущего каталога на заданный. Например, команда cd /var/log перенесет вас в подкаталог log, находящийся в каталоге var.

  4. touch

    Команда touch создает пустой файл с заданным именем. Создайте файл прямо сейчас и воспользуйтесь командой cd, чтобы убедиться, что он был создан в текущем каталоге: touch examplefile.

  5. rm

    Команда rm удаляет файл. Для удаления созданного вами выше файла, введите: rm examplefile.

  6. mkdir

    Команда mkdir создает каталог. Создайте каталог прямо сейчас и воспользуйтесь командой cd, чтобы убедиться, что он был создан в текущем каталоге: mkdir exampledirectory.

  7. rmdir

    Команда rmdir удаляет каталог. Для удаления созданного вами выше каталога, введите: rm exampledirectory.

  8. mv

    Команда mv перемещает заданный файл или каталог в указанное место. Её можно также использовать для переименования файлов и каталогов. При желании, можно сделать и то, и другое одной командой. Например, давайте переместим файл с именем sample из текущего каталога в существующий подкаталог stuff с одновременным изменением имени этого файла на example: mv sample stuff/example.

  9. cp

    Команда cp копирует заданный файл или каталог в указанное вами место, возможно, с заданным вами новым именем файла/каталога. Воспользуемся тем же примером: cp sample stuff/example. Различие между mv и cp в том, что во втором случае исходный файл остается на своём месте.

  10. man

    Команда man отображает страницу справочника для заданной команды. Каждая из описанных выше команд способна на гораздо большее, чем мы уже узнали. На деле, это была лишь верхушка айсберга. У большинства команд есть опции, называемые параметрами, предназначенные для изменения их поведения по умолчанию. Например, если вы введете man ls и прочитаете страницу справочника для этой команды, то узнаете о существовании чрезвычайно удобных опций, таких как ls -al, которая позволяет вывести список не только с именами файлов и каталогов, но и очень полезными метаданными каждого файла и каталога.

Изменение настроек учетной записи пользователя

С помощью команды chfn можно внести или изменить информацию учетной записи пользователя (ФИО, рабочий телефон, рабочие координаты и т.д, username — имя пользователя):

chfn -f полное_имя -о office -p рабочий_телефон -h домашний_телефон -u -v username

Для задания пароля используется команда passwd:

passwd username

В результате выполнения команды нам будет предложено ввести новый пароль и повторить его.

Если мы хотим дать пользователю возможность сменить пароль при первом входе в систему, следует ввести команду:

change -d 0 username

Управление группами

Создание группы

Программа groupadd создаёт новую группу согласно указанным значениям командной строки и системным значениям по умолчанию. Пример использования:

Ключ Описание
-g Установить собственный GID.
-p Пароль группы.
-r Создать системную группу.

Изменение группы

Сменить название группы, ее GID или пароль можно при помощи groupmod . Пример:

Ключ Описание
-g Установить другой GID.
-n Новое имя группы.
-p Изменить пароль группы.

Удаление группы

Удаление группы происходит так:

groupdel не имеет никаких дополнительных параметров.

Переключение на суперпользователя

Еще раз уточню, что команда sudo идеально подходит для получения необходимых привилегий без переключения учетной записи. Ее можно использовать как для выполнения одного действия, так и нескольких. Если вы желаете временно получить рут-права через эту команду, введите sudo -s или sudo -i. В первом случае домашний каталог остается текущим, а во втором меняется на /root.

Примерно так же работает и команда su, но она обладает дополнительными аргументами, которые следует уточнить:

  • -c – позволяет выполнить команду;
  • -g – устанавливает группу для пользователя;
  • -G – дополнительные группы для юзера;
  • , -l, —login – один из режимов входа, при котором происходит переключение домашнего каталога;
  • -p – сохранение переменных окружения;
  • -s – выбор оболочки для выхода.

Есть вариант выполнить вход в оболочку под суперпользователем, но он имеет свои неудобства. Он заключается в переключении в доступную виртуальную консоль, что осуществляется комбинацией Ctrl + Alt + F1-F6. Там понадобится ввести логин и пароль root для получения доступа. Главный недостаток этого метода потеря возможности взаимодействия с графическим интерфейсом операционной системы.

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

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

Удаление пользователей

Удалить пользователя проще всего в настройках через раздел «Пользователи». Для этого мы должны входить в группу администраторов и обладать правами root.

Удаление пользователей

Тут всё очень просто: выбираем юзера, жмем разблокировать, вводим свой пароль, жмем кнопку «Удалить пользователя».

Удаление пользователей

И выбираем, оставлять на диске его файлы (домашнюю папку) или нет.

Удаление пользователей

Чтобы удалить пользователя из терминала, используем команду deluser имя-юзера. Выполненная без параметров, команда удаляет только запись о пользователе, но не его файлы, поэтому приходится использовать ключи, ознакомиться с которыми вы опять же можете сами, выполнив deluser —help.

Удаление пользователей

Например, чтобы вместе с пользователем удалить его домашний каталог, нужно добавить ключ —remove-home, вот так:

Удаление пользователей

deluser —remove-home ludos

Удаление пользователей

Шаблон, в котором хранятся настройки удаления пользователя командой deluser без использования аргументов, представлен файлом /etc/.

Удаление пользователей

Давайте его откроем в редакторе nano и кое-чего подправим, сделав так, чтобы выполненная без аргументов команда deluser удаляла юзера вместе с его домашним каталогом.

Удаление пользователей

Открываем и видим, что REMOVE_HOME имеет значение ,

что означает не удалять папку профиля. Заменяем на 1, сохраняем конфиг-файл,

удаляем юзера deluser без параметров и видим, что папка тоже удалена!

Как смонтировать общую папку Windows/Samba в Linux

Сетевая папка Windows может быть доступна в файловых менеджерах Linux как любая другая локальная папка. Для этого её нужно смонтировать. После монтирования не придётся использовать консоль для просмотра списка файлов и скачивания или закачивания файлов.

Начните с установки пакета cifs-utils.

В Debian, Linux Mint, Ubuntu, Kali Linux и производных выполните:

В Arch Linux, BlackArch и производных выполните:

Предыдущие команды smbtree и smbclient понимали имена компьютеров Windows, такие имена как HACKWARE-MIAL. Монтирование выполняется с помощью команды mount, которая такие имена не умеет обрабатывать без помощи преобразования имён DNS. Поэтому при монтировании можно либо:

  1. Использовать вместо имён компьютеров IP адрес. В этом случае у компьютера с сетевой папкой должен быть постоянный (статичный) IP адрес
  2. Либо настроить преобразование имён для компьютеров Windows. Это можно сделать, например, с помощью файла /etc/hosts. Кстати, в этом случае у компьютера с общей папкой также должен быть постоянный IP адрес (смотрите Как настроить локальный DNS используя файл /etc/hosts в Linux)

В общем, в любом случае настройте в роутере или в самой Windows постоянный локальный IP.

Если вы хотите настроить преобразование имён с помощью файла /etc/hosts, то откройте его:

И добавьте туда запись вида

Как смонтировать общую папку Windows/Samba в Linux

Например, у меня IP_АДРЕС это , а именем компьютера является HACKWARE-MIAL, тогда я добавляю следующую запись:

Пингуем по имени компьютера Windows, чтобы убедиться, что всё сработало:

Теперь нам нужно создать точку монтирования — папку, где появятся файлы из шары. Я создаю папку /mnt/share:

Теперь для монтирования сетевой шары Windows нужно запустить команду вида:

В этой команде вы должны вставить свои значения для

  • //ИМЯ-КОМПЬЮТЕРА/Папка
  • /точка/монтирования

Значение других элементов команды:

  • sudo — монтировать шару можно и без прав суперпользователя, но использовать опцию -o, после которой указываются опции для монтирования, можно только с правами root
  • -t cifs выбор файловой системы для монтирования
  • -o означает, что после этой опции будут перечислены опции для монтирования:
  • username=guest,password= — произвольное имя пользователя без пароля — используется для подключение к общей папки, для которой не требуется вход. Вместо этой конструкции можно указать просто guest, но в этом случае на некоторых системах всё равно запрашивается пароль. По моим наблюдениям, пароль запрашивается когда имя текущего пользователя на Linux совпадает с именем пользователя на Windows
  • uid=1000 — в качестве владельцев всех файлов в шаре будет указан текущий пользователь Linux
  • iocharset=utf8 — эта кодировка позволяет работать с именами файлов, в которых используются не только латинские буквы

К примеру, путь до сетевой шары у меня //HACKWARE-MIAL/Share, её я хочу смотрировать в папку /mnt/share, тогда команда будет следующей:

Вид сетевой папки Windows в Double Commander:

Вид сетевой папки в стандартном проводнике Linux:

Для размонтирования нужно запустить следующую команду (укажите либо точку монтирования, либо ресурсы, который был смонтирован):

Напомню, что в предыдущей части я не только настроил папку для входа без пароля, но на том же самом компьютере и настроил вторую папку с именем ShareRestricted. У этой папки владелец ShareOverlord, а пароль для входа 1234. Для подключения папки, доступ к которой возможен только по паролю, используется та же самая команда, но нужно указать реальные учётные данные:

Чуть дальше очень похожий набор опций, в том числе пароль в открытом виде, мы будем использовать в файле /etc/fstab для настройки автоматического монтирования сетевой папки. Файл /etc/fstab доступен для чтения всем а, следовательно, также доступен всем ваш пароль от Windows в нём. Чтобы обойти эту проблему, можно использовать файл с учётными данными. Это файл содержит только имя пользователя и пароль.

Используя текстовый редактор, создайте файл с учётными данными для входа на ваш удалённый сервер:

В этот файл введите имя пользователя и пароль от Windows:

В моём примере это:

Как смонтировать общую папку Windows/Samba в Linux

Сохраните файл и закройте редактор.

Измените права доступа к этому файлу, чтобы предотвратить нежелательный доступ к вашим учётным данным:

Посмотрите абсолютный путь до этого файла:

В моём случае абсолютный путь:

Теперь вместо двух опций:

нужно использовать одну опцию, в качестве значения которой нужно указать абсолютный путь до файла с логином и паролем:

Моя команда стала выглядеть так:

Читайте также:  Что такое stdin, stdout и stderr в Linux?