Я недавно установил сервер Ubuntu на свой сервер, чтобы опробовать linux как нового пользователя. Я следовал руководству по настройке веб-сервера, в котором говорилось, что мне нужен chmod 777
каталог веб-сервера, чтобы его можно было записать.
В любом случае, я создал новую учетную запись для одного парня, чтобы он мог видеть некоторые файлы на сервере, которые я поместил в его домашнюю директорию:
adduser francis
После создания аккаунта я проверил, какой у него доступ
groups francis
В нем говорилось: «Фрэнсис: Фрэнсис», поэтому я не думал, что проблема в том, что убунту не включил его в какие-либо группы по умолчанию, что имеет смысл, он создал его без дополнительных разрешений в плане безопасности, так что все в порядке. Неделю спустя, в абсолютном и полном ужасе, я обнаружил, что, хотя он не мог делать такие вещи, как SUDO или возиться с системными каталогами, он имел полный доступ почти ко всему остальному на сервере. Например, он имел полный доступ на чтение / запись к файлам моего веб-сервера в / var / www (и, следовательно, к паролям, хранящимся в файлах конфигурации php и т. Д.), Хотя этот каталог НЕ находится в его домашнем каталоге, и я никогда не добавлял его в какие-либо группы, которые могли бы доступ к этому каталогу, и я не предоставил ему какой-либо специальный доступ к чему-либо когда-либо после выполнения adduser.
Во всяком случае, что здесь происходит? Как мне убить его доступ ко всему важному? Он не должен иметь доступа к таким вещам, как / media или / var / www. Я думал, что новым пользователям по умолчанию препятствуют делать что-либо опасное или шпионить там, где они не должны быть.
Подводя итог, мне нужно только разрешить ему доступ к каталогам, которые я вручную указываю +, к каталогам, которые ему нужны для правильной работы (его домашний каталог, vim, nano и т. Д.)
Спасибо
источник
chmod
другом месте, у вас могут быть другие проблемы.Ответы:
Это как задумано. И хуже. chmod 777 означает ... «Я бы хотел, чтобы владелец, кто-либо из его группы и кто-либо другой имели права на чтение, запись и выполнение»
Что довольно ужасно.
А для веб-сервера 777 не оптимален. 755 (Владелец имеет группу полных разрешений, а другие имеют права на чтение + выполнение) - это стандартное значение по умолчанию, но из того, что вы сказали, вы хотите по крайней мере выполнить чтение-запись или чтение-запись для владельца (пользователя веб-сервера) и, возможно группа, и нет разрешений для пользователя. Есть более полные вопросы о том, какие соответствующие уровни разрешений имеются на сервере, но рассмотрим что-то вроде 640 или 740.
Тем не менее, вы также можете поместить пользователя в его собственный маленький мир - настройку chroot, чтобы держать пользователя в своем собственном пространстве в системе. Для этого есть руководства - например , отличный ответ Оли, который может быть вариантом в зависимости от ваших потребностей.
источник
По сути, это ломается так:
Таким образом, разрешения на чтение только будут равны 4, чтение и запись будут равны 6, чтение и выполнение будут равны 5, а все (чтение, запись, выполнение) равно 7. Таким образом, вы вычисляете значение октета разрешения для владельца, группы владельцев. или все.
При применении этих разрешений
chmod
к файлу или каталогу, вычисленные выше числа применяются следующим образом, каждый из которых содержит октет для владельца, группы и каждого:Поэтому, если бы я хотел дать себе и моей группе права на чтение, запись и выполнение для папки, которой я владел, но я не хотел, чтобы все могли даже прочитать ее, я бы использовал:
Для получения дополнительной информации проверьте страницу руководства для chmod :
источник
chmod ugo+rwx <...>
. Символы стоять ˙U Ser, г Роап, о Ther; г EAD, ш обряде, е х ecute. Вы можете использовать «-» для удаления (например:)chmod go-wx <...>
. Просто отметьте, что это только добавляет или удаляет именно то, что вы печатаете.chmod ugo+rwx <file>; chmod u+rwx <file>
не удаляет доступ для группы / другого.chmod 777
сделал, и именно туда я и направил свои объяснения.Как уже упоминалось, у вас не должно быть разрешений 777
Вот полезный справочный лист, который я использую.
источник
Чтобы поделиться файлами с человеком, которому вы дали логин, вам не нужно ничего делать конкретно. При установке Debian по умолчанию пользователи имеют доступ к домашним каталогам друг друга.
Например,
Разрешения для моего домашнего каталога доступны для чтения (r) и доступа (x) для любого пользователя в моей системе. Только у меня дополнительно есть доступ для записи (w) .
Кроме того, по умолчанию
umask
в Ubuntu такие файлы и каталоги, которые создаются пользователями, по умолчанию доступны для чтения всем пользователям . Вы можете установить ,umask
чтобы ,077
если вы не хотите этого.Что это означает, что в настройке по умолчанию, если пользователь
you
хочет поделиться документом~/README.txt
со мной, тогда ничего неyou
нужно делать. Я могу просто просмотреть это:Я не могу отредактировать или удалить файл, но я могу скопировать его в место, где у меня есть разрешение на запись. Тогда я владею копией:
Существуют веские причины, по которым большая часть системы по умолчанию доступна для чтения всем пользователям, как я объяснил в другом ответе на AskUbuntu . Однако в общей системе может иметь смысл сделать домашние каталоги недоступными для не владельцев:
... так как многие пользователи, очевидно, не знают о настройках по умолчанию - QED ;-). Хотя было бы разумнее, чтобы пользователи знали, что права доступа к файлам не защищают секреты.
источник
В Ubuntu любой пользователь имеет привилегию суперпользователя, добавленную в группу «sudo». Пожалуйста, проверьте, чтобы другие пользователи не были добавлены в эту группу.
Чтобы защитить ваши файлы и каталог от других пользователей, вы можете установить разрешение, как это было предложено г-ном Журманом Гиком в ответе выше.
Вы также можете использовать специальные разрешения для защиты ваших файлов и каталогов от других.
источник