Выполнить команду Linux от имени другого пользователя

Обновлено: 21.11.2024

В этом уроке рассказывается, как переключаться на другие учетные записи с помощью команды sudo.

Судо — суперпользователь

Еще один способ переключать пользователей или выполнять команды от имени других — использовать команду sudo. Синтаксис sudo:

Судо позволяет запускать программы с правами безопасности другого пользователя. Как и su , если имя пользователя не указано, предполагается, что вы пытались запускать команды от имени суперпользователя. Вот почему sudo называется суперпользователем.

Он обычно используется для установки, запуска и остановки приложений, требующих привилегий root. Одним из преимуществ использования sudo по сравнению с командой su является то, что вам не нужно знать пароль другого пользователя. Это может устранить некоторые проблемы, возникающие при использовании общих паролей в общих учетных записях. Когда вы выполняете команду sudo, вам будет предложено ввести пароль. Если конфигурация sudo разрешает доступ, эта команда выполняется.

Конфигурация sudo обычно контролируется системным администратором, и для ее изменения требуется root-доступ. Конечно, в вашей личной системе у вас есть доступ к учетной записи root, и вы также фактически являетесь системным администратором.

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

Чтобы просмотреть команды, доступные для запуска с помощью sudo, используйте sudo -l . Чтобы запустить команду от имени пользователя root, используйте sudo command . Вы можете указать пользователя с помощью -u , например, sudo -u root command совпадает с sudo command . Однако, если вы хотите запустить команду от имени другого пользователя, вам нужно указать это с помощью -u . Так, например, sudo -u nikki команда .

Команды Значение
sudo -l Список доступных команд.
sudo command Выполнить command< /i> от имени пользователя root.
sudo -u root command Выполнить команду от имени пользователя root .
sudo -u user command Выполнить command от имени пользователя.

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

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

Команды Значение
sudo su Переключиться на учетную запись суперпользователя.
sudo su — Переключиться на учетную запись суперпользователя в среде root.
sudo su - имя пользователя Переключиться на учетную запись пользователя со средой имени пользователя.
Команды Значение
sudo -s Запустить оболочку от имени пользователя root
sudo -u root -s То же, что и выше.
sudo -u user -s Запустить оболочку от имени пользователя.

Примеры

Вы можете запустить следующее, чтобы увидеть, какую команду можно запустить с помощью sudo :

В этом случае пользователь robin может выполнять любую команду.

Пример 2. Запустите команду с помощью sudo

Выполнить команду с помощью sudo

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

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

Пример 4. Переход на учетную запись root

Чтобы изменить учетную запись root:

Изменение конфигурации sudo

Если вам нужно изменить конфигурацию sudo, используйте команду visudo. Он эффективно запускает редактор vi и редактирует файл /etc/sudoers. Команда visudo должна выполняться с утвержденными привилегиями. Это означает, что вам нужно переключиться на учетную запись root, например: su root visudo или запустить sudo visudo под своей учетной записью.

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

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

Вот 2 примера:

Команда su

Еще один способ переключения пользователя — использование команды su. Подробная информация о su содержится в команде su.

Рахул, 21 декабря 2020 г., 3 минуты чтения

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

Пользователи Linux используют оболочку для взаимодействия с операционными системами. В которой Bash (Born Shell) является наиболее используемой оболочкой и доступна по умолчанию в большинстве систем. В настоящее время Zsh (Z Shell) также набирает популярность среди пользователей благодаря своим функциям.

В этом руководстве вы узнаете, как запускать команду от имени другого пользователя в системах Linux/Unix.

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

Команда

su (сменить пользователя) используется для запуска оболочки от имени другого пользователя. Эта команда переключается на нового пользователя и загружает его среду.

Основная команда su выглядит следующим образом:

Вышеупомянутая команда, которую вы отправляете другому пользователю, где вы можете запускать команды с этим пользователем. Но наша цель — запустить команду Linux от имени другого пользователя, не переключаясь на него. Для этого проверьте приведенный ниже пример.

В настоящее время я вошел в систему как пользователь root. Вы можете передать свою команду с параметром -c. Теперь в приведенном ниже примере будет выполняться команда «ls» от имени пользователя rahul без переключения на пользователя.

Вы также можете запускать несколько команд от имени другого пользователя в Linux, например:

В приведенной выше команде сначала печатается текущий рабочий каталог с pwd, затем создается и переключается на новый каталог с именем «hello». Снова печатает текущий рабочий каталог. Все команды разделяются точкой с запятой (;), как и обычно.

Выполнить команду от имени другого пользователя с помощью Sudo

Обычно это используется для запуска команды от имени пользователя root, но вы также можете использовать его с другими пользователями. Здесь вам не нужно использовать какие-либо переключатели командной строки. Введите имя пользователя, для которого вы хотите выполнить команду. После этого укажите команду для запуска от имени определенного пользователя.

Синтаксис:

Например, вы пишете сценарий оболочки, который требуется запустить от имени пользователя без полномочий root. Но вам нужно перезапустить службу apache2. В этом случае вы можете использовать sudo для запуска команды от имени пользователя root. Нравится:

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

Вы также можете использовать runuser для запуска команд от имени другого пользователя в системах Linux. Это менее известные команды пользователям Linux. Используйте команду runuser для выполнения команд с эффективным идентификатором пользователя и идентификатором группы определенного пользователя.

Синтаксис:

Пример. Например, запустите команду от имени пользователя «rahul» и создайте каталог в его домашнем каталоге.

Затем список файлов в домашнем каталоге пользователя «rahul».

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

Заключение

В этом руководстве вы научились запускать команды от имени другого пользователя в системе Linux. Вы научились запускать команды от имени другого пользователя с помощью команд Linux su, sudo и runuser.

Иногда вам может потребоваться запустить сценарий оболочки от имени другого пользователя, отличного от активного пользователя оболочки. Это довольно легко и может быть сделано в несколько простых шагов Итак, как вы это делаете? Давайте узнаем.

Предпосылки

Перед началом работы убедитесь, что у вас есть доступ к оболочке системы Linux; любой дистрибутив Linux подойдет. В этом руководстве мы используем Ubuntu 18.04.

Не менее важно убедиться, что у вас есть сценарий оболочки с разрешениями на выполнение. У нас есть простой сценарий оболочки welcome.sh, который запрашивает имя пользователя и выводит его на терминал. Вот краткий обзор.

Как запустить сценарий оболочки от имени другого пользователя

Обычно запустить сценарий оболочки от имени вошедшего в систему пользователя довольно просто. Просто вызовите сценарий оболочки следующим образом:

Но как запустить скрипт от имени другого пользователя, кроме себя? Для этого просто используйте показанный синтаксис, где otheruser — это другой пользователь, для которого вы хотите запустить скрипт.

Предположим, мы хотим запустить скрипт от имени пользователя linuxways. Выполняемая команда будет следующей:

Чтобы подтвердить, что другой пользователь выполнил сценарий, мы запустим команду, как показано.

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

Переменные $USER и $UID выводят имя пользователя и UID пользователя, запускающего скрипт. Если вы сомневаетесь или хотите это проверить, вы можете просмотреть файл /etc/passwd и выполнить поиск сведений о пользователе следующим образом.

Вот сводка вывода обеих команд. Обратите внимание, что имя пользователя и UID запуска сценария оболочки совпадают с данными в файле /etc/passwd.

Заключение

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

Об авторе

Карим Буздар

Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Он ведет блог на LinuxWays.

В Linux команда su (переключение пользователя) используется для запуска команды от имени другого пользователя.

В этом руководстве вы узнаете, как использовать команду su, с практическими примерами.

  • Система под управлением Linux
  • Доступ к окну/командной строке терминала (Ctrl-Alt-T, Ctrl-Alt-F2)

Как работает команда su

Команда su используется для запуска функции от имени другого пользователя. Это самый простой способ переключиться или изменить учетную запись администратора в текущем сеансе входа в систему.

Некоторые версии Linux, например Ubuntu, по умолчанию отключают учетную запись пользователя root, что делает систему более безопасной. Но это также ограничивает пользователя от выполнения определенных команд.

Временное использование su в качестве пользователя root позволяет обойти это ограничение и выполнять разные задачи с разными пользователями.

Примечание. Учетная запись root — это учетная запись главного администратора с полным доступом и разрешениями в системе. Из-за серьезности изменений, которые может внести эта учетная запись, и из-за риска ее компрометации в большинстве версий Linux для обычного использования используются ограниченные учетные записи пользователей.

Синтаксис команды su

Чтобы использовать команду su, введите ее в командную строку следующим образом:

Если указано имя пользователя, su по умолчанию является суперпользователем (root). Просто найдите нужного пользователя и добавьте его в синтаксис команды su.

Параметры команды su

Чтобы отобразить список команд, введите следующее:

Вот некоторые общие параметры, которые можно использовать с командой su:

  • Имя пользователя. Замените имя пользователя на фактическое имя пользователя, под которым вы хотите войти. Это может быть любой пользователь, а не только root.
  • –c или –command [команда] — запускает определенную команду от имени указанного пользователя.
  • – или –l или –login [имя пользователя] – запускает сценарий входа для изменения имени пользователя. Вам потребуется ввести пароль для этого пользователя.
  • –s или –shell [оболочка] — позволяет указать другую оболочку для запуска.
  • –h или –help — показать файл справки для команды su.
  • –p или ––preserve–environment – ​​сохранить среду оболочки (HOME, SHELL, USER, LOGNAME).

Примеры команд su

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

Чтобы переключить вошедшего в систему пользователя в этом окне терминала, введите следующее:

Вас попросят ввести пароль. Введите его, и логин изменится на этого пользователя.

Если вы не укажете имя пользователя, по умолчанию будет использоваться учетная запись root. Теперь вошедший в систему пользователь может выполнять все системные команды. Это также изменит домашний каталог и путь к исполняемым файлам.

Используйте команду whoami, чтобы убедиться, что вы переключились на другого пользователя.

Примечание. Если у вас возникли проблемы с аутентификацией, вы можете изменить пароль root или sudo, выполнив несколько простых действий.

Выполнить определенную команду от имени другого пользователя

Чтобы выполнить определенную команду от имени другого пользователя, используйте параметр –c:

Система ответит запросом на ввод пароля пользователя.

При вводе этого примера система будет использовать указанную учетную запись для запуска команды ls (перечислить содержимое каталога).

Использовать другую оболочку

Чтобы использовать другую оболочку или операционную среду, введите следующее:

Эта команда открывает учетную запись пользователя root в оболочке Z.

Использовать другого пользователя в той же среде

Вы можете сохранить среду текущей учетной записи пользователя с помощью параметра –p:

Замените [other_user] фактическим именем пользователя, на которое вы хотите переключиться.

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

Чтобы убедиться, что вы остались в той же домашней среде, используйте команду echo $HOME, которая отобразит каталог, в котором вы работаете.

Сравнение команд: su и sudo

команда sudo

Команда sudo предоставляет однократный или ограниченный по времени доступ к корневым функциям. Как правило, команда sudo используется для быстрого запуска административной команды, а затем возврата к обычным разрешениям учетной записи пользователя.

Чтобы предоставить доступ к sudo, пользователь должен быть добавлен в группу sudo.

Примечание. По умолчанию в некоторых версиях Linux (например, Ubuntu) учетная запись root отключена. Это означает, что пользователю root не назначен пароль. Однако вы можете переключиться на root, выполнив следующую команду и введя пароль текущего пользователя, вошедшего в систему:

команда su

Команда su позволяет переключить текущего пользователя на любого другого пользователя. Если вам нужно запустить команду от имени другого пользователя (не root), используйте параметр –l [имя пользователя], чтобы указать учетную запись пользователя. Кроме того, su также можно использовать для переключения на другой интерпретатор оболочки на лету.

su — более старая, но более полнофункциональная команда. Он может дублировать функциональность sudo, используя параметр –c для передачи одной команды в оболочку.

Теперь вы знаете, как использовать команду su для временной смены пользователей и выполнения команд в Linux. Для начала используйте предоставленные примеры.

Читайте также: