Проблемы с разрешениями в Chroot jail

Вопрос или проблема

Привет.. Я немного запутался в правах доступа

У меня есть работающий 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) позволяют это.

Решение проблемы

  1. Проверьте группы пользователей:
    Убедитесь, что пользователи user1 и user2 не находятся в одной группе, которая имеет доступ к обеим директориям. У вас установлены следующие группы:

    • Директория user1 принадлежит группе gr_user1.
    • Директория user2 принадлежит группе gr_user2.

    Убедитесь, что user1 не является членом группы gr_user2, а user2 не является членом группы gr_user1. Если они являются членами одной группы, они могут иметь доступ друг к другу.

  2. Измените права доступа на родительскую директорию:
    Права доступа на директорию data у вас установлены как drwxr-x---, что позволяет группе sftponly читать и выполнять, а пользователю UserX — полный доступ. Если пользователь UserX имеет права доступа (вход) в директорию data, он также может видеть содержимое подкаталогов, даже если у него нет прав на их чтение. Для решения этой проблемы вам нужно изменить права доступа на:

    chmod 750 /srv/sftp/data

    Это даст UserX доступ на чтение и выполнение, а группе sftponly – только выполнение.

  3. Убедитесь, что у вас правильно настроены права на подкаталоги:
    Для каждого из подкаталогов user1 и user2 установите права на:

    chmod 700 /srv/sftp/data/user1
    chmod 700 /srv/sftp/data/user2

    Это позволит только соответствующему пользователю иметь доступ к своей директории, а другие пользователи не смогут видеть их или даже перечислять содержимое.

  4. Перезапустите SFTP-сервер:
    После изменения прав доступа не забудьте перезапустить SFTP-сервер (или соответствующий демон), чтобы настройки вступили в силу.

  5. Проверка:
    Проверьте права доступа, выполнив команду ls -l в /srv/sftp/data, и убедитесь, что они настроены правильно. Попробуйте зайти пользователем user1 и пользователем user2 и убедитесь, что они не могут видеть директории друг друга.

Таким образом, с изменением прав вы должны решить проблему доступа между пользователями в вашей настройке SFTP.

Оцените материал
Добавить комментарий

Капча загружается...