В Linux для контроля доступа к файловой системе используются пользователи и группы. Каждый файл имеет пользователя владельца и группу, пользователи из которой могут получить к нему доступ. Это очень простая, но в то же время гибкая система привилегий.
Поэтому пользователи используются не только для людей, работающих за компьютером, но и для запущенных процессов, позволяя таким образом ограничить их сферу влияния. В этой небольшой статье мы рассмотрим как добавить пользователя в Debian.
Содержание статьи
Как добавить пользователя в Debian
1. Графический интерфейс
Проще всего добавить пользователя в графическом интерфейсе. Для этого откройте утилиту Параметры системы, перейдите в раздел Подробности, затем откройте пункт Пользователи:
Здесь, первым делом необходимо нажать кнопку Разблокировать чтобы получить доступ к созданию и редактированию пользователей. После этого система запросит ваш пароль. Только после его ввода появится кнопка Добавить пользователя в верху окна, нажмите на неё:
В окне создания нового пользователя надо ввести его имя и логин, а также пароль два раза:
Вы можете создать обычного пользователя или администратора. Они отличаются только одним, администратор по умолчанию добавлен в группу sudo. Далее новый пользователь появится в списке пользователей:
2. Терминал
Добавление пользователей debian через терминал даже проще, чем в графическом интерфейсе. Чтобы создать пользователя в терминале следует использовать команду adduser. Она интерактивная и во время создания пользователя надо будет ответить на несколько вопросов. Например, для создания пользователя losst выполните:
sudo adduser losst
Введите два раза пароль для нового пользователя:
Дальше можно заполнить полное имя пользователя, информацию о его рабочем месте, телефон и другую нужную вам информацию:
Если вы хотите создать sudo пользователя в Debian, то надо добавить только что созданного пользователя в группу sudo. Например:
usermod -aG sudo losst
Обратите внимание, что опция a здесь обязательна, иначе команда заменит все группы пользователя на sudo и тогда он может потерять доступ к некоторым системным ресурсам. Вы можете проверить добавлен ли пользователь в эту группу выполнив:
getent group sudo
Выводы
Как видите, создание пользователя Debian не такая уже сложная задача, которая может быть выполнена как через терминал, так и через графический интерфейс. Если у вас остались вопросы, спрашивайте в комментариях!
> Если у вас остались вопросы, спрашивайте в комментариях!
Да, вопросы есть.
1). Вообще, для чего нужны пользователи в случае, когда за компьютером только один человек?
2). Как правильно создать пользователя без доступа к интернету и запускать от него программы?
1. В первом случае не нужны. Первый пользователь создаётся в процессе установки системы. Справедливо, если с системой вы работаете только один.
2. Что-то не увидел необходимости подключения к Интернет в механизме создания нового пользователя. Поэтому первая часть вопроса вызывает недоумение. Ответ на вторую часть вопроса требует более пространных пояснений и знаний основ работы с терминалом.
1. В данной статье написано: "Поэтому пользователи используются не только для людей, работающих за компьютером, но и для запущенных процессов, позволяя таким образом ограничить их сферу влияния."
Т.е. с помощью пользователей можно ограничивать сферу влияния процессов. Я хотел бы узнать примеры таких процессов.
2. Я не доверяю какой-то программе, поэтому хочу заблокировать для неё выход в интернет с помощью стандартных средств Линукс: запуская программу от имени пользователя, которому ограничен доступ к интернету. У меня возникли проблемы с реализацией, поэтому спрашиваю здесь.
Можно реализовать с помощью Iptables. Создается пользователь и ограничиваем его уже на файрволле:
iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP
Создаём группу пользователей без интернета: "group_no_inet":
sudo groupadd group_no_inet
Создаём пользователя:
sudo useradd user_no_inet -M -g group_no_inet -s /bin/bash
Задаём пароль:
sudo passwd user_no_inet
Вообще, я блокировал пользователя так:
sudo iptables -A OUTPUT -p all -m owner --uid-owner user_no_inet -j DROP
Запускаем программу:
sudo -u user_no_inet firefox
И получаем ошибку:
Error: no DISPLAY environment variable specified
Ошибка: не указана переменная среды DISPLAY
Запускаем оперу:
mkdir: cannot create directory '/run/user/1003': Permission denied
[14407:14407:1027/213147.752833:ERROR:browser_main_loop.cc(1400)] Unable to open X display.
Что с этим делать я не знаю.
Вообще, я не уверен, что нужно специально создавать группу - здесь блокировка идёт по пользователю.
Домашний каталог скорей всего нужен, так что -M лишнее.
Проблема с доступом к X, скорее всего, решаема (no DISPLAY environment variable specified) - https://losst.pro/oshibka-cannot-open-display-linux. А вот почему не работает mkdir мне не понятно.
Кстати, говоря, от пользователя user_no_inet локальная сеть и адреса в интернете не пингуются, т.е. сама блокировка сети работает, другое дело, что и программы не запускаются - разные ошибки лезут.
Спасибо за руководство.
Помогло.
не помогло
useradd -m -d /home/(домашняя директория пользователя) -c ("пояснение что за пользователь") (имя пользователя)
passwd (название пользователя) этой командой вы задаете ему пароль.
Автор, спасибо за труд!
Вопрос:
создал юзера. Пытаюсь ему дать права командой usermod -aG sudo но выдаётся ошибка: usermod: comand not found, ну и соответственно, в группе sudo его нет. В чём ошибка?
У меня такая была когда писал usermode