Как уже говорили другие, переименование папки не представляет неотъемлемого риска для содержимого. Но есть другой вид риска, который вы, возможно, захотите рассмотреть.
Существующие процедуры, скрипты, пользовательские -ярлыки и конфигурации, которые ссылаются на исходное расположение, могут быть повреждены этим изменением, и если пути хранятся, например, в базе данных, их обновление может потребовать больших усилий.
Одна вещь, которую вы можете сделать, это создать символическую ссылку для нового имени каталога, но оставить старое имя на некоторое время. Это даст вам время оценить влияние этого изменения. Вы можете временно удалить старое имя, посмотреть, есть ли какие-либо проблемы, и если они есть, просто воссоздать старое имя, чтобы люди могли продолжить работу, пока вы выясняете, что нужно обновить.
Такая команда должна это сделать :ln -s /data /BD_FILES
Это взято из руководства Как настроить sftp-сервер с ограниченными пользователями chroot с ключами ssh упоминается в ответе @HeysusEscobar.
Сделайте это изroot
:
useradd friend # NB: this doesn't create a home dir, see https://askubuntu.com/q/374870
passwd friend # set the password
groupadd sftpusers
mkdir /sftp
mkdir /sftp/friend # this is where he'll be chrooted
mkdir /sftp/friend/home # his home directory
mkdir /sftp/friend/www # for websites
usermod -aG sftpusers friend # aG for append group
chown friend:sftpusers /sftp/friend/home/
chown friend:sftpusers /sftp/friend/www/
usermod -d /sftp/friend/home friend # set as his home directory
Добавьте это к/etc/ssh/sshd_config
:
# Subsystem sftp /usr/lib/openssh/sftp-server # you'll probably need to comment this line
Subsystem sftp internal-sftp -d /home
Match Group sftpusers
ChrootDirectory /sftp/%u
и выполните service sshd restart
. Это все!
Обратите внимание, что:
ssh
, поэтому ничего не изменилось для других пользователей friend
не можетssh
friend
может подключаться черезsftp
PS :если вы хотите сделать веб-сайт friend
доступным в Интернете,вы можете добавить это в конфигурацию Apache:
<VirtualHost *:80>
ServerName friend.example.com
DocumentRoot /sftp/friend/www
php_admin_value "open_basedir" "/sftp/friend"
<Directory />
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Сайт -примечание :даже с open_basedir
выше, не может ли friend
выйти из своей chroot-среды -с помощью PHP или запустить вредоносный код, влияющий на всю файловую систему? Связанный вопрос:Пользователь с chroot/изолированным SFTP по-прежнему может посещать всю файловую систему с помощью PHP
Замена ChrootDirectory /home/friend
на ChrootDirectory /home
помогла, судя по документации:
ChrootDirectory: Specifies the pathname of a directory to chroot(2) to after authentication. All components of the pathname must be root- owned directories that are not writable by any other user or group.
При этом пользователь friend
может снова подключиться к SFTP; не может выйти из /home/
; но все еще может посетить /home/anotheruser/...
, что нежелательно!
Не уверен, какую ОС вы используете, но я использую приведенную ниже ссылку, когда мне нужно настроить пользователей SFTP, заключенных в тюрьму. Это действительно хороший учебник о том, как настроить пользователя SFTP, заключенного в тюрьму.
https://access.redhat.com/solutions/2399571
Затем я монтировал любой каталог bind в каталог chroot, к которому вы хотите предоставить доступ своему другу.