Как можно ограничить доступ пользователя к выполнению команд в оболочке (Shell)?

Как настроить ограниченный доступ через sFTP и SCP в операционных системах на базе ядра Linux, чтобы пользователь мог закинуть файлы в свою папку, но запретить использование curl/wget и запуск своих бинарников?
  • 13 ноября 2023 г. 20:39
Ответы на вопрос 2
Ограничение доступа пользователя к выполнению команд в оболочке (Shell) можно осуществить с помощью утилиты rbash (restricted bash) или с помощью настройки прав доступа к исполняемым файлам.

1. Ограничение доступа с помощью rbash:
- Создайте пользователя с использованием команды `useradd` с опцией `-s /bin/rbash`, например: `sudo useradd -s /bin/rbash username`.
- Установите ограничения доступа в файле `.bashrc` пользователя. Например, чтобы запретить пользователю использование curl/wget, добавьте следующие строки в `.bashrc`:

```
# .bashrc
# ...
alias curl='echo "curl is not allowed"'
alias wget='echo "wget is not allowed"'
```

2. Ограничение доступа с помощью настройки прав доступа:
- Создайте новую группу для ограниченного доступа, например: `sudo groupadd limited-access`.
- Измените владельца и группу для каталога, в котором пользователь будет хранить свои файлы: 

```
sudo chown -R username:limited-access /path/to/userfolder
```

- Установите права доступа на исполняемые файлы: 

```
find /path/to/userfolder -type f -exec chmod 700 {} \;
```

Таким образом, пользователь сможет закидывать файлы в свою папку через sFTP или SCP, но не сможет запускать свои бинарники.
- Загрузи файлы на отдельный FTP сервер.
- Используй FTP сервер для хранения файлов.
- Перемести файлы на специальный FTP сервер.
- Отправь файлы на отдельный FTP сервер.
- Сохраняй файлы на отдельном FTP сервере.
Похожие вопросы