Linux сменить пользователя в консоли
Команда su в Linux
В процессе работы у пользователя часто возникает задача выполнить команду с иными привилегиями. Например, когда он желает установить новую программу, обновить систему, настроить сетевой экран и др. В этом случае ему приходит на помощь команда su в Linux.
Данная команда заменяет пользователя оболочки shell на указанного. Фактически происходит запуск нового экземпляра оболочки с указанными параметрами. Благодаря этому возможно, не выходя из системы, совершенно безболезненно повышать возможности управления операционной системой или наоборот ограничивать их.
Команда su Linux
Команда имеет следующий синтаксис:
su [options] [-] [user]
Если вызов команды происходит без аргументов, то происходит смена пользователя оболочки shell на суперпользователя root. Программа выдаст приглашение ввода пароля, если пароль будет верным, то текущим пользователем станет root.
- options — некоторые дополнительные возможности команды. Мы их рассмотрим ниже:
- [-] — смена контекста выполнения оболочки на контекст указанного пользователя. Переменные $PATH, $HOME, $SHELL, $USER, $LOGNAME содержат значения, характерные для указанного пользователя. Домашняя папка пользователя меняется на другую.
- user — имя пользователя, под которым продолжит работать командная оболочка.
Основные опции команды su:
- -c, —command=command — запускает приложение под указанным аккаунтом;
- -s, —shell=shell— происходит запуск для заданного пользователя указанной оболочки;
- -, -l, —login — смена контекста выполнения на контекст заданного пользователя, аналогична смене пользователя системы для shell;
- -g, —group=group — вызов пользователя, состоящего в заданной группе. Используется только для пользователя root;
- -h, —help — вызов справки для команды.
Далее давайте рассмотрим примеры работы с утилитой su.
Примеры использования su
Смена пользователя на суперпользователя root, без смены окружения оболочки:
Обратите внимание, что здесь вам нужно набрать пароль не своего пользователя, а именно того, от имени которого вы хотите авторизоваться. В данном случае, пользователя root. Если вы получаете ошибку сбой при проверке подлинности su linux, то это может означать, что либо вы ввели пароль неверно, либо пароль для этого пользователя не задан. Такое можно встретить у пользователя root в Ubuntu и Linux Mint. Информацию о том как установить пароль вы можете найти в этой статье. Смена пользователя на суперпользователя root со сменой параметров окружения оболочки:
Смена пользователя на пользователя user01:
Смена пользователя на пользователя user01 со сменой окружения:
Запуск оболочки zsh для пользователя user01:
su -s /usr/bin/zsh user01
Запуск оболочки bash из оболочки zsh для пользователя user01:
su -s /usr/bin/bash user01
Запуск файлового менеджера Midnight Commander для пользователя user01:
Просмотр содержимого директории boot суперпользователем root:
Чтобы выйти из оболочки, открытой командой su можно использовать встроенную команду exit или сочетание клавиш Ctrl+d.
Выводы
Сегодня вы узнали что из себя представляет команда su linux, которая позволяет запустить оболочку от имени другого пользователя, как со сменой окружения, так и без. Узнали как выйти из этой оболочки.
Были рассмотрены различные варианты использования данной команды: для получения прав суперпользователя root, для смены командной оболочки, для выполнения конкретной команды или пакета от имени указанного пользователя.
Смена пользователя в Linux
Иногда компьютерами под управлением операционных систем Linux пользуются несколько юзеров по очереди, например, дома. В таких случаях не всегда удобно иметь одну учетную запись на всех человек, поскольку каждый желает задать определенную конфигурацию ОС и получить хотя бы минимальную конфиденциальность. Именно поэтому разработчики добавляют возможность создавать неограниченное количество защищенных профилей, чтобы в любой момент переключиться к какому-либо из них. На нашем сайте уже имеется статья, в которой детально описано два способа создания юзеров, поэтому сегодня мы опустим этот процесс и сразу перейдем к теме способов переключения между профилями.
Меняем пользователя в Linux
Далее вы узнаете о четырех доступных вариантах смены учетной записи в Linux на примере дистрибутива Ubuntu. Проще всего это сделать через графическую оболочку или сразу же при начале нового сеанса. Однако существуют и другие условия, о которых мы тоже поговорим в рамках данного материала. Дополнительно вам может понадобиться просмотреть список всех профилей, чтобы знать, какие у них установлены пароли и имена. Для этого мы предлагаем ознакомиться со следующей статьей по ссылке ниже, а мы переходим к первому варианту.
Способ 1: Список профилей при входе в систему
По умолчанию абсолютно во всех существующих дистрибутивах Линукс функция автоматического входа отключена, поэтому при создании нового сеанса требуется выбрать пользователя для входа, а уже потом появится строка для ввода пароля. На этом этапе вы можете указать, к какой именно учетной записи хотите подключиться.
- Включите компьютер, чтобы создать новый сеанс. При отображении списка кликните левой кнопкой мыши по соответствующей строке с подходящим именем.
Если вы обнаружили, что профиль отсутствует в списке, потребуется перейти к отдельному меню.
Здесь сначала указывается имя, поэтому вам необходимо точно знать его, а далее вводится пароль. Если вся информация указана правильно, создастся новая виртуальная консоль с графической оболочкой.
Как видите, этот метод максимально прост, что позволит даже самому начинающему юзеру выполнить его без каких-либо трудностей. Однако если вы уже создали сеанс и не желаете перезагружать ПК для смены профиля, обратите внимание на следующий способ.
Способ 2: Кнопка «Сменить пользователя» в окружении
Еще раз уточним, что мы рассматриваем выполняемую процедуру на примере Ubuntu и установленной по умолчанию в ней графической оболочке. Если же вы обнаружили какие-либо различия, изучая скриншоты, вам предстоит самостоятельно отыскать необходимую кнопку. Это не составит труда, если вы хотя бы немного ориентируетесь в графическом интерфейсе. В противном случае можно обратиться к официальной документации дистрибутива и его оболочки. Смена учетной записи через окружение рабочего стола происходит так:
- Нажмите на кнопку выключения, которая находится на панели задач. Она может быть расположена вверху или снизу, что зависит от общих настроек.
В появившемся контекстном меню кликните по имени своего профиля и в списке выберите «Сменить пользователя».
Появится та же самая форма, что вы видели в инструкции к предыдущему методу. Здесь кликните ЛКМ по нужной учетной записи.
Введите пароль и нажмите на «Разблокировать».
Теперь вы можете с легкостью проверить, произошла ли смена пользователя. Это осуществляется через ту же кнопку на панели задач, о которой мы говорили в первом шаге или путем запуска «Терминала». Там вы увидите, от какого имени была открыта консоль.
Способ 3: Команда в «Терминале»
Отметим, что этот вариант подойдет только в том случае, если вы не хотите менять юзера для всей сессии, а желаете выполнить какие-либо команды от его имени через консоль, а потом снова вернуться к управлению через исходный профиль. В любом дистрибутиве существует единая команда, позволяющая осуществить задуманное.
- Откройте «Терминал» любым удобным способом, например, через главное меню.
Введите команду su — username , где username — точное имя необходимой учетной записи.
Для разблокирования управления введите пароль. Учтите, что отображаться в консоли он не будет, но символы при этом корректно вводятся.
Теперь обратите внимание на зеленую надпись. Как видите, пользователь был успешно сменен.
При закрытии консоли появится всплывающее окно, что здесь запущен какой-то процесс. Этот процесс как раз и является сменой пользователя. Подтвердите закрытие, чтобы завершить консольную сессию учетной записи.
Как видите, для осуществления данного способа потребуется знать точное имя пользователя, а не только его пароль. Однако это единственный доступный вариант, позволяющий выполнять команды в пределах одной консоли от имени другого юзера.
Способ 4: Функция «Автоматический вход»
Иногда во время установки или уже после нее юзер создает учетную запись без пароля и активирует функцию «Автоматический вход». В такой ситуации авторизация происходит самостоятельно, поэтому у других юзеров нет возможности сменить профиль при включении компьютера. Исправить это положение или назначить другой профиль для автоматического входа помогут параметры, реализованные через графическую оболочку.
- Откройте меню приложений и перейдите в «Параметры».
Здесь вас интересует категория «Сведения о системе».
Разверните категорию «Пользователи» и кликните по кнопке «Разблокировать».
Потребуется ввести пароль суперпользователя, чтобы получить возможность управлять другими учетными записями.
После этого переключитесь на необходимый профиль, активируйте или деактивируйте функцию «Автоматический вход» путем перемещения ползунка.
Выше вы узнали о четырех доступных вариантах смены пользователя, последний из которых предполагает включение опции автоматического входа, что позволит упростить процедуру переключения в тех ситуациях, когда она производится довольно редко. Вам осталось только выбрать подходящий способ и следовать инструкциям, чтобы без проблем справиться с поставленной задачей.
Отблагодарите автора, поделитесь статьей в социальных сетях.
komYounity
Мы создаём комьюнити, комьюнити создаёт Linux.
komYounity
Как изменить имя пользователя в Ubuntu, Debian, Deepin, Linux Mint, elementary OS или Fedora
Это пошаговое руководство о том, как изменить имя пользователя в Debian, Ubuntu, Deepin, Linux Mint, elementary OS (и других дистрибутивах Linux на основе Debian или Ubuntu) и Fedora.
В инструкциях объясняется, как изменить (переименовать) имя пользователя вместе с именем домашней папки пользователя, а также простой способ устранения потенциальных проблем с файлами конфигурации, которые все еще указывают на старое имя домашней папки. Также есть шаг для изменения полного имени (отображаемого имени), которое отображается на экране входа в систему и в других местах на рабочем столе.
Во всех приведенных ниже инструкциях или командах не забудьте заменить newusername его новым именем пользователя и oldusername старым именем пользователя.
1. Создайте временного пользователя и предоставьте ему привилегии sudo
Мы войдем в систему с временным пользователем, чтобы выполнить команды смены имени пользователя. Таким образом, не будет проблем при запуске их от того же пользователя, которого мы пытаемся переименовать (например, процессы, запущенные для этого пользователя и т. д.).
Добавьте нового временного пользователя ( tempuser ) и предоставьте ему привилегии sudo в Debian, Ubuntu, Deepin, elementary OS или Linux Mint (после ввода пароля вы можете продолжать нажимать, Enter чтобы пропустить ввод остальной информации):
Добавьте новый tempuser и предоставьте ему привилегии sudo на Fedora:
2. Войдите в систему как tempuser и измените (переименуйте) имя пользователя, домашнюю папку и группу
Выйдите из системы и на экране входа выберите tempuser и войдите под этим пользователем. Затем откройте терминал и выполните эти команды, чтобы изменить имя пользователя, домашнюю папку и группу с oldusername на newusername :
Если вы получили ошибку об использовании процесса для старого имени пользователя, убейте этот процесс ( kill PID ), но в большинстве случаев этого не должно происходить, поскольку мы вошли в систему, используя временное промежуточное имя пользователя для внесения этих изменений. Если это произойдет, другой обходной путь — это перезагрузить компьютер, а затем войти в tempuser напрямую, таким образом, нет никаких процессов, используемых старым именем пользователя.
3. Создайте символическую ссылку из /home/newusername в /home/oldusername
Некоторые приложения будут отображать ошибки при изменении имени пользователя, потому что в некоторых случаях есть файлы конфигурации, которые указывают на домашнюю папку старого имени пользователя. Решением для этого является создание символической ссылки из новой домашней папки на старую домашнюю папку:
4. Измените отображаемое имя или полное имя (имя, фамилия)
В моем случае при попытке переименовать имя пользователя в Ubuntu 19.04 и Fedora 29 отображаемое имя (полное имя) осталось неизменным на экране входа в GDM3 и в меню пользователя. Это можно изменить, используя:
Заменить firstname и lastname с первым и последним именем, или что вы хотите, чтобы показать на экране входа и различных других местах по всей системе. firstname и lastname также может быть одним элементом, например, вашим новым именем пользователя.
Команда chfn доступна на Fedora в util-linux-user пакете, который не установлен по умолчанию. Вы можете установить его на Fedora, используя:
После установки этого пакета chfn команда должна работать на Fedora.
5. Войдите в систему с новым (переименованным) именем пользователя и удалите временного пользователя, созданного в шаге 1
Выйдите из системы, выберите новое, переименованное имя пользователя на экране входа в систему и перейдите к входу в систему. Теперь вы можете удалить временного пользователя, созданного в шаге 1 ( tempuser ), и его домашнюю папку:
Linux сменить пользователя в консоли
Next: Файловая система Up: Введение в ОС Linux Previous: Загрузка ОС Linux Contents Index
Консолью называется совокупность основных устройств ввода информации в компьютер (клавиатура и мышь) и вывода информации (монитор). Linux работает с несколькими так называемыми виртуальными консолями, из которых в каждый момент времени только одна может быть связана с реальной (физической) консолью (то есть, является активной). В дальнейшем слово «консоль» будет обозначать именно виртуальную консоль.
Некоторые из консолей представляют информацию только в текстовом виде с использованием экранных шрифтов в форматах видеосистемы компьютера. Такие консоли называются текстовыми. Сама ОС Linux и основные автоматически запускаемые приложения (такие как командный процессор) используют в таких консолях интерфейс командной строки. Другие приложения (например, менеджер файлов Midnight Commander ) могут использовать оконный интерфейс, выделение объектов и выбор в меню и списках при помощи мыши или клавиатуры и т.п.
Другие консоли (графические) представляют информацию в графическом виде, используя Графический пользовательский интерфейс (GUI). Как правило, работа в таких консолях происходит при помощи развитых графических сред, таких как GNOME или KDE.
Для нужд ОС консоли перенумерованы целыми положительными числами. Их общее количество может изменяться в зависимости от настроек ОС и достигать нескольких десятков, хотя в стандартной настройке оно не превышает десяти. Несколько первых консолей — текстовые, далее идут графические (в стандартной настройке — одна).
Если Вы работаете в графической консоли, Для того чтобы сделать активной другую консоль с номером n (где n находится в интервале от 1 до 12), нажмите на клавиши [Ctrl]-[Alt]-[Fn] , то есть, например клавишу [Ctrl]-[Alt]-[F2] , если хотите перейти в консоль с номером 2. Для того чтобы сделать активной другую консоль вместо текущей текстовой консоли, нажмите на клавиши [Alt]-[Fn] .
Если в результате запуска корректно настроенной системы или при переходе из другой консоли активной становится текстовая консоль, в которой Вы хотите работать, Вам следует ввести имя пользователя. Имя пользователя вводится в позицию текстового курсора после приглашения localhost login: (слово localhost является именем по умолчанию компьютера в локальной сети; если при установке системы или позднее Вы настраивали локальную сеть, это имя может быть другим).
После того как Вы введете имя пользователя, в следующей строке будет выведено приглашение Password: Наберите на клавиатуре пароль пользователя и нажмите на клавишу Enter (при этом никакие символы на экране не появляются, и курсор перемещаться не будет).
Если пароль или имя пользователя неверные, Вам будет предложено повторить всю процедуру идентификации пользователя. В случае успешного прохождения идентификации появится приглашение командного процессора, которое имеет вид (вместо user_name будет стоять имя пользователя, под регистрационной записью которого Вы работаете, а вместо dir_name — название текущего каталога). Дальнейшая работа состоит в запуске различных программ в режиме командной строки.
Если Вы вошли под именем root , приглашение будет иметь вид Обратите внимание на изменение символа приглашения!
Для завершения работы ОС и всех приложений и перезагрузки компьютера нажмите на клавиши [Ctrl]-[Alt]-[Del] или введите команду reboot . В последнем случае на экран будет выведено приглашение Password: и Вы должны будете ввести пароль пользователя, под именем которого Вы работаете. Для того чтобы прекратить работу и выключить компьютер, введите команду halt .
Пользователи в Linux
Учётные записи
Linux — система многопользовательская, а потому пользователь — ключевое понятие для организации всей системы доступа в Linux. Когда пользователь регистрируется в системе (проходит процедуру авторизации, например, вводя системное имя и пароль), он идентифицируется с учётной записью, в которой система хранит информацию о каждом пользователе: его системное имя и некоторые другие сведения, необходимые для работы с ним. Именно с учётными записями, а не с самими пользователями, и работает система. Ниже приведён список этих сведений.
Системное имя (user name)
Это то имя, которое вводит пользователь в ответ на приглашение login: . Оно может содержать только латинские буквы и знак “ _ ”. Это имя используется также в качестве имени учётной записи.
Идентификатор пользователя (UID)
Linux связывает системное имя c идентификатором пользователя в системе — UID (User ID). UID — это положительное целое число, по которому система и отслеживает пользователей 1 . Обычно это число выбирается автоматически при регистрации учётной записи, однако оно не может быть совершенно произвольным. В Linux есть некоторые соглашения относительно того, каким типам пользователей могут быть выданы идентификаторы из того или иного диапазона. В частности, UID от “ 0 ” до “ 100 ” зарезервированы для псевдопользователей 2 .
Идентификатор группы (GID)
Кроме идентификационного номера пользователя с учётной записью связан идентификатор группы. Группы пользователей применяются для организации доступа нескольких пользователей к некоторым ресурсам. У группы, так же, как и у пользователя, есть имя и идентификационный номер — GID (Group ID). В Linux каждый пользователь должен принадлежать как минимум к одной группе — группе по умолчанию. При создании учётной записи пользователя обычно создаётся и группа, имя которой совпадает с системным именем 3 , именно эта группа будет использоваться как группа по умолчанию для этого пользователя. Пользователь может входить более чем в одну группу, но в учётной записи указывается только номер группы по умолчанию. Группы позволяют регулировать доступ нескольких пользователей к различным ресурсам.
Полное имя (full name)
Помимо системного имени в учётной записи содержится и полное имя (имя и фамилия) использующего данную учётную запись человека. Конечно, пользователь может указать что угодно в качестве своего имени и фамилии. Полное имя необходимо не столько системе, сколько людям — чтобы иметь возможность определить, кому принадлежит учётная запись.
Домашний каталог (home directory)
Файлы всех пользователей в Linux хранятся раздельно, у каждого пользователя есть собственный домашний каталог, в котором он может хранить свои данные. Доступ других пользователей к домашнему каталогу пользователя может быть ограничен. Информация о домашнем каталоге обязательно должна присутствовать в учётной записи, потому что именно с него начинает работу пользователь, зарегистрировавшийся в системе.
Начальная оболочка (login shell)
Важнейший способ взаимодействовать с системой Linux — командная строка, которая позволяет пользователю вести «диалог» с системой: передавать ей команды и получать её ответы. Для этой цели служит специальная программа — командная оболочка (или интерпретатор командной строки), по-английски — shell. Начальная оболочка (login shell) запускается при входе пользователя в систему в текстовом режиме (например, на виртуальной консоли). Поскольку в Linux доступно несколько разных командных оболочек, в учётной записи указано, какую из командных оболочек нужно запустить для данного пользователя. Если специально не указывать начальную оболочку при создании учётной записи, она будет назначена по умолчанию, вероятнее всего это будет bash.
Все перечисленные данные об учётных записях хранятся в файле /etc/passwd . Сведения о конкретной учётной записи пользователя можно получить с помощью утилиты getent 4 :
Первый параметр, passwd — это название базы, в которой нужно производить поиск, оно совпадает с именем соответствующего конфигурационного файла. Второй параметр, tester — это название учётной записи пользователя (системное имя). getent выводит ту строчку /etc/passwd , где описана искомая учётная запись: в ней через “ : ” указаны системное имя, пароль (тут стоит буква “ x ”, потому что пароль спрятан в другом месте, об этом ниже), UID, GID, полное имя, домашний каталог и начальная оболочка.
В Linux пароль пользователя в явном виде не хранится нигде, но только в зашифрованном. В современных системах обычно применяются так называемые «теневые пароли» (shadow passwords), которые хранятся отдельно от остальных сведений об учётной записи, а также позволяют назначать дополнительные ограничения, в частности, «срок годности» пароля. В зависимости от строгости политики безопасности зашифрованные пароли пользователей могут храниться в общем файле /etc/shadow (менее строго) или в отдельном файле shadow для каждого пользователя. В ALT Linux по умолчанию используется схема tcb , реализующая более строгую политику. Для просмотра сведений из файла shadow требуются полномочия суперпользователя, это можно сделать с помощью команды getent passwd tester . Подробнее о возможностях теневых паролей можно прочитать в руководствах shadow(5) и tcb(5) .
Также отдельно хранится информация обо всех группах пользователей в системе, для этого предназначен файл /etc/group . Информацию о конкретной группе можно получить с помощью той же утилиты getent :
Запись в файле /etc/group устроена очень просто: сначала идёт имя группы (как и имя учётной записи, потом поле для пароля (здесь опять “ х ”, но пароли для группы используются очень редко), GID, список через запятую названий учётных записей (имён пользователей), входящих в данную группу. Любой пользователь может получить список названий групп, в которых он состоит командой groups , а более подробные сведения о своей или чужой учётной записи командой id имя_пользователя . Принадлежность к группе существенна только в одном отношении — прав доступа, поскольку для каждого файла определён не только пользователь-владелец, но и группа-владелец.
Управление пользователями
Создание пользователей
Для создания полноценного пользователя Linux нужно выполнить несколько относительно независимых действий:
- создать запись в /etc/passwd , где присвоить учётной записи уникальное имя, UID и пр.;
- создать домашний каталог пользователя, обеспечить пользователю доступ к его домашнему каталогу (сделать его владельцем каталога);
- поместить в домашний каталог стандартное наполнение (обычно конфигурационные файлы), взятое из /etc/skel ;
- модифицировать системные конфигурационные файлы, в частности, создать хранилище для приходящей почты для данного пользователя ( /var/spool/mail/tester ).
Все эти действия могут быть выполнены и вручную, однако это довольно неудобно и можно что-нибудь забыть. Для упрощения процесса используется утилита useradd (она же по традиции называется adduser ), для выполнения которой, естественно, потребуются полномочия администратора. В простейшем случае достаточно будет двух шагов:
Сначала useradd добавляет учётную запись (имя пользователя — единственный параметр, в нашем примере — test ), заполняя её значениями по умолчанию и проводя все необходимые изменения в системе. С помощью дополнительных параметров при вызове useradd можно явно указать значение для того или иного поля учётной записи, также эта утилита позволяет модифицировать параметры создания пользователей по умолчанию. Подробности можно найти в руководстве useradd(8) . Утилита passwd , вызванная с правами суперпользователя, позволяет назначить данному пользователю любой пароль. При этом сведения о предшествующем пароле данного пользователя (если таковой был), будут полностью утрачены. passwd , вызванная обычным пользователем (без параметров), позволяет ему сменить свой собственный пароль, но для этого потребуется ввести текущий пароль пользователя.
Существуют аналогичные useradd утилиты для модификации параметров уже существующей учётной записи ( usermod ) и для удаления пользователей ( userdel ). Пользователь также может изменить некоторые некритичные сведения в своей учётной записи самостоятельно. В частности, для установки своего полного имени и некоторых других информационных полей учётной записи служит утилита chfn(1) из пакета shadow-change, сменить начальную оболочку поможет утилита chsh(1) (позволяет выбрать только одну из оболочек, перечисленных в /etc/shells ) из того же пакета. Обратите внимание, что в ALT Linux пользователь имеет право редактировать собственную учётную запись только в том случае, если установлен соответствующий режим доступа: команда control chsh должна возвращать public , аналогично control chfn . Установить нужный доступ может суперпользователь командой control chsh public (аналогично для chfn ).
Самую востребованную операцию по работе с группами — добавление пользователя в группу — проще всего выполнить простым редактированием файла /etc/group . Достаточно открыть этот файл в любом текстовом редакторе (естественно, с правами суперпользователя), найти строчку, начинающуюся с названия нужной группы, и добавить в конец этой строки имя нужного пользователя через запятую). Для управления группами существует комплект утилит groupadd(8) , groupdel(8) , groupmod(8) , подробности о работе с ними можно найти в соответствующих руководствах.
1Это может оказаться важным, например, в такой ситуации: учётную запись пользователя с именем test удалили из системы, а потом добавили снова. Однако с точки зрения системы это уже другой пользователь, потому что у него другой UID.
2Обычно Linux выдаёт нормальным пользователям UID, начиная с “ 500 ” или “ 1000 ”.
3Как правило, численное значение GID в этом случае совпадает со значением UID.
4Эта утилита также полезна для получения сведений о некоторых других системных ресурсах, см. getent —help .