sudo и su в Linux

Использование sudo и su в LInux

    Основные понятия

    При использовании su или sudo важно учитывать конкретный сценарий запуска новой оболочки: нужна ли нам среда целевого пользователя или нет? Если да, то нужно использовать параметры, запускающие оболочку с логином, а если нет — параметры, запускающие оболочку без логина.


    su - Измените идентификатор пользователя или станьте суперпользователем (root). С помощью этой команды можно запустить как оболочку с логином, так и без него
    su (от англ. Substitute User — «подменить пользователя») позволяет переключаться с текущего пользователя на другого внутри текущей терминальной сессии. Некоторые особенности:
    По умолчанию переключается на пользователя root, если имя пользователя не указано.
    Для использования su необходимо ввести соответствующий пароль (если только команду не вызывает пользователь root).
    Если введён правильный пароль, su создаёт новый процесс командного интерпретатора с такими же реальными и эффективными идентификаторами пользователя и группы, что и у указанного пользователя
    Важно: если запустить su без ключа (например, su или su localadmin), то все переменные, за исключением PATH, USER и некоторых других, будут унаследованы от пользователя, который запустил утилиту su.

    su -l (или --login) имитирует «полноценный» вход под оболочкой пользователя. Некоторые особенности:
    Загружает окружение целевого пользователя, включая его файлы инициализации (.bashrc, .profile), устанавливает PATH и меняет каталог на домашний каталог.
    Это рекомендуется для переключения пользователей, так как позволяет работать в окружении целевого пользователя так же, как при полноценном входе в систему.

    #Вход в оболочку под пользователем root
    su #запустят интерактивную оболочку для входа в систему под именем user2 su - mega su -l mega su --login mega #запустит интерактивную оболочку без входа в систему под именем user2 su user2 #запустят интерактивную оболочку для входа в систему под именем root su - root или su - #запустят интерактивную оболочку без входа в систему под именем root su root или su #Выполняйте команды от имени другого пользователя (в том числе суперпользователя)

    Команда в основном используется для временного получения прав суперпользователя, пользователь, использующий ее, должен быть указан в файле sudoers
    Точно так же, как su, sudo позволяет нам вызывать оболочки как для входа, так и без входа в систему:
    Чтобы добавить пользователей в sudoers , нужно стать root , а затем выполнить команду

    #запустят интерактивную оболочку для входа в систему под именем user2 sudo su - user2 sudo su -l user2 sudo su --login user2 #запустят интерактивную оболочку без входа в систему под именем user2 sudo su user2 sudo -u user2 -s #запустят интерактивную оболочку для входа в систему под именем root sudo su - root sudo su sudo -i #запустят интерактивную оболочку для входа в систему под именем root, выполнят команду и вернутся к исходному пользователю sudo -i #запустят интерактивную оболочку без входа в систему под именем root sudo su root sudo su #запустит оболочку без входа в систему под именем root sudo -s sudo -u root -s
    Источники
    Последнее изменение: 21.02.2026 14:59


    Связанные темы

    Команда exec linux

    Использование команды tee в Linux

    Язык shell в Linux

    Библиотеки Linux

    Использование md5sum

    Использование wget и curl в Linux

    Команда chattr и lsattr в Linux

    Использование awk Linux Alpine

    Использование sed в Linux

    Применение getopt в Linux

    Переменные окружения в Linux

    Блокировка пользователя в Linux

    Классы символов в Linux

    Использование tar в Linux

    Подстановка имен файлов

    Проверка на необходимость перезапуска после обновления пакетов

    Стандартные потоки и перенаправление ввода/вывода в Linux

    Функции в языке Shell

    Использование grep в Linux

    Архивирование и сжатие файлов в Linux

    Использование find Linux

    Права пользователей и групп

    Полезные команды и скрипты Linux

    Переменные в Linux

    Условная конструкция if в Linux

    Использование grep в Linux

    Использование xargs в Linux

    Фигурные скобки в bash

    Циклы в языке shell

    Использование оператора select в языке shell

    Внутренние и внешние команды linux

    Использование конструкции case в Linux

    Подстановка команд в Linux

    Мониторинг системы Linix с помощью getconf

    Использование ANCI последовательностей в Linux

    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ