я уже задавал вопросы о предотвращении пользователей удалять определенные ключевые файлы/папки в своем домашнем каталоге, делая что-то вроде так:Возможно ли/желательно иметь пользовательскую домашнюю папку?
/home
└── [-rw-rw-r-- daedalus ] daedalus
├── [-rw-rw-r-- root ] do_not_delete_file.cpp
├── [-rw-rw-r-- root ] do_not_delete_file.html
├── [-rw-rw-r-- root ] do_not_delete_file.php
├── [drwxrwxr-x root ] do_not_delete_folder
│ ├── [-rw-rw-r-- root ] do_not_delete_file.cpp
│ ├── [-rw-rw-r-- root ] do_not_delete_file.html
│ └── [-rw-rw-r-- root ] do_not_delete_file.php
└── [-rw-rw-r-- daedalus ] index.html
Но это не удается, потому что пользователь daedalus
имеет запись, и, следовательно, удаление, разрешения на их собственный /home/daedalus
папка. Таким образом, хотя они не могут изменять, например, do_not_delete_file.php
, они всегда могут удалить его, а затем заменить.
но что, если вместо того, чтобы у меня было что-то вроде этого
/home
└── [-rw-rw-r-- root ] daedalus
├── [-rw-rw-r-- root ] do_not_delete_file.cpp
├── [-rw-rw-r-- root ] do_not_delete_file.html
├── [-rw-rw-r-- root ] do_not_delete_file.php
├── [drwxrwxr-x root ] do_not_delete_folder
│ ├── [-rw-rw-r-- root ] do_not_delete_file.cpp
│ ├── [-rw-rw-r-- root ] do_not_delete_file.html
│ └── [-rw-rw-r-- root ] do_not_delete_file.php
├── [drwxrwxr-x daedalus ] Documents
└── [-rw-rw-r-- root ] index.html
Я предполагаю, что это возможно с небольшим chmod
действием, но он собирается привести ко многим многим проблемам, когда программы, естественно предположить, что они имеют записи разрешения на домашний каталог? Если это плохая идея, могу ли я получить другие предложения относительно того, как справиться с этим.
EDIT: Причина, по которой я задаю этот вопрос, связана с программированием LAMP. Я создаю серию ВХосты, а именно:
www.user1.example.com
www.user2.example.com
- ...
www.userN.example.com
И я хочу DOCROOT быть установлен на:
/home/user1
/home/user2
- ...
/home/userN
Однако, я борюсь с предоставлением слишком много/слишком мало свободы для отдельных пользователей. В простейшем случае мне может понадобиться do_not_delete_folder
, доступ к которому пользователь может получить, но не может изменять/удалять.
Если вы не получите ответа здесь, вы можете попробовать этот вопрос на serverfault.com. – octern
@KenНаконечная причина, по которой я спросил здесь, заключается в том, что это связано с программированием LAMP, я просто не вдавался в подробности здесь. Я отредактирую вопрос – puk
@Ken: Я думаю, что это по теме; по аналогии рассмотрим почтовую программу Qmail, для которой требуется две группы и семь идентификаторов пользователей. Понимание более тонких мер контроля доступа Unix является частью того, что сделало его безопасной системой, которой она является сегодня. Puk создает нечто похожее, для веб-хостинга. Понимание разумных вариантов, доступных ему, является частью построения системы качества. – sarnold