Как препятствовать тому, чтобы новый пользователь делал что-либо опасное?

Я недавно установил сервер Ubuntu на своем сервере для испытания Linux как новый пользователь. Я следовал учебному руководству о том, как настроить веб-сервер, который сказал, что я должен chmod 777 dir веб-сервера так, чтобы в это можно было вписать.

Так или иначе я создал новый счет на одного чувака, чтобы позволить ему видеть некоторые файлы на сервере, который я поместил в его домашний dir:

adduser francis

После создания учетной записи я проверил, с каким доступом он имеет

groups francis

Это сказало "francis: francis", таким образом, не проблема я думал, человечность, не включал его ни в какие группы по умолчанию, который имеет смысл, это создало его без дополнительных мудрых безопасностью полномочий, таким образом, все великолепно. Неделю спустя, в абсолютном и чрезвычайном ужасе, я узнал, что даже при том, что он не мог сделать вещей как SUDO или бездельничать в системных каталогах, у него был полный доступ почти к всему остальному на сервере. Например, у него был полный доступ для чтения-записи к моим файлам веб-сервера в/var/www (и таким образом пароли, сохраненные в файлах конфигураций php и т.д.) даже при том, что тот каталог НЕ находится в его корневом каталоге, и я никогда не добавлял его ни в какие группы, которые могли получить доступ к тому каталогу, ни я предоставил ему любой специальный доступ к чему-либо после выполнения adduser.

Так или иначе, что продолжается здесь? Как я уничтожаю его доступ к чему-либо важному? Он не должен мочь получить доступ к материалу как / медиа или/var/www. Я думал, что новым пользователям по умолчанию препятствовали делать что-либо опасное или шпионить, где они не должны быть.

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

Спасибо

31
задан 29 September 2016 в 03:11

5 ответов

Это как разработано. И хуже. средства chmod 777... "Я хотел бы, чтобы владелец, любой в его группе и любом вообще прочитали, записали и выполнили полномочия"

, Который довольно ужасен.

И для веб-сервера, 777 не оптимально. 755 (У владельца есть группа полных полномочий и другие, читали +, выполняются), общее значение по умолчанию , но от того, что Вы сказали, Вы хотите, по крайней мере, чтение-запись, или чтение-запись выполняется для владельца (пользователь веб-сервера), и возможно группа и никакие полномочия для пользователя. Существует более полные вопросы на том, какие соответствующие уровни полномочий находятся на serverfault, но рассматривают чем-то как 640 или 740.

, который сказал, Вы могли также поместить пользователя в его собственный небольшой мир - настраивающий chroot для хранения пользователя в его собственное пространство в системе. Существуют руководства, плавающие вокруг для того, чтобы сделать это - например превосходный ответ oli здесь , который может быть опцией в зависимости от Ваших потребностей.

40
ответ дан 23 November 2019 в 00:42

По существу это ломается как это:

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
19
ответ дан 23 November 2019 в 00:42

Поскольку другие упомянули, что Вам нельзя устанавливать полномочия на 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 |
+------------+------+-------+
6
ответ дан 23 November 2019 в 00:42

В Ubuntu у любого пользователя есть полномочие суперпользователя, кто добавляется в группе 'sudo', проверьте его, чтобы гарантировать, что никакой другой пользователь не добавляется в этой группе.

Для обеспечения файлов и каталога от других пользователей можно установить разрешение, как предложил г-н Journeyman Geek в вышеупомянутом ответе.

можно также использовать специальные полномочия защитить файлы и каталоги от других.

1
ответ дан 23 November 2019 в 00:42

Чтобы совместно использовать файлы с человеком, которого Вы дали вход в систему, Вы ничего не должны делать в частности. На установке 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

... поскольку многие пользователи, по-видимому, не знают о значении по умолчанию - ЧТО И ТРЕБОВАЛОСЬ ДОКАЗАТЬ ;-). Это было бы более мудро, хотя сделать пользователей знающими, что полномочия файла не защищают секреты.

3
ответ дан 23 November 2019 в 00:42

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

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