Общий хостинг, остановить пользователя, удаляющего файл .html?

351
Kal

Привет, ребята. Я создал небольшой общий хостинг для друзей.

Я установил права доступа к файлу chmod

chmod 711 /home  chmod 711 /home/testuser  chmod 755 /home/testuser/public_html  chmod o+r /home/testuser/public_html/index.htm  

Как мне остановить пользователя, подключенного к его собственному ftp, от удаления файла html.htm, а также с общедоступным каталогом, установленным в chmod 755. Я обнаружил, что он ничего не может сделать в каталоге, например, загрузить / удалить?

Дополнительная информация: Я бегал

setsebool -P httpd_enable_homedirs true chcon -R -t httpd_sys_content_t /home/testuser/public_html 

но никакого эффекта?

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

3 ответа на вопрос

1
terdon

Who is the user connecting as? The way you have it set up, only the owner can write to public_html.

Also, you currently have it set up so that users can enter /home/testuser but not read it. You might want something like :

chmod 711 /home chmod 755 /home/testuser chmod 777 /home/testuser/public_html chmod 644 /home/testuser/public_html/index.htm chown root /home/testuser/public_html/index.htm 
1
alexis

Традиционные разрешения Unix означают, что если пользователь может создавать файлы в каталоге, он также может удалять файлы в нем - даже если сам файл защищен от чтения и не принадлежит им. Таким образом, вы не можете защитить html.htm(что бы это ни было), если он находится в каталоге, к которому у них должен быть доступ на запись / выполнение. Возможно, ACL могут помочь, как предполагает @vonbrand (но я не знаком с ними, и @vonbrand не обещает, что это сработает).

  1. Нет необходимости делать каталог глобально доступным для записи или глобально исполняемым, но вам нужно убедиться, что ваш демон веб-сервера имеет доступ для чтения к файлам. (Это, вероятно, работает как группа - www-dataно проверить). Поэтому убедитесь, что владелец каталога совпадает с uid, который пользователь получает при подключении, и вы можете сохранить его в режиме 750.

  2. Если вам нужно разрешить нескольким uid записывать в один и тот же каталог, вам нужно включить доступ для групповой записи ( g+w). В этом случае я бы использовал группу, отличную от www-data, и предоставил бы доступ только для чтения apache как «прочее». Другими словами, режим 775.

  3. Также следите за вашим umask, который контролирует права доступа к новым файлам, созданным пользователями. Если у вас есть отдельные учетные записи, используйте umask 022для соответствия. Если у вас есть общий каталог группы, используйте umask, 002чтобы пользователи могли редактировать файлы друг друга. (Так как они смогут удалять и заменять файлы, нет смысла их защищать).

0
vonbrand

Look for ACLs, that might solve your problem. Relevant manual entries are acl(5), setfacl(1), and getfacl(1). Support depends on the filesystem, though.

Не могли бы вы расширить свой ответ с деталями, а не только ссылки? Canadian Luke 11 лет назад 0
@Luke - Что это за ссылки :-) Ramhound 11 лет назад 0
@Ramhound Я не видел таблицы стилей в своей камере, когда я опубликовал это Canadian Luke 11 лет назад 0
@Luke - я почти уверен, что есть ссылки. Ramhound 11 лет назад 0

Похожие вопросы