
Мне нужно создать пользователя в системе Linux с правами на установку программ, но без прав на доступ к каталогам других пользователей.
Я пробовал сделать это:
# Create restricted user user
adduser --home /home/restricted_user restricted_user
# Edit normal user dir permissions
chmod -R 700 /home/normal_user/
# Add restricted user to sudoers in order to allow program installation
sudo adduser restricted_user sudo
Затем я попробовал:
su restricted_user
sudo ls /home/normal_user
И наконец, ограниченный пользователь имеет доступ к каталогу обычного пользователя, если он делает это с помощью sudo
Как я могу реализовать эти ограничения?
решение1
Не добавляйте пользователя вsudo
группа, не предоставляйте им общий доступ root. Отредактируйте /etc/sudoers
и укажите небольшой набор исполняемых файлов, которые пользователь может запустить как root. Пример:
# in sudoers file
restricted_user ALL = (root) /usr/bin/apt-get
restricted_user ALL = (root) /sbin/reboot
Примечания:
- В зависимости от вашего Linux:
apt-get
/apt
,dpkg
,opkg
,pacman
,yum
, … - Используйте полные пути.
- Правильный способ редактирования
sudoers
— этоvisudo
. man 5 sudoers
Более подробную информацию о синтаксисе см .- При создании более сложных правил помните об ихпорядок имеет значение.
Имейте в виду, что решительный пользователь, который может устанавливать произвольные программы, способен подготовить и установитьsetuidверсию ls
или "обновленную" sudo
, которая предоставит им доступ root независимо от /etc/sudoers
. Или предоставьте и установите пакет, который выполняет произвольные операции при установке (возможно, фактически ничего не устанавливая). Предотвратить это может быть непросто.