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

Правильная установка прав пользователей через SSH

Я застреваю с разрешениями пользователей в стеке LAMP (используя Digital Ocean, если это важно). Вот моя установка.

Пользователь dev имеет следующие группы: dev www-data

В /var/www папка была установлена ​​так, что владелец www-data:www-data, это выглядит так:

 drwxrwxr-x  3 www-data www-data 4096 Mar 30 17:41 www

Если я использую dev пользователь в sftp, все выглядит хорошо, но если я затем загружу файл, новый файл будет владеть dev:dev.

Это становится проблемой, когда у меня появляется новый пользователь по имени dev2 который также работает в том же каталоге, поскольку они не могут удалять или перезаписывать файлы, принадлежащие dev.

К сожалению, мой опыт работы с пользователями ограничен использованием cPanel, где я могу создать несколько пользователей FTP, у которых нет этой проблемы доступа / перекрытия. Как это сделать через терминал?

В g+s бит для каталогов будет налагать группу родительского каталога (стиль BSD) вместо группы процесса по умолчанию (стиль SysV). Итак, что-то вроде

chmod g+s /var/www

(а также в любых подкаталогах) должны вызывать www-data группа, которая будет сохранена при создании новых файлов в ней. Другим вариантом может быть использование так называемых списков ACL POSIX (см. setfacl(1)), что, хотя и более сложно, может позволить нескольким группам получить доступ к файлам. (Вы можете в конечном итоге получить некоторые задания cron для аудита / установки разрешений, независимо от того, или управление конфигурацией также может обеспечить разрешения в дереве каталогов, в зависимости от того, сколько проблем вы хотите решить.)