Назад | Перейти на главную страницу

Как настроить общий каталог в Linux?

У меня есть Linux-сервер, который я хочу использовать для обмена файлами между пользователями в моей компании. Пользователи будут получать доступ к машине с помощью sftp или защищенной оболочки.

Вот что у меня есть:

cd /home
ls -l
drwxrwsr-x  5 userA         staff      4096 Jul 22 15:00 shared
(other listings omitted)

Я хочу, чтобы все пользователи в группе персонала могли создавать, изменять, удалять любые файлы и / или каталоги в общей папке. Я вообще не хочу, чтобы кто-то еще имел доступ к папке.

У меня есть:

  1. Добавили пользователей в группу персонала, изменив / etc / group и запустив grpconv для обновления / etc / gshadow

  2. Запустите chown -R userA.staff / home / shared

  3. Запустите chmod -R 2775 / home / shared

Теперь пользователи в группе персонала могут создавать новые файлы, но им не разрешено открывать существующие файлы в каталоге для редактирования. Я подозреваю, что это связано с идентификатором основной группы, связанным с каждым пользователем, который по-прежнему настроен как группа, созданная при создании пользователя. Итак, PGID пользователя userA - userA.

Я бы предпочел не менять основную группу пользователей на «персонал», если я могу помочь, но если это самый простой вариант, я бы рассмотрел его.

И, как вариант темы, я хотел бы сделать то же самое с другим каталогом, но также позволить пользователю apache читать файлы в каталоге и обслуживать их.

Как лучше всего это настроить?

То, что у вас есть, действительно выглядит правильным. В каталоге установлен бит setgid, поэтому новые создаваемые файлы должны наследовать staff группа. Тем не менее, они все еще остаются собственностью создателя. Я подозреваю, что проблема в том, что umask для ваших пользователей по умолчанию 022 или даже 077, что означает, что новые файлы, которые они создают, по умолчанию не будут иметь разрешения на групповую запись. Право владения пользователем / группой, но разрешения группы не позволяют другим членам группы записывать (или, возможно, даже читать) файлы.

Выберите пользователя в staff группу и установите umask к 002 или 007, что означает, что новые файлы будут доступны для записи владельцу и группе. Я подозреваю, что это решит проблему:

bash$ umask
0022
bash$ umask 002
bash$ umask
0002

Кроме того, вы отметили, что не хотите никого, кроме staff группа, чтобы иметь какой-либо доступ к каталогу. Вам следует изменить права доступа к каталогу на 2770 для достижения этого, иначе неstaff сможет читать (но не изменять) файлы в каталоге.

На последний вопрос о apache пользователя, самый простой способ - добавить этого пользователя в staff группа.

Проблема в том, что sftp deamon не принимает сценарии входа в систему и предлагает umask, не разрешающий запись в группу.

Чтобы обойти это, создайте сценарий, который устанавливает umask, а затем запускает сервер sftp: cat / usr / lib / openssh / sftp-server-prot umask 02 exec / usr / lib / openssh / sftp-server

Затем отредактируйте ssh / sshd_config, чтобы использовать приведенный выше сценарий оболочки: Подсистема sftp / usr / lib / openssh / sftp-server-prot

Затем перезапустите sshd.

Я согласен с его выводами. О демоне файловой системы FUSE. Я переписал процедуру о том, как легко сделать этот локальный ресурс между пользователями на http://airkayu.com/node/24 на всякий случай вы все еще в лабиринте.