Для создания пользователя с ограниченными правами, который сможет использовать `virtualenv` и `pip`, следуйте этим шагам:
1. **Создайте пользователя**.
Это можно сделать с помощью следующей команды:
```bash
sudo adduser myuser
```
Замените `myuser` на нужное имя пользователя.
2. **Настройте домашний каталог**.
Если вы хотите, чтобы домашним каталогом пользователя была папка `my/folder/www`, вы можете задать это при создании пользователя с помощью параметра `--home`:
```bash
sudo adduser --home /my/folder/www myuser
```
Если пользователь уже создан, вы можете изменить его домашний каталог с помощью:
```bash
sudo usermod -d /my/folder/www myuser
```
3. **Настройте права доступа к директории**.
Убедитесь, что пользователь имеет права доступа к папке `www`:
```bash
sudo chown -R myuser:myuser /my/folder/www
```
Также проверьте разрешения:
```bash
sudo chmod -R 755 /my/folder/www
```
4. **Ограничьте доступ к другим директориям**.
Этого можно добиться, изменив настройки в `/etc/ssh/sshd_config` для пользования SSH и настройкой оболочки:
- Убедитесь, что у пользователя нет прав на доступ к верхним уровням и выведите в закрытые оболочки. Например, используя `chroot`:
```bash
Match User myuser
ChrootDirectory /my/folder
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
```
5. **Используйте правильную оболочку**.
Убедитесь, что пользователь использует оболочку, которая поддерживает `source`. Команды `source` и `.` работают в оболочках, таких как `bash`, а не `sh`. Если вы хотите, чтобы пользователь использовал `bash`, измените оболочку по умолчанию:
```bash
sudo chsh -s /bin/bash myuser
```
6. **Убедитесь, что virtualenv установлен**.
Убедитесь, что `virtualenv` установлен для вашего пользователя:
```bash
pip install --user virtualenv
```
Это установит `virtualenv` в директории пользователя.
7. **Создайте и активируйте виртуальное окружение**.
В каталоге `www` создайте виртуальное окружение:
```bash
virtualenv env
```
Для активации используйте:
```bash
source env/bin/activate
```
После выполнения всех этих шагов, у пользователя будут соответствующие права для работы с папкой `www`, а также возможность создания и использования виртуальных окружений без доступа к каталогам выше уровня `www`.