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

7

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

EDIT: Я пытаюсь реализовать ваше решение, но я нашел некоторые проблемы: в конфигурационном файле 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 я вижу только / и empy на filezilla. Я даже добавил user1 в sftp_users, но все равно не успел.

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

    
задан BlueStarry 18.05.2015 в 21:20
источник

1 ответ

7

Начнем

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

sudo useradd ubuntu

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

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

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

[email protected]:~$ sudo groupadd sftp_users 

Добавить пользователю «ubuntu» только для группы SFTP

[email protected]:~$ 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 service

sudo service ssh restart

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

Try.

Изменить 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 - опция даст разрешение на чтение всех файлов и dir для пользователя ubuntu

    
ответ дан 2707974 19.05.2015 в 12:09