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

Лучшие практики для пользователей / групп на серверах Debian

На моем сервере / vps после того, как я изначально получил учетные данные, я:

adduser meder
visudo

в visudo в самом низу:

meder    ALL=(ALL) ALL

И с тех пор я использую meder, вместе с sudo команда. Это примерно то, как я должен это делать?

И по теме создания такой группы пользователей, чтобы www-data и meder может получить доступ к одним и тем же файлам, какие конкретные привилегии я должен предоставить, как мне настроить его, чтобы оба могли касаться одних и тех же файлов (было бы здорово, если бы был предоставлен образец кода, поскольку я еще не так бегло).

Да, добавление нового пользователя без полномочий root, а затем выполнение sudo от него - это «лучшая практика». Если у вас есть много команд, которые нужно запустить одновременно, многие люди говорят запускать sudo su -. Однако у sudo есть опция -i, которая используется для предоставления вам корневой оболочки.

Кроме того, если вы хотите отключить интерактивный вход для root, вы можете изменить пароль в /etc/shadow к '!'.

Чтобы два пользователя имели доступ к одним и тем же файлам, вы должны создать новую группу (назовем ее 'shared'):

$ sudo groupadd shared

Затем вы должны добавить в него своих пользователей:

$ sudo usermod -a -G shared meder
$ sudo usermod -a -G shared www-data

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

$ sudo chgrp share [path-to-file]

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

$ sudo chmod g+w [path-to-file]

или

$ sudo chmod 775 [path-to-dir]

Читать man chmod для описания различных синтаксисов разрешений.

Наконец, вы часто захотите установить групповой бит, чтобы новые создаваемые файлы создавались с группой, владеющей каталогом, вместо вашей группы по умолчанию. Например, когда вы создаете пользователя meder, useradd создаст «личную группу пользователей», которая будет называться «meder», и пользователь «meder» будет единственным участником. Это означает, что когда вы создаете новые файлы, они будут принадлежать meder: meder (пользователь meder и группа meder). Если вы хотите, чтобы они принадлежали общей группе, вы должны установить бит идентификатора группы в каталоге. Для этого вам понадобится:

$ sudo chown g+s [path-to-dir]

Полный пример:

$ sudo -i
# mkdir /opt/shared
# groupadd shared
# usermod -a -G shared meder
# usermod -a -G shared www-data
# chgrp shared /opt/shared
# chmod 775 /opt/shared
# chmod g+s /opt/shared
# exit

Единственная проблема, с которой я столкнулся, заключается в том, что большинство файлов создаются с разрешениями 755 или 644, что означает, что вам всегда нужно вручную добавлять разрешения группы на запись для файлов в общей папке. Наверное, есть способ обойти это, просто я этого не знаю.

Наконец, вам не нужно создавать общую группу. Вы можете просто добавить «meder» в группу www-data, а остальное проделать с этой группой.

Если www-data - это учетная запись (вероятно, та, под которой работает apache?), То вам нужно либо добавить meder в соответствующую группу в / etc / group, либо вы можете создать новую группу с meder и www-data (с помощью используя groupadd).

После того, как вы это сделаете, при входе в систему вы можете запустить «newgrp», чтобы сделать эту группу «текущей», и тогда все созданные вами файлы будут иметь групповое владение общей группой.

В Debian обычно не нужно беспокоиться о создании www-данных, поскольку в большинстве случаев пакетировщик Debian предоставляет сценарии сопровождающего для автоматизации установки при установке пакетов deb.