Я хотел бы создать два уровня пользователей для ограничения доступа к SFTP: «родительские» пользователи и «дочерние» пользователи.
Мне нужно, чтобы родительские пользователи имели доступ ко всем каталогам, принадлежащим дочерним пользователям, но при этом дочерние пользователи должны иметь возможность использовать только свои собственные каталоги.
Как это сделать на CentOS 6?
решение1
Поскольку SFTP — это просто FTP через SSH, вы должны иметь возможность сделать это, используя домашние каталоги и группы пользователей. Если вы создали 3 пользователей:
parent
childone
childtwo
Вы можете задать для их домашних каталогов следующую структуру:
/home/parent
/home/parent/childone
/home/parent/childtwo
С разрешениями:
#> chmod -R 771 /home/parent
#> chown parent:testftp /home/parent
#> chown childone:testftp /home/parent/childone
#> chown childtwo:testftp /home/parent/childtwo
Теперь, если parent
пользователь состоит в testftp
группе, а дети — нет, то он parent
должен иметь возможность читать и записывать файлы в своих домашних каталогах, но дети могут изменять только свои собственные.
Я только что провел небольшое тестирование на своем компьютере, и, похоже, все работает отлично. Дайте мне минуту, и я выложу полные команды для настройки.
Полный вывод команды:
$> sudo -i
#> mkdir -p /home/parent/{childone,childtwo}
#> groupadd testftp
#> useradd -d /home/parent -M -G testftp parent
#> useradd -d /home/parent/childone -M childone
#> useradd -d /home/parent/childtwo -M childtwo
#> chmod -R 771 /home/parent/
#> chown parent:testftp /home/parent
#> chown childone:testftp /home/parent/childone
#> chown childtwo:testftp /home/parent/childtwo
Кажется, мне это подходит!