- Как переключаться между пользователями в Linux
- Смена текущего пользователя с помощью su
- Использование sudo для переключения между пользователями
- Изменение пользователей с помощью среды рабочего стола
- Управление несколькими учетными записями пользователей в Linux
- Связанный
- Лучшие сообщения
- Работа с пользователями в Linux
- Получение информации о пользователях
- Создание
- Ключи (опции)
- Редактирование
- Удаление
- Блокировка
- Работа с группами
- Список пользователей
- Примеры работы с учетными записями
- useradd
- usermod
- chage
- Возможные ошибки
- sudo must be owned by uid 0 and have the setuid bit set
Как переключаться между пользователями в Linux
Поскольку Linux – многопользовательская операционная система, рано или поздно вы почувствуете необходимость переключаться между пользователями. Будь то выполнение административных действий с использованием учетной записи суперпользователя или просто изменение текущего пользователя для доступа к определенному каталогу, Linux предоставляет несколько способов решения таких проблем.
Давайте посмотрим, как вы можете переключаться между несколькими пользователями в Linux.
Смена текущего пользователя с помощью su
Согласно странице руководства su, команда su используется либо для того, чтобы стать другим пользователем во время сеанса входа в систему, либо для переключения на суперпользователя. Базовый синтаксис команды:
… где параметры – это различные флаги, которые вы можете использовать с командой, а имя пользователя – это имя целевой учетной записи.
Если вы не укажете имя пользователя в команде, su по умолчанию переключится на пользователя root.
Простая передача имени пользователя в качестве аргумента в команде переключит текущий сеанс входа в систему для указанного пользователя.
Вас могут попросить ввести пароль, если у пользователя есть пароль для своей учетной записи.
Например, чтобы переключиться на пользователя с именем testuser :
Выполните любую из следующих команд, чтобы проверить изменение:
На выходе будет отображаться имя пользователя, на которого вы только что переключились. В этом случае:
Если вам нужно запустить только одну команду от имени другого пользователя, вам не нужно переключаться на этого пользователя. Вместо этого вы можете просто выполнить команду от имени другого пользователя, используя флаг -c .
su -c chmod +w /Downloads testuser
Добавление дефиса ( – ) к команде su создаст новую среду при переключении между пользователями.
Используйте флаг -s с командой, чтобы изменить оболочку при переключении на другого пользователя. Обратите внимание, что вам нужно будет вызвать команду с путем к оболочке следующим образом:
Использование sudo для переключения между пользователями
Подобно команде su, вы также можете изменить текущего пользователя с помощью sudo. Синтаксис обеих команд более или менее одинаков, за исключением параметров.
Чтобы изменить текущий сеанс входа в систему для другого пользователя, используйте флаг -u :
Если вы хотите выполнить определенную команду от имени другого пользователя, укажите ее в команде:
sudo -u testuser chmod 777 /Documents
Вы также можете изменить оболочку при переключении между пользователями:
sudo -u username path-to-shell
Например, чтобы изменить текущую оболочку на zsh и одновременно переключиться на testuser :
Снова проверьте, были ли внесены изменения успешно, с помощью команды whoami или переменной среды USERNAME .
Изменение пользователей с помощью среды рабочего стола
Если использование командной строки вам не по душе, вы можете выбрать графический подход. На большинстве компьютеров с Linux установлена среда рабочего стола, которая предоставляет графический интерфейс, необходимый для взаимодействия с ОС. GNOME и KDE – две наиболее широко используемые среды рабочего стола , поэтому в этом руководстве мы сосредоточимся только на них.
Чтобы переключаться между пользователями в среде рабочего стола GNOME:
- Щелкните значок стрелки вниз, расположенный в правом верхнем углу экрана.
- Нажмите « Выключить / выйти» и в раскрывающемся меню выберите « Сменить пользователя» .
Для тех, кто использует KDE, следуйте инструкциям ниже, чтобы сменить текущего пользователя:
- Откройте средство запуска приложений и нажмите кнопку « Выйти» в правом нижнем углу окна.
- В появившемся раскрывающемся списке выберите Сменить пользователя .
Обратите внимание, что другие среды рабочего стола также предлагают аналогичные варианты входа в систему как другой пользователь.
Управление несколькими учетными записями пользователей в Linux
Как и в других операционных системах, вы также можете переключаться между несколькими пользователями в Linux. Хотя другие ОС, такие как Windows и macOS, предоставляют графический интерфейс для выполнения таких действий, в Linux вы можете использовать командную строку для эффективного входа в другие учетные записи пользователей.
Очевидно, что глубокие знания командной строки Linux – мощное дополнение к арсеналу любого ИТ-профессионала. Практическое использование команд и предоставление специального учебного ресурса – лучший способ познакомиться с терминалом Linux.
Связанный
Лучшие сообщения
Работа с пользователями в Linux
Обновлено: 20.04.2023 Опубликовано: 05.12.2016
В данной инструкции рассказывается о работе с пользователями Linux через терминал (с применением командной строки).
Получение информации о пользователях
1. Список пользователей можно посмотреть в файле /etc/passwd командой:
Данная команда вернет всех пользователей, в том числе служебных. Для отображения только учетных записей пользователей можно ввести команду:
2. Проверить существование пользователя и увидеть его идентификатор можно с помощью команды id:
Мы должны увидеть что-то на подобие:
uid=1001(username) gid=1001(username) groups=1001(username),27(sudo)
* учетная запись username существует, она находится в основной группе username и дополнительной sudo. Ее идентификатор 1001.
3. Также мы можем получить строку о пользователе из файла /etc/passwd:
* наш пользовател username имеют идентификатор пользователя и группы 1001, его домашняя директория /home/username, командная оболочка /bin/sh.
Создание
* опции не являются обязательными при создании пользователя.
* в данном примере создается учетная запись dmosk.
Для учетной записи стоит сразу создать пароль:
* после ввода, система попросит ввести пароль дважды.
Ключи (опции)
Ключ | Описание и примеры |
---|---|
-b | Задает базовый каталог для домашнего каталога useradd dmosk -b /var/home |
-c | Создает комментарий для описания учетной записи useradd dmosk -c «Пользователя для управления системой» |
-d | Полный путь к домашнему каталогу пользователя useradd dmosk -d /home/newuser |
-D | Позволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей useradd dmosk -Ds /bin/bash |
-e | Дата, после которой учетная запись устареет. useradd dmosk -e 2017-12-31 |
-f | Число дней, после которого учетная запись с устаревшим паролем будет заблокирована useradd dmosk -f 0 |
-g | Задает основную группу useradd dmosk -g altternativegroup |
-G | Задает дополнительные группы useradd dmosk -G wheel |
-k | Путь к источнику скелета (файлы с шаблонами для нового пользователя) useradd dmosk -k /var/skel |
-m | При создании пользователя создать домашний каталог useradd dmosk -m |
-M | Не создавать домашний каталог useradd dmosk -M |
-N | Не создавать основную группу с таким же именем, как у пользователя useradd dmosk -N |
-o | Разрешает создание учетной записи с повторяющимся UID useradd dmosk -u 15 -o |
-p | Задает пароль useradd dmosk -p pass |
-r | Системная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN — SYS_UID_MAX из файла /etc/login.defs) useradd dmosk -r |
-R | Каталог, в который выполняется chroot useradd dmosk -R /var/chroot/home |
-s | Путь до оболочки командной строки useradd dmosk -s /bin/csh |
-u | Задает UID useradd dmosk -u 666 |
-U | Имя группы будет таким же, как у пользователя useradd dmosk -U |
Актуальный список ключей можно получить командой useradd -h.
Редактирование
* эта команда добавит пользователя dmosk в группу wheel
Удаление
Блокировка
1. Можно заблокировать пользователя, не удаляя его из системы:
Чтобы разблокировать пользователя, вводим:
2. В некоторых системах Linux может использоваться pam-модуль tally. Он осуществляет подсчет количества неудачных попыток входа в систему. Также он может блокировать доступ при превышении данного количества.
Чтобы посмотреть счетчик для пользователя, вводим команду:
Для сброса счетчика (и блокировки, если она есть) вводим:
pam_tally2 —user=admin —reset
Работа с группами
4. Добавление пользователя в группу:
Выполняется через команду usermod:
Выполняется с помощью gpasswd:
Список пользователей
Посмотреть список пользователей можно в файле /etc/passwd:
Мы увидим что-то на подобие:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
.
Как правило, большая часть данных пользователей является системными — их UID меньше 1000 и больше 60000.
Более функциональная команда для отображения содержимого файла passwd — getent:
Можно найти пользователя по идентификатору:
Получить список не системных пользователей:
Получить только список логинов не системных учетных записей:
Примеры работы с учетными записями
Рассмотрим несколько утилит, с помощью которых можно управлять учетными записями в Linux.
useradd
1. Создать пользователя, добавить его в группу и создать домашнюю директорию:
useradd dmosk -G printer -m
2. Создать учетную запись с возможностью получения привилений суперпользователя (командой sudo su):
3. Создать пользователя с определенными UID и GID (соответственно идентификаторы пользователя и группы):
useradd dmosk -u 900 -g 950
* группа с используемым идентификатором (в данном примере 950) уже должна быть создана заранее с использованием команды groupadd.
4. Создать пользователя и указать путь к домашней директории:
useradd dmosk -d /home/newdmosk
5. Создать учетную запись без возможности входа в систему:
useradd dmosk -s /sbin/nologin
usermod
1. Потребовать сменить пароль при следующем входе в систему:
2. Поменять пользователю основную группу:
usermod dmosk -g kdonewgroup
3. Задать пользователю дополнительную группу с правами root:
4. Добавить пользователя в группу:
* в данном примере мы добавим пользователя dmosk в группу group.
5. Сменить домашнюю директорию:
usermod -d /var/www/dmosk dmosk
* данной командой мы меняем для пользователя dmosk домашнюю директорию на /var/www/dmosk.
chage
1. Автоматическая блокировка учетной записи:
* данной командой мы указали, что учетная запись dmosk перестанет действовать после 1 мая 2023 года.
Чтобы посмотреть информацию о дате окончания срока действия учетной записи вводим:
Сделать учетную запись бессрочной:
Возможные ошибки
sudo must be owned by uid 0 and have the setuid bit set
При попытке получить привилении командой:
. система возвращает ошибку:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
Причина: эта ошибка возникает, когда утилита sudo не имеет правильных прав доступа на вашей системе. В частности, она происходит, когда владелец файла /usr/bin/sudo не является пользователем root или когда установлен неправильный бит setuid на файле.
Решение: убедитесь, что вы вошли в систему с учетной записью, имеющей права администратора. Это можно сделать, войдя напрямую под пользователем root.
Выполняем команду, чтобы проверить права файла sudo:
Если владелец не является пользователем root, выполните следующую команду, чтобы изменить владельца файла:
chown root:root /usr/bin/sudo
Убедитесь, что установлен правильный бит setuid на файле sudo, выполнив следующую команду: