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

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

РЕДАКТИРОВАТЬ: Я пытаюсь реализовать ваше решение, но я обнаружил некоторые проблемы: В конфигурационном файле SSH в моей конфигурации есть строка с "разрешить группы 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, но все еще безуспешно.

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

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 

Добавить к пользователю "Ubuntu" для группы только 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

С этой кенфигурации вы можете SSH в папку ubuntu и получить файлы. Не могу put или же delete

Пытаться.

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

Для sftp в правой папке отредактируйте /etc/passwd, Изменить строку для пользователя ubuntu выглядеть так

sudo nano /etc/passwd

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

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

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

Вы можете SSH к серверу с user1,

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

sudo adduser user1 sudo

Сделайте папку, напишите в папку Ubuntu. После действий вы должны установить разрешение для пользователя ubuntu, Самый простой способ - установить разрешение 755.

sudo chmod 755 -R /ubuntu/

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

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