Как создать пользователя SFTP (SSH) с крайне ограниченными разрешениями

Я запускаю сервер на Ubuntu Server 14.04. Я хочу создать пользователя, который сможет подключаться через sftp, скачать 1 файл и разорвать соединение. Пользователь не должен быть в состоянии сделать что-либо еще. Просмотр системных файлов или настроек, ни записей командной строки, ничего. Авторизуйтесь, скачайте файл, gg. Когда файл обновится, войдите в систему, загрузите его, gg. Файл каждый раз находится в одном и том же каталоге и каждый раз имеет одно и то же имя, но обновляется.

РЕДАКТИРОВАТЬ: Я пытаюсь реализовать ваше решение, но я обнаружил некоторые проблемы: В файле конфигурации ssh в моей конфигурации есть строка «allow groups sshdusers». Я добавил sftp_users. Но впереди еще одна проблема. sudo chown root.root / ubuntu / не является оптимальным для меня, потому что root не может выполнить ssh и записать в каталог файл, который должен загрузить «ubuntu» (мы назовем его user1. Я хочу, чтобы user1 мог писать на каталог и Ubuntu только для чтения. Если я изменяю sudo chown user1.user1 / ubuntu /, и я пытаюсь sftp с пользователем Ubuntu, соединение не устанавливается. Если я оставляю его root, как вы, я могу подключиться, но я не вижу currentdirectory я вижу только / и использую filezilla. Я даже добавил user1 в sftp_users, но все еще безуспешно.

Большое спасибо

8
задан 27 May 2015 в 00:45

1 ответ

Давайте запустимся

Создайте пользователя ubuntu

sudo useradd ubuntu

Сделайте пароль

sudo passwd ubuntu
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Создайте для SFTP только группу

xxx@xxx:~$ sudo groupadd sftp_users 

Добавьте к пользователю "человечность" для SFTP только группа

xxx@xxx:~$ sudo usermod -G sftp_users ubuntu 

Сделайте dir для sftp доступ

sudo mkdir /ubuntu

Измените владельца, потому что разрешение чтения-записи

sudo chown root.root /ubuntu/

Добавьте разрешение

sudo chmod 755 /ubuntu/

Править /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

Прокомментируйте и добавьте строку как ниже

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Добавьте в последнем

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /ubuntu
  ForceCommand internal-sftp

Перезапуск ssh сервис

sudo service ssh restart

С этим cenfiguration Вы можете ssh в папку ubuntu и получите файлы. Не может put или delete

Попробовать.

Редактирование 1

К sftp в правильном редактировании папки /etc/passwd. Строка изменения для пользователя ubuntu быть похожими на это

sudo nano /etc/passwd

 ubuntu:x:1001:1001::/ubuntu:

Это изменит пользовательскую человечность домашняя папка на Вашу sftp папку сервера.

Включение root учетная запись не является хорошей идеей.

Вы можете ssh к серверу с user1.

Если Вы добавляете пользователя user1 в sudoer group Вы сможете записать в папке /ubuntu/ и набор соответствующее разрешение

sudo adduser user1 sudo

Сделайте папку, запишите в человечности папки. После действий необходимо установить разрешение для пользователя ubuntu. Самый легкий путь к разрешению набора agai к 755

sudo chmod 755 -R /ubuntu/

- R - опция даст разрешение чтения всех файлов и dir для пользователя ubuntu

11
ответ дан 27 May 2015 в 00:45

Другие вопросы по тегам:

Похожие вопросы: