Как создать пользователя 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