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

Раздайте серверные аккаунты веб-мастерам

Я создаю систему для нескольких веб-мастеров для хранения и обслуживания своих веб-сайтов. У них есть свои учетные записи Linux и домашние каталоги. Их папки public_html связаны через ln -s команда в html-каталог веб-сервера /usr/share/nginx/html/ так что они видны в интернете.

Но пользователи могут смотреть домашние папки других пользователей. Я бы хотел запретить им смотреть папки, которые им не принадлежат.

Как его получить?

Вот информация о привилегиях пользователя.

abc@localhost:/home/gameboy$ sudo namei -mo /home/abc/public_html/info.php 
[sudo] password for abc: 
f: /home/abc/public_html/info.php
 drwxr-xr-x root root /
 drwxr-xr-x root root home
 drwxr-xr-x abc  abc  abc
 drwxr-xr-x abc  abc  public_html
 -rw-r--r-- abc  abc  info.php
abc@localhost:/home/gameboy$ id abc
uid=1002(abc) gid=1002(abc) grupy=1002(abc),27(sudo)
abc@localhost:/home/gameboy$ 

Я вижу, что пользователь abc является членом sudo группа. Это означает (по крайней мере, в системах Ubuntu), что этот пользователь может выполнять команды с помощью sudo (получить root-доступ).

Если это относится ко всем пользователям, о которых вы говорите, то вы не можете запретить им доступ к чужим файлам. Пользователь может просто стать пользователем root и делать все, что он / она хочет.

Если мы пропустим этот пункт, вам необходимо установить разрешения для каждого файла / папки так, чтобы он был доступен для чтения / записи только пользователю и доступен для чтения только определенной группе, например www-data чтобы веб-сервер имел к ним доступ (chmod 750 для папок и chmod 740 для файлов).