Вход в SDDM под другим пользователем без пароля с привилегиями sudo/root

## Как войти в графическую среду Linux без пароля: эффективные методы

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

### Разблокировка сеанса с помощью root-доступа

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

«`bash
loginctl unlock-session
«`

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

### Использование PAM для аутентификации

Если ваш дисплейный менеджер SDDM использует PAM (Pluggable Authentication Modules), вы можете настроить его для работы с мастер-паролем. Это позволяет пользователям входить в систему, используя единый пароль. Чтобы реализовать этот подход, выполните следующие шаги.

#### Создание скрипта для проверки мастер-пароля

1. Создайте вспомогательный скрипт, который будет сравнивать введенный пароль с мастер-паролем:

«`bash
sudo sh -e -c ‘
umask 0007
cat > /etc/security/master_password_check << "EOF" #!/bin/sh -e IFS= read -r ps || true IFS= read -r mps < /etc/security/master_password [ "$ps" = "$mps" ] EOF chmod u+x /etc/security/master_password_check cat > /etc/security/master_password << "EOF" M4st3rPSSwrd EOF ' ``` 2. Замените `M4st3rPSSwrd` на свой мастер-пароль с помощью команды: ```bash sudoedit /etc/security/master_password ``` #### Настройка PAM для использования мастер-пароля 3. Откройте файл `/etc/pam.d/sddm` и добавьте следующую строку перед строками `auth ...`: ```bash # Master password auth sufficient pam_exec.so expose_authtok quiet /etc/security/master_password_check ``` Теперь SDDM будет принимать ваш мастер-пароль для аутентификации любых пользователей, позволяя вам входить в систему как любой пользователь, указав при этом только мастер-пароль. ### Альтернативный метод через sudoers Еще один способ — использовать настройки в файле `sudoers`, который позволяет пользователям входить в систему под другой учетной записью без необходимости вводить ее пароль. Вот как это сделать. #### Создание скрипта для проверки пароля Создайте файл `/usr/local/bin/use-own-password`, который будет использоваться для аутентификации: ```bash sudo sh -e -c ' cat > /usr/local/bin/use-own-password << "EOF" #!/bin/sh -e case "$1" in no-op) exit 0 ;; verify) IFS= read -r password || true user="${password%%:*}" [ "$user" = "$password" ] || [ "$user" = "" ] && exit 1 password="${password#*:}" printf "%s\n" "$password" | 2>/dev/null sudo -u «$user» \
SUDO_ASKPASS=/usr/local/bin/use-own-password sudo -S -u «$PAM_USER» \
/usr/local/bin/use-own-password no-op
;;
esac
EOF
chmod 755 /usr/local/bin/use-own-password

«`

Следующий шаг — открыть файл `/etc/pam.d/sddm` снова и добавить:

«`bash
# Allowing sudoers
auth sufficient pam_exec.so expose_authtok quiet /usr/local/bin/use-own-password verify
«`

#### Настройка sudoers

Затем настройте файл `sudoers` с использованием команды `sudo visudo`:

«`bash
userA ALL=(userB) PASSWD: /usr/local/bin/use-own-password no-op
«`

Теперь пользователь `userA` сможет войти в систему как `userB`, используя свои учетные данные.

### Как это работает

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

### Примечания по безопасности

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

### Заключение

Аутентификация без знания пароля в Linux может быть выполнена несколькими способами, от использования мастер-паролей до настроек в файле `sudoers`. Эти методы могут быть полезны для администраторов, которые нуждаются в управлении доступом к различным учетным записям пользователей в графической среде. Постарайтесь соблюдать все меры предосторожности при использовании этих техник для обеспечения безопасности вашей системы.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *