Я недавно установил сервер Ubuntu на своем сервере для испытания Linux как новый пользователь. Я следовал учебному руководству о том, как настроить веб-сервер, который сказал, что я должен chmod 777
dir веб-сервера так, чтобы в это можно было вписать.
Так или иначе я создал новый счет на одного чувака, чтобы позволить ему видеть некоторые файлы на сервере, который я поместил в его домашний dir:
adduser francis
После создания учетной записи я проверил, с каким доступом он имеет
groups francis
Это сказало "francis: francis", таким образом, не проблема я думал, человечность, не включал его ни в какие группы по умолчанию, который имеет смысл, это создало его без дополнительных мудрых безопасностью полномочий, таким образом, все великолепно. Неделю спустя, в абсолютном и чрезвычайном ужасе, я узнал, что даже при том, что он не мог сделать вещей как SUDO или бездельничать в системных каталогах, у него был полный доступ почти к всему остальному на сервере. Например, у него был полный доступ для чтения-записи к моим файлам веб-сервера в/var/www (и таким образом пароли, сохраненные в файлах конфигураций php и т.д.) даже при том, что тот каталог НЕ находится в его корневом каталоге, и я никогда не добавлял его ни в какие группы, которые могли получить доступ к тому каталогу, ни я предоставил ему любой специальный доступ к чему-либо после выполнения adduser.
Так или иначе, что продолжается здесь? Как я уничтожаю его доступ к чему-либо важному? Он не должен мочь получить доступ к материалу как / медиа или/var/www. Я думал, что новым пользователям по умолчанию препятствовали делать что-либо опасное или шпионить, где они не должны быть.
Так сумма это, я только должен предоставить ему доступ к каталогам, которые я вручную указываю + к каталогам, которые он должен функционировать правильно (его домашний dir, энергия, нано и т.д.)
Спасибо
Это как разработано. И хуже. средства chmod 777... "Я хотел бы, чтобы владелец, любой в его группе и любом вообще прочитали, записали и выполнили полномочия"
, Который довольно ужасен.
И для веб-сервера, 777 не оптимально. 755 (У владельца есть группа полных полномочий и другие, читали +, выполняются), общее значение по умолчанию , но от того, что Вы сказали, Вы хотите, по крайней мере, чтение-запись, или чтение-запись выполняется для владельца (пользователь веб-сервера), и возможно группа и никакие полномочия для пользователя. Существует более полные вопросы на том, какие соответствующие уровни полномочий находятся на serverfault, но рассматривают чем-то как 640 или 740.
, который сказал, Вы могли также поместить пользователя в его собственный небольшой мир - настраивающий chroot для хранения пользователя в его собственное пространство в системе. Существуют руководства, плавающие вокруг для того, чтобы сделать это - например превосходный ответ oli здесь , который может быть опцией в зависимости от Ваших потребностей.
По существу это ломается как это:
R = 4 (read)
W = 2 (write)
X = 1 (execute)
Так, читайте, полномочия только были бы 4, читать, и запись была бы 6, читать и выполниться, был бы 5, и все (чтение, запишите, выполнитесь), 7. Это - то, как Вы вычисляете значение октета разрешения для владельца, группы владельца или всех.
При применении тех полномочий с chmod
к местоположению файла или каталога, числа, вычисленные выше, применяются как это, с октетом каждый для владельца, группы и всех:
$ chmod _ _ _ <file or directory>
| | |
owner-------- | |
owner's group-- |
everyone---------
Поэтому, если я хотел дать меня и мое чтение группы, запишите и выполните полномочия к папке, которой я владел, но я не хотел все даже мочь считать его, я буду использовать:
$ chmod 770 myDirectory
Для получения дополнительной информации, проверьте страница справочника для chmod:
$ man chmod
Поскольку другие упомянули, что Вам нельзя устанавливать полномочия на 777
, Вот полезная таблица ссылок, которую я использую.
+-----+---+--------------------------+
| rwx | 7 | Read, write and execute |
| rw- | 6 | Read, write |
| r-x | 5 | Read, and execute |
| r-- | 4 | Read, |
| -wx | 3 | Write and execute |
| -w- | 2 | Write |
| --x | 1 | Execute |
| --- | 0 | no permissions |
+------------------------------------+
You can use the octal notation, where the three digits correspond to the user, then group, then other.
Perhaps this might help
+------------+------+-------+
| Permission | Octal| Field |
+------------+------+-------+
| rwx------ | 700 | User |
| ---rwx--- | 070 | Group |
| ------rwx | 007 | Other |
+------------+------+-------+
В Ubuntu у любого пользователя есть полномочие суперпользователя, кто добавляется в группе 'sudo', проверьте его, чтобы гарантировать, что никакой другой пользователь не добавляется в этой группе.
Для обеспечения файлов и каталога от других пользователей можно установить разрешение, как предложил г-н Journeyman Geek в вышеупомянутом ответе.
можно также использовать специальные полномочия защитить файлы и каталоги от других.
Чтобы совместно использовать файлы с человеком, которого Вы дали вход в систему, Вы ничего не должны делать в частности. На установке Debian по умолчанию у пользователей есть доступ к корневым каталогам друг друга.
Например,
$ ls -ld ~
drwxr-xr-x 65 zwets zwets 4096 Sep 29 12:06 /home/zwets
Полномочия на моем корневом каталоге прочитаны (r) и доступ (x) для любого пользователя в моей системе. Только у меня дополнительно есть запись (w) доступ.
Кроме того, значение по умолчанию umask
на Ubuntu таково, что файлы и каталоги, которые создают пользователи, являются миром, читаемым по умолчанию. Вы могли установить umask
кому: 077
если Вы не хотели это.
Что это означает это в установке по умолчанию, если пользователь you
хочет совместно использовать документ ~/README.txt
со мной затем нет ничего you
потребности сделать. Я могу просто просмотреть его:
$ who am i
zwets pts/26 2016-09-29 08:05 (:pts/19:S.6)
$ ls -l ~you/README.txt
-rw-r--r-- 1 you you 24 Sep 8 11:23 /home/you/README.txt
$ cat ~you/README.txt
You's shared thoughts.
Я не могу отредактировать или удалить файл, но я могу скопировать его в местоположение, где у меня есть разрешение записи. Затем я владею копией:
$ echo "Adding my thoughts." >> ~you/README.txt
bash: /home/you/README.txt: Permission denied
$ rm ~you/README.txt
rm: remove write-protected regular file '/home/you/README.txt'? yeah!
rm: cannot remove '/home/you/README.txt': Permission denied
$ cp ~you/README.txt ~zwets
$ ls -l ~/README.txt
-rw-r--r-- 1 zwets zwets 24 Sep 29 14:09 /home/zwets/README.txt
Существуют серьезные основания, почему большая часть системы является миром, читаемым по умолчанию, как я объяснил в другом ответе на AskUbuntu. Однако в общей системе может иметь смысл делать корневые каталоги недоступными невладельцам:
$ chmod o-rwx ~
$ ls -l ~
drwxr-x--- 65 zwets zwets 4096 Sep 29 12:06 /home/zwets
... поскольку многие пользователи, по-видимому, не знают о значении по умолчанию - ЧТО И ТРЕБОВАЛОСЬ ДОКАЗАТЬ ;-). Это было бы более мудро, хотя сделать пользователей знающими, что полномочия файла не защищают секреты.