Как можно осуществлять переключение между пользователями в рамках одного терминала

Обновлено: 02.07.2024

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

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

Смена текущего пользователя с помощью su

Согласно странице руководства su, команда su используется либо для того, чтобы стать другим пользователем во время сеанса входа в систему, либо для переключения на суперпользователя. Базовый синтаксис команды:

… где параметры – это различные флаги, которые вы можете использовать с командой, а имя пользователя – это имя целевой учетной записи.

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

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

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

Например, чтобы переключиться на пользователя с именем testuser :

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

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

Если вам нужно запустить только одну команду от имени другого пользователя, вам не нужно переключаться на этого пользователя. Вместо этого вы можете просто выполнить команду от имени другого пользователя, используя флаг -c .

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

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

Использование sudo для переключения между пользователями

Подобно команде su, вы также можете изменить текущего пользователя с помощью sudo. Синтаксис обеих команд более или менее одинаков, за исключением параметров.

Чтобы изменить текущий сеанс входа в систему для другого пользователя, используйте флаг -u :

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

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

Например, чтобы изменить текущую оболочку на zsh и одновременно переключиться на testuser :

Снова проверьте, были ли внесены изменения успешно, с помощью команды whoami или переменной среды USERNAME .

Изменение пользователей с помощью среды рабочего стола

Если использование командной строки вам не по душе, вы можете выбрать графический подход. На большинстве компьютеров с Linux установлена ​​среда рабочего стола, которая предоставляет графический интерфейс, необходимый для взаимодействия с ОС. GNOME и KDE – две наиболее широко используемые среды рабочего стола , поэтому в этом руководстве мы сосредоточимся только на них.

Чтобы переключаться между пользователями в среде рабочего стола GNOME:

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

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

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

Как и в других операционных системах, вы также можете переключаться между несколькими пользователями в Linux. Хотя другие ОС, такие как Windows и macOS, предоставляют графический интерфейс для выполнения таких действий, в Linux вы можете использовать командную строку для эффективного входа в другие учетные записи пользователей.

Очевидно, что глубокие знания командной строки Linux – мощное дополнение к арсеналу любого ИТ-профессионала. Практическое использование команд и предоставление специального учебного ресурса – лучший способ познакомиться с терминалом Linux.

Команды Linux

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

Базовые команды для работы с терминалом

То, что поможет при работе с консолью в целом.

Команда Linux для вывода документации в терминал

Команды для управления правами на файлы и директории

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

  • sudo — выдает права суперпользователя. Используется перед любой другой командой в терминале, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Ubuntu, введем: sudo apt-get update. При этом система запросит пароль администратора.
  • sudo su — переводит терминал в режим суперпользователя. В нем каждая введенная команда будет восприниматься системой так, будто перед ней ввели sudo. Помогает запускать несколько скриптов и утилит, требующих права администратора, без необходимости постоянно корректировать их или вводить пароль от учетной записи.
  • sudo gksudo — используется для запуска графических утилит от имени администратора. В Windows для этого есть специальная кнопка в контекстном меню, а в Linux — префикс. Синтаксис такой:
  • sudo !! — запускает предыдущую команду от имени администратора. Используется, если до этого была неудачная попытка запустить программу. Помогает не тратить время на повторный ввод большого количества символов.
  • chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором аргументов, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.
  • chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий:

Команды для управления пользователями

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

  • useradd — создает новую учетную запись. Например, мы хотим добавить пользователя с именем Timeweb. Для этого вводим: useradd Timeweb. Но свежесозданному аккаунту нужен не только логин, но и пароль. С помощью опций можно задать дополнительные характеристики новому пользователю.
  • passwd — задает пароль для учетной записи, работает вкупе с предыдущей командой. То есть сразу после создания аккаунта, пишем: passwd Timeweb (в вашем случае может быть любой другой пользователь). После этого система попросит придумать и указать пароль для новой учетной записи. По ходу набора пароля в терминале не будут отображаться даже звездочки, но он все равно учитывает каждую нажатую клавишу. Продолжайте набирать пароль вслепую.
  • userdel — удаляет выбранную учетную запись. Синтаксис простейший:

Установка, удаление и обновление пакетов

Для установки программ в Linux используются менеджеры пакетов. Они разнятся от дистрибутива к дистрибутиву, поэтому команды для управления ими тоже отличаются. Рассмотрим наиболее популярные.

Debian/Ubuntu

  • sudo apt-get install название пакета — устанавливает программу на выбор. Главное знать, как она называется.
  • sudo apt remove название пакета — стирает с жесткого диска имеющийся в системе пакет.
  • sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе, и тех, что хранятся в подключенных репозиториях.
  • sudo apt-upgrade — обновляет установленные пакеты до самых свежих версий, доступных в подключенных репозиториях.

Red Hat Linux/CentOS

  • sudo dnf install название пакета — устанавливает программу на выбор.
  • sudo dnf upgrade — обновляет установленные пакеты до самых свежих версий.
  • sudo dnf remove название пакета — стирает с жесткого диска имеющийся в системе пакет.

Команды для навигации и базовой работы с файлами

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

Команда Linux для загрузки файлов

Процесс работы команды Linux для загрузки файлов

Содержимое текстового файла

Вот, что написано в тестовом документе

Команда Linux для вывода текста в консоль

Что в терминал выводит cat

Команда Linux для фильтрации текста

И что выводит grep

  • diff — сокращение от слово difference. Показывает разницу между двумя текстовыми файлами. Для сравнения используется такой синтаксис: diff название первого файланазвание второго файла. К примеру, diff text-1.txt text-2.txt
  • mount — монтирует образ или раздел диска. Для использования нужно лишь указать путь к разделу или образу, который нужно смонтировать.
  • unmount — выполняет противоположную задачу.

Команды для отображения базовой информации и управления системой

Утилиты, делящиеся разного рода справочной информацией с администратором компьютера.

  • df — показывает, сколько пространства занято на подключенных дисках и разделах. По умолчанию отображает данные в килобайтах. Можно переключиться на мегабайт, добавив параметр -m. Это выглядит так: df -m.
  • du — расскажет, сколько места занимает конкретный файл или папка. Чтобы узнать, насколько тяжелая директория Desktop, введем: du ~/Desktop. du отображает информацию в блоках. Но это неудобно, поэтому обычно к ней добавляют опцию -h, чтобы появились привычные мегабайты, килобайты и байты.
  • free — тоже связана с памятью, только с оперативной. Показывает, сколько занято, а сколько свободно. Чтобы включить отображение в мегабайтах, надо так же добавить аргумент -h.
  • uname — вывод информации о системе и сервере. Аргумент -a показывает имя компьютера, версию ядра, текущую дату и время, разрядность системы и ее тип. Можно запрашивать отдельные фрагменты данных через дополнительные опции: -s — только имя ядра; -n — имя компьютера (ноды) в сети; -o — название операционной системы; -p — тип процессора; -s — версия ядра.
  • whoami — покажет, кто вы есть. Имя учетной записи, через которую вы зашли в систему или подключились к серверу.
  • date — из названия ясно, что команда отображает текущее время и дату.
  • sleep — задерживает запуск скриптов на выбранный период времени. Единица времени указывается через опции: -s — секунды; -m — минуты; -h — часы; d — дни.

На этом все. Это список команд, которыми я хотел бы поделиться с новичками. Я разобрал основное, что будет важно в самом начале работы. Ну а вы всегда можете воспользоваться документацией, открывающейся через man, и подробнее ознакомиться с любой из команд или утилит.

Операционная система Ubuntu рассчитана на то, чтобы её использовали от имени одного определенного пользователя. Менять пользователя в процессе работы приходится не так уж часто. Обычно вы вводите логин и пароль при входе в систему, а затем пользуетесь ею пока не придёт пора выключать компьютер.

Если надо выполнить какие-либо действия с административными привилегиями, то для этого есть sudo. Однако иногда надо сменить пользователя Ubuntu. В этой статье мы поговорим о том как сделать это в графическом интерфейсе и в терминале.

Как сменить пользователя в Ubuntu

Сначала кликните по значку выключения в правом верхнем углу экрана и выберите там пункт Завершить сеанс или Сменить пользователя:

switchuser

Затем подтвердите завершение сеанса или смену:

switchuser1

Далее перед вами откроется обычное окно входа, где вы сможете выбрать пользователя из списка или ввести его логин в поле ввода. Затем вы снова окажетесь на рабочем столе Ubuntu.

Теперь давайте поговорим как выполняется смена пользователя в терминале. Для этого надо использовать команду su. Например, чтобы сменить пользователя на losst достаточно выполнить:

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

Snimok ekrana ot 2020 09 04 21 29 41

Если вы хотите, чтобы путь к домашней папке и все другие переменные окружения для пользователя обновились используйте опцию -l или —login. Вместо неё также можно просто добавить чёрточку «-«. Например:

Snimok ekrana ot 2020 09 04 21 26 29

Если выполнить утилиту без параметров, то вы войдете от имени пользователя root. Но поскольку пароль root не задан по умолчанию, то следует добавить перед ней sudo:

Snimok ekrana ot 2020 09 04 21 26 29

В таком случае иногда целесообразнее использовать опцию -i команды sudo:

В этой статье мы рассмотрели как поменять пользователя в Ubuntu, как видите, здесь всё очень просто. Если остались вопросы, спрашивайте в комментариях!

Как переключаться между пользователями на одном терминале?

Я бы хотел войти в систему как другой пользователь, не выходя из текущего (на том же терминале). Как это сделать?

Если вы хотите войти в систему под именем root, нет необходимости указывать имя пользователя:

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

Если вы используете Ubuntu, и если пользователь, которого вы хотите войти в систему, не имеет набора пароля:

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

Это приведет к техническому вхождению нового пользователя в новый процесс term и закрытию текущего. Таким образом, когда пользователь попытается выйти или Ctrl-D, терминал закроется, как если бы этот пользователь был тем, кто его создал, т. Е. Пользователь не может выйти обратно в исходный пользовательский термин. Какой-то бессмысленный, учитывая, что они все еще могут начать новый сеанс терминала и автоматически войти в исходный логин пользователя, но там он.

EDIT: Для чего это стоит, вы можете использовать команду linux vlock в вашем

/.bashrc для блокировки сеансов терминала по умолчанию, требуя разблокировать пароль пользователя сеанса сеанса. Это несколько предотвратило бы перезапуск вышеупомянутого термина в исходном контексте пользователя, поскольку этот термин не создается с использованием нестандартного

/.bashrc пользователя, как это было настроено.

Команда Su в Linux (Смена пользователя)

Su Command in Linux (Switch User)

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

Как использовать su команду

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

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

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

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

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

Sudo против Su

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

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

Преимущество использования sudo перед su заключается в том, что пароль root не должен использоваться несколькими учетными записями администраторов.

Также sudo вы можете разрешить пользователям запускать только определенные программы с привилегиями root.

Вывод

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

Как быстро переключаться между пользователями на одном терминале?

default

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

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

Стефан Хазелас писал:

Большое спасибо, похоже, это работает как шарм. После того, как я вошел в систему как другой пользователь, suspend отправляет оболочку в фоновый режим и возвращает управление оболочке предыдущего пользователя. Тогда я могу использовать fg как и с любой другой работой, чтобы возобновить.

Насколько я пробовал, он даже работает с более чем двумя пользователями и в ssh (который приостанавливается с

^z потому что это оболочка входа в систему). В конце концов, нет необходимости использовать терминальный мультиплексор, такой как экран.

Создайте новый экран с именем foo

Создать еще один экран

Переключаться между ними

или нажмите номер снаряда, чтобы перейти к нему

Вы можете просмотреть название / номер всех сеансов открытого экрана следующим образом:

Это будут 3 отдельные оболочки, но все они будут внутри одного терминала.

Как переключаться между пользователями на одном терминале?

Я бы хотел войти в систему как другой пользователь, не выходя из текущего (на том же терминале). Как мне это сделать?

Если вы хотите войти в систему под именем root, нет необходимости указывать имя пользователя:

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

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

Это будет технически водить нового пользователя в новом терминальном процессе и закрыть текущий. Таким образом, когда пользователь попытается выйти или Ctrl-D, терминал закроется, как если бы этот пользователь был тем, кто его создал, т. Е. Пользователь не может выйти обратно в исходный пользовательский термин. Вид бессмыслен, учитывая, что они все еще могут начать новый сеанс терминала и автоматически войти в исходный логин пользователя, но он есть.

EDIT: для чего это стоит, вы можете использовать команду linux vlock в вашем

Если вы используете Ubuntu, и если пользователь, к которому вы хотите войти, не имеет набора паролей:

Предполагается, что вы знаете пароль для UserB. Однако, если вы не знаете пароль UserB, вам необходимо знать пароль root. Затем:

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

Это даст вам новую оболочку для UserB (проверьте это, набрав id). Когда закончите, вы можете сделать ctrl-d и вернуться к своему логину.

Еще один маршрут – запустить новую оболочку в качестве другого (не root) пользователя для запуска команд в качестве этого пользователя.

Команды Linux

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

Базовые команды для работы с терминалом

То, что поможет при работе с консолью в целом.

Команда Linux для вывода документации в терминал

Команды для управления правами на файлы и директории

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

  • sudo — выдает права суперпользователя. Используется перед любой другой командой в терминале, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Ubuntu, введем: sudo apt-get update. При этом система запросит пароль администратора.
  • sudo su — переводит терминал в режим суперпользователя. В нем каждая введенная команда будет восприниматься системой так, будто перед ней ввели sudo. Помогает запускать несколько скриптов и утилит, требующих права администратора, без необходимости постоянно корректировать их или вводить пароль от учетной записи.
  • sudo gksudo — используется для запуска графических утилит от имени администратора. В Windows для этого есть специальная кнопка в контекстном меню, а в Linux — префикс. Синтаксис такой:
  • sudo !! — запускает предыдущую команду от имени администратора. Используется, если до этого была неудачная попытка запустить программу. Помогает не тратить время на повторный ввод большого количества символов.
  • chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором аргументов, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.
  • chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий:

Команды для управления пользователями

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

  • useradd — создает новую учетную запись. Например, мы хотим добавить пользователя с именем Timeweb. Для этого вводим: useradd Timeweb. Но свежесозданному аккаунту нужен не только логин, но и пароль. С помощью опций можно задать дополнительные характеристики новому пользователю.
  • passwd — задает пароль для учетной записи, работает вкупе с предыдущей командой. То есть сразу после создания аккаунта, пишем: passwd Timeweb (в вашем случае может быть любой другой пользователь). После этого система попросит придумать и указать пароль для новой учетной записи. По ходу набора пароля в терминале не будут отображаться даже звездочки, но он все равно учитывает каждую нажатую клавишу. Продолжайте набирать пароль вслепую.
  • userdel — удаляет выбранную учетную запись. Синтаксис простейший:

Установка, удаление и обновление пакетов

Для установки программ в Linux используются менеджеры пакетов. Они разнятся от дистрибутива к дистрибутиву, поэтому команды для управления ими тоже отличаются. Рассмотрим наиболее популярные.

Debian/Ubuntu

  • sudo apt-get install название пакета — устанавливает программу на выбор. Главное знать, как она называется.
  • sudo apt remove название пакета — стирает с жесткого диска имеющийся в системе пакет.
  • sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе, и тех, что хранятся в подключенных репозиториях.
  • sudo apt-upgrade — обновляет установленные пакеты до самых свежих версий, доступных в подключенных репозиториях.

Red Hat Linux/CentOS

  • sudo dnf install название пакета — устанавливает программу на выбор.
  • sudo dnf upgrade — обновляет установленные пакеты до самых свежих версий.
  • sudo dnf remove название пакета — стирает с жесткого диска имеющийся в системе пакет.

Команды для навигации и базовой работы с файлами

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

Команда Linux для загрузки файлов

Процесс работы команды Linux для загрузки файлов

Содержимое текстового файла

Вот, что написано в тестовом документе

Команда Linux для вывода текста в консоль

Что в терминал выводит cat

Команда Linux для фильтрации текста

И что выводит grep

  • diff — сокращение от слово difference. Показывает разницу между двумя текстовыми файлами. Для сравнения используется такой синтаксис: diff название первого файланазвание второго файла. К примеру, diff text-1.txt text-2.txt
  • mount — монтирует образ или раздел диска. Для использования нужно лишь указать путь к разделу или образу, который нужно смонтировать.
  • unmount — выполняет противоположную задачу.

Команды для отображения базовой информации и управления системой

Утилиты, делящиеся разного рода справочной информацией с администратором компьютера.

  • df — показывает, сколько пространства занято на подключенных дисках и разделах. По умолчанию отображает данные в килобайтах. Можно переключиться на мегабайт, добавив параметр -m. Это выглядит так: df -m.
  • du — расскажет, сколько места занимает конкретный файл или папка. Чтобы узнать, насколько тяжелая директория Desktop, введем: du ~/Desktop. du отображает информацию в блоках. Но это неудобно, поэтому обычно к ней добавляют опцию -h, чтобы появились привычные мегабайты, килобайты и байты.
  • free — тоже связана с памятью, только с оперативной. Показывает, сколько занято, а сколько свободно. Чтобы включить отображение в мегабайтах, надо так же добавить аргумент -h.
  • uname — вывод информации о системе и сервере. Аргумент -a показывает имя компьютера, версию ядра, текущую дату и время, разрядность системы и ее тип. Можно запрашивать отдельные фрагменты данных через дополнительные опции: -s — только имя ядра; -n — имя компьютера (ноды) в сети; -o — название операционной системы; -p — тип процессора; -s — версия ядра.
  • whoami — покажет, кто вы есть. Имя учетной записи, через которую вы зашли в систему или подключились к серверу.
  • date — из названия ясно, что команда отображает текущее время и дату.
  • sleep — задерживает запуск скриптов на выбранный период времени. Единица времени указывается через опции: -s — секунды; -m — минуты; -h — часы; d — дни.

На этом все. Это список команд, которыми я хотел бы поделиться с новичками. Я разобрал основное, что будет важно в самом начале работы. Ну а вы всегда можете воспользоваться документацией, открывающейся через man, и подробнее ознакомиться с любой из команд или утилит.

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