6

Я пытаюсь предоставить клиенту доступ SFTP к корневому каталогу своего сайта на моем сервере (Ubuntu 10.10), чтобы они могли сами управлять своим сайтом.

Хотя мне удалось посадить пользователя в каталог и предоставить ему доступ по SFTP; им разрешено создавать и удалять новые файлы только в подкаталогах (каталогах, которыми они владеют). Это означает, что я должен предоставить им доступ к родительскому каталогу в корне их сайта.

До сих пор я следовал инструкциям в этом руководстве следующим образом:

addgroup filetransfer
usermod -G filetransfer username
chown root:root /home/username
chmod 755 /home/username
cd /home/username
mkdir docs public_html
chown username:username *

Как я могу ограничить их до корня их сайта (например, public_html), при этом предоставляя им возможность создавать и удалять файлы. Все учебники, которые я прочитал, предполагают, что корень должен быть владельцем домашнего каталога пользователя, что не позволяет ему иметь доступ для записи в этом каталоге.

Я относительно новичок в управлении своим собственным сервером, поэтому любые советы будут очень благодарны.

Большое спасибо.

2 ответа2

1

Вы должны сказать, что вы сделали именно для этого. Если вы еще этого не сделали, вам, вероятно, следует попробовать использовать chroot (советы здесь: http://www.unixwiz.net/techtips/chroot-practices.html).

Для решения вашей конкретной проблемы вам необходимо предоставить пользователям разрешение на запись в их корневую папку. Либо установите их в качестве владельцев и убедитесь, что разрешение на запись установлено. Я не уверен, почему это была бы такая плохая идея:

# chown someuser /user/root/folder
# chmod u+w /user/root/folder

Или, если вы хотите сохранить root как владельца, вы можете сделать это с группой:

# addgroup somegroup
# adduser someuser somegroup
# chgrp somegroup /user/root/folder
# chmod g+w /user/root/folder

РЕДАКТИРОВАТЬ

Как отмечается в приведенной ссылке в комментариях, похоже, что root должен быть владельцем соответствующего каталога, чтобы chroot работал правильно. Но, похоже, ничто не мешает изменить группу. Так что, следуя именам этого урока, это может помочь:

# chown root:filetransfer /home/username
# chmod 775 /home/username

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

РЕДАКТИРОВАТЬ 2

Нет, этого недостаточно. Может быть, это просто неосуществимо.

0

Для системы Ubuntu -

Я использовал эту команду с этими аргументами:

sudo useradd -d /home/node -m node

А затем проверил его с этим именем пользователя и sftp в ssh - я успешно заключил это имя в тюрьму, и этому имени пользователя был присвоен скелет bin/shell, но с ограниченной функцией.

Это самое простое и лучшее решение, с которым я столкнулся всего несколько ночей назад.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .