Запретить удаление папки для владельца папки

Давайте предположим, что у меня есть сервер веб-хостинга, работающий в моей системе Ubuntu 13.04. Для каждого покупателя, который хочет разместить веб-сайт на своем сервере, я создаю пользователя и добавляю его в группу под названием «клиенты». Все эти клиенты получают личную папку в моей папке /home/, в которой есть дерево папок, которое не должно быть удалено. Скажем так, одного из моих клиентов зовут Боб. Он получит /home/bob/ в качестве своей личной папки, но эта папка также должна содержать дерево папок, например:

/home/bob/
     |
     |-> /www/
         |
         |-> /bobsdomain.com/
         |              |
         |              |-> /public_html/
         |              |-> /cgi_bin/
         |
         |-> /bobsotherdomain.com/
                        |
                        |-> /public_html/
                        |-> /cgi_bin/

Боб, очевидно, должен быть владельцем /home/bob, потому что иначе Боб не смог бы создать удалить файлы и папки внутри своей домашней папки. Тем не менее, все между /www/ и /public_html/ или /cgi_bin/ никогда не должно быть удалено. Все от /public_html/ или /cgi_bin/ и ниже должно быть выбором Боба, хочет он удалить это или нет.

Чтобы сделать это, могу ли я просто установить папки между /www/ и /public_html/ или /cgi_bin/ как свойство root, или это приведет к тому, что bob не сможет добавить файлы в /public_html/ и /cgi_bin/ папки?
Если это невозможно, каким другим способом я должен это сделать?

3
задан 25 August 2013 в 22:43

2 ответа

Я нашел ответ на свой вопрос. Я разбил папки, которые я не хотел удалять, в root: root, а затем изменил эти папки, используя « sticky bit » (1775 вместо 0775). Таким образом, каждый может добавлять файлы и папки через ftp по своему усмотрению, но они не могут удалить папки, которые я защищал с помощью залипающего бита, так как для этого вам нужно быть владельцем файла или папки.

0
ответ дан 25 August 2013 в 22:43

Вы были на правильном пути. Если Вы хотите предотвратить действия как создание файла и удаление (включая удаление каталогов) затем, у пользователя не может быть доступа для записи к родительской папке. В этом случае, для сохранения /home/<user>/www/<domain>/public_html и /home/<user>/www/<domain>/cgi_bin, у пользователя не может быть доступа для записи к /home/<user>/www/<domain>. Чтобы сделать это, доменные каталоги должны принадлежать кому-то еще и не мировые перезаписываемые. Обратите внимание, что это не должно быть root, также: nobody пользователь должен быть в порядке.

/home/bob
`-- [drwxrwxr-x bob     ]  www
    |-- [drwxrwxr-x nobody  ]  bobsdomain.com
    |   |-- [drwxrwxr-x bob     ]  cgi_bin
    |   `-- [drwxrwxr-x bob     ]  public_html
    `-- [drwxrwxr-x nobody  ]  bobsotherdomain.com
        |-- [drwxrwxr-x bob     ]  cgi_bin
        `-- [drwxrwxr-x bob     ]  public_html
0
ответ дан 25 August 2013 в 22:43

Другие вопросы по тегам:

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