У меня есть Linux-сервер, который я хочу использовать для обмена файлами между пользователями в моей компании. Пользователи будут получать доступ к машине с помощью sftp или защищенной оболочки.
Вот что у меня есть:
cd /home ls -l drwxrwsr-x 5 userA staff 4096 Jul 22 15:00 shared (other listings omitted)
Я хочу, чтобы все пользователи в группе персонала могли создавать, изменять, удалять любые файлы и / или каталоги в общей папке. Я вообще не хочу, чтобы кто-то еще имел доступ к папке.
У меня есть:
Добавили пользователей в группу персонала, изменив / etc / group и запустив grpconv для обновления / etc / gshadow
Запустите chown -R userA.staff / home / shared
Запустите 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 на всякий случай вы все еще в лабиринте.