Создайте пользователя в Linux, который может получить доступ только к определенной папке

Мне нужно создать пользователя в Linux, используя putty, который может получить доступ только к определенной папке. Я создал пользователя с помощью useradd, но пользователь может получить доступ ко всем папкам в основной учетной записи.

Вам нужно установить ssh chroot jail.

Смотрите эту инструкцию.

Как и спросил @Romeo , я включил здесь важные части со связанной страницы.

Создать каталог для пользователя:

# mkdir -p /home/test

Этот каталог должен содержать необходимые файлы и каталоги для поддержки сеанса пользователя, для этого требуются как минимум оболочки, обычно sh, и базовые / dev узлы, такие как устройства null, zero, stdin, stdout, stderr и tty:

# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}

Изучите два числа из списка – есть старшие и младшие числа. Создайте команду / dev с mknod ( не копируйте и не вставляйте команды ниже, это только пример, используйте правильные числа):

 # mkdir -p /home/test/dev/ # cd /home/test/dev/ # mknod -m 666 null c 1 3 # mknod -m 666 tty c 5 0 # mknod -m 666 zero c 1 5 # mknod -m 666 random c 1 8` 

Установить разрешения:

 # chown root:root /home/test # chmod 0755 /home/test # ls -ld /home/test 

Создайте каталог bin и скопируйте в него файлы / bin / bash:

 # mkdir -p /home/test/bin # cp /bin/bash /home/test/bin/ 

Определите bash необходимые общие библиотеки и скопируйте их ( не копируйте и не вставляйте команды ниже, это только пример) в директорию lib:

 # ldd /bin/bash # mkdir -p /home/test/lib64 # cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/ 

Создайте пользователя SSH с помощью команды useradd и установите для него безопасный пароль:

 # useradd tecmint # passwd tecmint 

Создайте каталог общих настроек тюрьмы chroot, / home / test / etc и скопируйте обновленные файлы учетной записи (/ etc / passwd и / etc / group) в этот каталог:

 # mkdir /home/test/etc # cp -vf /etc/{passwd,group} /home/test/etc/ 

Откройте файл sshd_config и добавьте строки ниже в файл.

 # vi /etc/ssh/sshd_config #define username to apply chroot jail to Match User tecmint #specify chroot jail ChrootDirectory /home/test 

Сохраните файл, выйдите и перезапустите SSHD:

  # systemctl restart sshd 

Проверьте, работает ли установка chroot jail как ожидалось. Теперь пользователь может выполнять только команды bash и его встроенные команды, такие как (pwd, history, echo и т. Д.).

  # ssh tecmint@192.168.0.10 

Создайте домашний каталог для пользователя SSH:

 # mkdir -p /home/test/home/tecmint # chown -R tecmint:tecmint /home/test/home/tecmint # chmod -R 0700 /home/test/home/tecmint 

Установите несколько пользовательских команд, таких как ls, date, mkdir, в каталог bin:

 # cp /bin/ls /home/test/bin/ # cp /bin/date /home/test/bin/ # cp /bin/mkdir /home/test/bin/ 

Проверьте общие библиотеки на наличие команд выше и переместите их в каталог chrooted jail библиотеки:

 # ldd /bin/ls # cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/ 

Это конец . Но если вам нужно разрешить только соединения sftp, добавьте строку ниже в файл / etc / ssh / sshd_config:

 #Enable sftp to chrooted jail ForceCommand internal-sftp 

Сохраните файл и выйдите. Затем перезапустите службы SSHD:

 # systemctl restart sshd