Создайте группу с именем sftpusers. Только пользователи, принадлежащие к этой группе, будут автоматически ограничены в среде chroot SFTP в этой системе.
# groupadd sftpusers
Допустим, вы хотите создать пользователя-гостя, которому должно быть разрешено только выполнение SFTP в среде chroot, и не должно быть разрешено выполнять SSH.
Следующая команда создает guestuser, назначает этого пользователя группе sftpusers, make / incoming в качестве домашнего каталога, устанавливает / sbin / nologin в качестве оболочки (что не позволяет пользователю использовать ssh и получить доступ к оболочке).
# useradd -g sftpusers -d /incoming -s /sbin/nologin guestuser
# passwd guestuser
Убедитесь, что пользователь был создан правильно.
# grep guestuser /etc/passwd
guestuser:x:500:500::/incoming:/sbin/nologin
Если вы хотите изменить существующего пользователя и сделать его только пользователем sftp и поместить его в тюрьму chroot sftp, сделайте следующее:
# usermod -g sftpusers -d /incoming -s /sbin/nologin john
В соответствующем примечании, если вам нужно перенести файлы из Windows в Linux, используйте любой из клиентов sftp, упомянутых в этом списке лучших 7 клиентов sftp.
Вы должны указать sshd на использование внутреннего sftp для sftp (вместо sftp-сервера по умолчанию).
Измените файл / etc / ssh / sshd_config и закомментируйте следующее строка:
#Subsystem sftp /usr/libexec/openssh/sftp-server
Затем добавьте следующую строку в файл / etc / ssh / sshd_config
Subsystem sftp internal-sftp
. Она должна выглядеть так:
# grep sftp /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Вы хотите поместить только определенных пользователей (т.е. пользователей, которые принадлежат к группе sftpusers) в среду chroot jail. Добавьте следующие строки в конец / etc / ssh / sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
В приведенном выше примере:
Вы должны указать sshd на использование внутреннего sftp для sftp (вместо sftp-сервера по умолчанию).
Измените файл / etc / ssh / sshd_config и закомментируйте следующее строка:
#Subsystem sftp /usr/libexec/openssh/sftp-server
Затем добавьте следующую строку в файл / etc / ssh / sshd_config
Subsystem sftp internal-sftp
. Она должна выглядеть так:
# grep sftp /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Вы хотите поместить только определенных пользователей (т.е. пользователей, которые принадлежат к группе sftpusers) в среду chroot jail. Добавьте следующие строки в конец / etc / ssh / sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
В приведенном выше примере:
Вы должны указать sshd на использование внутреннего sftp для sftp (вместо sftp-сервера по умолчанию).
Измените файл / etc / ssh / sshd_config и закомментируйте следующее строка:
#Subsystem sftp /usr/libexec/openssh/sftp-server
Затем добавьте следующую строку в файл / etc / ssh / sshd_config
Subsystem sftp internal-sftp
. Она должна выглядеть так:
# grep sftp /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Вы хотите поместить только определенных пользователей (т.е. пользователей, которые принадлежат к группе sftpusers) в среду chroot jail. Добавьте следующие строки в конец / etc / ssh / sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
В приведенном выше примере:
Измените файл / etc / ssh / sshd_config и закомментируйте следующую строку:
#Subsystem sftp /usr/libexec/openssh/sftp-server
Затем добавьте следующую строку в файл / etc / ssh / sshd_config
Subsystem sftp internal-sftp
Он должен выглядеть следующим образом:
# grep sftp /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Вы хотите поместить только определенных пользователей (т.е. пользователей, которые принадлежат к группе sftpusers) в среду chroot jail. Добавьте следующие строки в конец / etc / ssh / sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
В приведенном выше примере:
Измените файл / etc / ssh / sshd_config и закомментируйте следующую строку:
#Subsystem sftp /usr/libexec/openssh/sftp-server
Затем добавьте следующую строку в файл / etc / ssh / sshd_config
Subsystem sftp internal-sftp
Он должен выглядеть следующим образом:
# grep sftp /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Вы хотите поместить только определенных пользователей (т.е. пользователей, которые принадлежат к группе sftpusers) в среду chroot jail. Добавьте следующие строки в конец / etc / ssh / sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
В приведенном выше примере:
Поскольку мы указали / sftp как ChrootDirectory выше, создайте этот каталог (который является эквивалентом вашего обычного каталога / home).
# mkdir /sftp
Теперь в / sftp создайте отдельные каталоги для пользователей, которые являются частью группы sftpusers. т.е. пользователи, которым будет разрешено только выполнять sftp и будут находиться в среде chroot.
# mkdir /sftp/guestuser
Итак, / sftp / guestuser эквивалентен / для гостевого пользователя. Когда guestuser sftp входит в систему и выполняет «cd /», они будут видеть только содержимое каталогов в «/ sftp / guestuser» (а не реальный / системы). В этом сила chroot.
Итак, в этом каталоге / sftp / guestuser создайте любой подкаталог, который вы хотите, чтобы пользователь видел. Например, создайте входящий каталог, в котором пользователи могут sftp свои файлы.
# mkdir /sftp/guestuser/incoming
Для правильной работы chroot необходимо убедиться, что соответствующие разрешения настроены правильно в каталоге, который вы только что создали.
Установите принадлежность пользователю и сгруппируйте его в группу sftpusers, как показано ниже.
# chown guestuser:sftpusers /sftp/guestuser/incoming
Разрешение для входящего каталога будет выглядеть следующим образом.
# ls -ld /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
Разрешение будет выглядеть следующим образом для каталога / sftp / guestuser
# ls -ld /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
# ls -ld /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
Перезапустите sshd:
# service sshd restart
Тестируйте среду chroot sftp. Как вы видите ниже, когда gusetuser выполняет sftp и выполняет «cd /», они будут видеть только входящий каталог.
# sftp guestuser@thegeekstuff.com
guestuser@thegeekstuff's password:
sftp> pwd
Remote working directory: /incoming
sftp> cd /
sftp> ls
incoming
Когда guestuser передает любые файлы в каталог / incoming из sftp, они действительно будут находиться в / sftp / guestuser / incoming в системе.
вам необходимо убедиться, что соответствующие разрешения настроены правильно для каталога, который вы только что создали выше.Установите принадлежность пользователю и сгруппируйте его в группу sftpusers, как показано ниже.
# chown guestuser:sftpusers /sftp/guestuser/incoming
Разрешение будет выглядеть следующим образом для входящий каталог.
# ls -ld /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
Разрешение будет выглядеть следующим образом для каталога / sftp / guestuser
# ls -ld /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
# ls -ld /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
Перезапустите sshd:
# service sshd restart
Тестируйте среду chroot sftp. Как вы видите ниже, когда gusetuser выполняет sftp и выполняет «cd /», они будут видеть только входящий каталог.
# sftp guestuser@thegeekstuff.com
guestuser@thegeekstuff's password:
sftp> pwd
Remote working directory: /incoming
sftp> cd /
sftp> ls
incoming
Когда guestuser передает любые файлы в каталог / incoming из sftp, они действительно будут находиться в / sftp / guestuser / incoming в системе.
вам необходимо убедиться, что соответствующие разрешения правильно настроены в каталоге, который вы только что создали.Установите принадлежность пользователю и сгруппируйте его в группу sftpusers, как показано ниже.
# chown guestuser:sftpusers /sftp/guestuser/incoming
Разрешение будет выглядеть следующим образом для входящий каталог.
# ls -ld /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
Разрешение будет выглядеть следующим образом для каталога / sftp / guestuser
# ls -ld /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
# ls -ld /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
Перезапустите sshd:
# service sshd restart
Тестируйте среду chroot sftp. Как вы видите ниже, когда gusetuser выполняет sftp и выполняет «cd /», они будут видеть только входящий каталог.
# sftp guestuser@thegeekstuff.com
guestuser@thegeekstuff's password:
sftp> pwd
Remote working directory: /incoming
sftp> cd /
sftp> ls
incoming
Когда guestuser передает любые файлы в каталог / incoming из sftp, они действительно будут находиться в / sftp / guestuser / incoming в системе.
и сгруппируйте его в группу sftpusers, как показано ниже.# chown guestuser:sftpusers /sftp/guestuser/incoming
Разрешение будет выглядеть следующим образом для входящего каталога.
# ls -ld /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
Разрешение будет выглядеть следующим образом для каталога / sftp / guestuser
# ls -ld /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
# ls -ld /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
Перезапустите sshd:
# service sshd restart
Тестируйте среду chroot sftp. Как вы видите ниже, когда gusetuser выполняет sftp и выполняет «cd /», они будут видеть только входящий каталог.
# sftp guestuser@thegeekstuff.com
guestuser@thegeekstuff's password:
sftp> pwd
Remote working directory: /incoming
sftp> cd /
sftp> ls
incoming
Когда guestuser передает любые файлы в каталог / incoming из sftp, они действительно будут находиться в / sftp / guestuser / incoming в системе.
и сгруппируйте его в группу sftpusers, как показано ниже.# chown guestuser:sftpusers /sftp/guestuser/incoming
Разрешение будет выглядеть следующим образом для входящего каталога.
# ls -ld /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
Разрешение будет выглядеть следующим образом для каталога / sftp / guestuser
# ls -ld /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
# ls -ld /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
Перезапустите sshd:
# service sshd restart
Тестируйте среду chroot sftp. Как вы видите ниже, когда gusetuser выполняет sftp и выполняет «cd /», они будут видеть только входящий каталог.
# sftp guestuser@thegeekstuff.com
guestuser@thegeekstuff's password:
sftp> pwd
Remote working directory: /incoming
sftp> cd /
sftp> ls
incoming
Когда guestuser передает любые файлы в каталог / incoming из sftp, они действительно будут находиться в / sftp / guestuser / incoming в системе.