В този урок ще обсъдим как да ограничим SFTP потребители към техните домашни директории или конкретни директории. Това означава, че потребителят има достъп само до съответната домашна директория, а не до цялата файлова система.
Ограничаването на домашните директории на потребителите е жизненоважно, особено в среда на споделен сървър, така че неоторизиран потребител да не проникне във файловете и папките на другия потребител.
Важно: Моля, имайте предвид също, че целта на тази статия е да осигури само SFTP достъп, а не SSH влизания от След тази статия ще имате разрешения за прехвърляне на файлове, но нямате право да извършвате отдалечен SSH сесия.
Предложено четиво:Ограничете достъпа на потребителите на SSH до определени директории с помощта на Chrooted Jail
Най -простият начин да направите това е да създадете хромирана затворна среда за SFTP достъп. Този метод е еднакъв за всички Unix/Linux операционни системи. Използвайки хротирана среда, можем да ограничим потребителите до тяхната домашна директория или до конкретна директория.
В този раздел ще създадем нова група, наречена sftpgroup и присвояване на правилна собственост и разрешения на потребителските акаунти. Има два избора да ограничите потребителите до домашни или конкретни директории, ще видим и двете посоки в тази статия.
Нека ограничим например съществуващия потребител tecmint
, в домашната му директория на име /home/tecmint
. За това трябва да създадете нов sftpgroup група, използваща groupadd команда, както е показано:
# groupadd sftpgroup.
След това задайте потребителя „Tecmint“ да се sftpgroup група.
# usermod -G sftpgroup tecmint.
Можете също да създадете нов потребител, като използвате командата useradd, например сентил
и задайте потребителя на sftpusers група.
# adduser senthil -g sftpgroup -s /sbin /nologin. # passwd tecmint.
Отворете и добавете следните редове към /etc/ssh/sshd_config
конфигурационен файл.
Подсистема sftp internal-sftp Match Group sftpgroup ChrootDirectory /home ForceCommand internal-sftp X11 Препращане без AllowTcpПрепращане не.
Запазете и излезте от файла, рестартирайте sshd услугата, за да влязат в сила новите промени.
# systemctl рестартирайте sshd. ИЛИ. # услуга sshd рестартиране.
Ако синхронизирате няколко потребители в една и съща директория, трябва да промените разрешенията на всеки от тях домашната директория на потребителя, за да попречи на всички потребители да разглеждат домашните директории един на друг потребители.
# chmod 700 /home /tecmint.
Сега е време да проверите данните за вход от локална система. Опитайте да премахнете вашата отдалечена система от вашата локална система.
# ssh [защитен имейл]
Тук,
[защитен имейл]'s password: Не може да се chdir към начална директория /home /tecmint: Няма такъв файл или директория. Тази услуга позволява само sftp връзки. Връзката с 192.168.1.150 е затворена.
След това влезте в отдалечена система, използвайки SFTP.
# sftp [защитен имейл]
[защитен имейл]'s password: Свързан към 192.168.1.150. sftp>
Нека проверим текущата работна директория:
sftp & gt pwd Отдалечена работна директория: / sftp & gt ls tecmint
Тук, tecmint
е началната директория. CD към tecmint директория и създайте файловете или папките по ваш избор.
sftp & gt cd tecmint Отдалечена работна директория: / sftp & gt mkdir тест tecmint
В предишния ни пример ние ограничаваме съществуващите потребители до домашната директория. Сега ще видим как да ограничим нов потребител до персонализирана директория.
Създайте нова група sftpgroup
.
# groupadd sftpgroup.
След това създайте директория за SFTP група и задайте разрешения за root потребителя.
# mkdir -p /sftpusers /chroot. # chown root: root/sftpusers/chroot/
След това създайте нови директории за всеки потребител, до които те ще имат пълен достъп. Например, ние ще създадем tecmint
user и това е нова домашна директория с правилно групово разрешение, използвайки следните серии команди.
# adduser tecmint -g sftpgroup -s /sbin /nologin. # passwd tecmint. # mkdir/sftpusers/chroot/tecmint. # chown tecmint: sftpgroup/sftpusers/chroot/tecmint/ # chmod 700/sftpusers/chroot/tecmint/
Променете или добавете следните редове в края на файла:
#Subsystem sftp/usr/libexec/openssh/sftp-сървър. Подсистема sftp internal-sftp Match Group sftpgroup ChrootDirectory/sftpusers/chroot/ForceCommand internal-sftp X11 Препращане без AllowTcp Препращане не.
Запазете и излезте от файла. Рестартирайте услугата sshd, за да влязат в сила запазените промени.
# systemctl рестартирайте sshd. ИЛИ. # услуга sshd рестартиране.
Това е, можете да проверите, като влезете във вашия отдалечен SSH и SFTP сървър, като използвате горепосочената стъпка на адрес Проверете SSH и SFTP вход.
Имайте предвид, че този метод ще деактивира достъпа до обвивката, т.е. не можете да получите достъп до оболочната сесия на отдалечената система, използвайки SSH. Можете да получите достъп само до отдалечените системи чрез SFTP и да прехвърляте файлове към и от локалните и отдалечените системи.
Сега знаете как да ограничите домашните директории на потребителите, като използвате среда Chroot в Linux. Ако намирате това за полезно, споделете тази статия в социалните си мрежи и ни уведомете в секцията за коментари по -долу, ако има други методи за ограничаване на домашните директории на потребителите.