Вопрос или проблема
Привет.. Я немного запутался в правах доступа
У меня есть работающий SFTP-сервер с chroot jail для /srv/sftp, внутри находится /data со следующими правами
drwxr-x---. 5 UserX sftponly 4096 Окт 1 07:37 data
Внутри data находятся две директории:
drwxrwx---. 2 UserX gr_user1 4096 Окт 3 16:21 user1
drwxrwx---. 3 UserX gr_user2 4096 Окт 4 13:49 user2
Моя проблема в том, что user1 может получить доступ к директории user2, что не должно быть возможным с учетом прав доступа. Надеюсь, я объяснил всё максимально ясно. Большое спасибо
Ответ или решение
Проблема с правами доступа в вашем случае возникает из-за конфигурации прав доступа к директориям в chroot jail. Ваша структура каталогов и их права имеют значение, когда речь идет о изоляции пользователей в SFTP-сервере с использованием chroot.
Проблема заключается в том, что, несмотря на то, что у вас установлены права доступа для каталогов user1
и user2
, которые предполагают, что пользователи не должны видеть друг друга, в этом случае это не работает. Пользователь user1
может видеть директорию user2
, потому что права доступа на уровень выше (в данном случае на директорию data
) позволяют это.
Решение проблемы
-
Проверьте группы пользователей:
Убедитесь, что пользователиuser1
иuser2
не находятся в одной группе, которая имеет доступ к обеим директориям. У вас установлены следующие группы:- Директория
user1
принадлежит группеgr_user1
. - Директория
user2
принадлежит группеgr_user2
.
Убедитесь, что
user1
не является членом группыgr_user2
, аuser2
не является членом группыgr_user1
. Если они являются членами одной группы, они могут иметь доступ друг к другу. - Директория
-
Измените права доступа на родительскую директорию:
Права доступа на директориюdata
у вас установлены какdrwxr-x---
, что позволяет группеsftponly
читать и выполнять, а пользователюUserX
— полный доступ. Если пользовательUserX
имеет права доступа (вход) в директориюdata
, он также может видеть содержимое подкаталогов, даже если у него нет прав на их чтение. Для решения этой проблемы вам нужно изменить права доступа на:chmod 750 /srv/sftp/data
Это даст
UserX
доступ на чтение и выполнение, а группеsftponly
– только выполнение. -
Убедитесь, что у вас правильно настроены права на подкаталоги:
Для каждого из подкаталоговuser1
иuser2
установите права на:chmod 700 /srv/sftp/data/user1 chmod 700 /srv/sftp/data/user2
Это позволит только соответствующему пользователю иметь доступ к своей директории, а другие пользователи не смогут видеть их или даже перечислять содержимое.
-
Перезапустите SFTP-сервер:
После изменения прав доступа не забудьте перезапустить SFTP-сервер (или соответствующий демон), чтобы настройки вступили в силу. -
Проверка:
Проверьте права доступа, выполнив командуls -l
в/srv/sftp/data
, и убедитесь, что они настроены правильно. Попробуйте зайти пользователемuser1
и пользователемuser2
и убедитесь, что они не могут видеть директории друг друга.
Таким образом, с изменением прав вы должны решить проблему доступа между пользователями в вашей настройке SFTP.