Як створити SFTP (SSH) користувача з надзвичайно обмеженими дозволами


8

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

EDIT: Я намагаюся реалізувати ваше рішення, але я виявив деякі проблеми: У конфігураційному файлі ssh в моїй конфігурації є рядок з "дозволити групами sshdusers". Я додав sftp_users. Але попереду ще одна проблема. sudo chown root.root / ubuntu / не є оптимальним для мене, тому що root не в змозі ssh і записати в каталог файл, який "ubuntu" повинен завантажити (ми будемо називати його user1. Я хочу, щоб user1 міг писати на каталог і ubuntu лише для читання. Якщо я змінити sudo chown user1.user1 / ubuntu / і спробую sftp з користувачем ubuntu, з'єднання не вдасться. Якщо я залишу його, як і ви, я можу підключитися, але я не можу побачити currentdirectory Я бачу тільки / та емпію на filezilla.Я навіть додав user1 до sftp_users, але успіху досі немає.

Дуже дякую

Відповіді:


11

Давайте розпочнемо

Створити користувача 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 

Зробіть реж для 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

За допомогою цієї центрифікації ви можете сш в папку ubuntuта отримати файли. Не можна putчиdelete

Спробуйте.

Редагуйте 1

Перехід у праву папку /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. Найпростіший спосіб - встановити дозвіл agai на 755

sudo chmod 755 -R /ubuntu/

-R - опція дасть дозвіл на читання всіх файлів і dir's для користувача ubuntu


Велике спасибі вам. Додаткову інформацію дивіться у моїй редакції, оскільки коментарі дуже жорсткі.
BlueStarry

1
Ви маєте правки 1 в моїй відповіді.
2707974

Пробачте, кажу, що це не працює. З filezilla sftp я не можу писати в папку з user1, ні ubuntu. увійти в систему через ubuntu через sftp дає мені / папку, незважаючи на останні зміни. я намагався кілька разів, і я не можу розібратися в проблемі.
BlueStarry

Я також думаю, що 755 не годиться для цієї мети, оскільки власник - root, а sudoers не може писати у папку з 755
BlueStarry

Ще в 2015 році я впевнений, що Ubuntu використовував adduserі addgroup, а не useradd, groupaddі т. Д. Це sudo chown root.root /ubuntu/просто неправильно. Ви створили каталог за допомогою sudo, тому право власності вже є root. Це слід використовувати ubuntu.sftp_users. Нарешті, якщо ви спочатку створили його як належить власнику ubuntu, все з " Увімкнення користувача root ..." буде зайвим.
Ауспекс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.