разрешения 755 на / home / <пользователь> /

15

Мне интересно, почему по умолчанию для моего каталога /home/<user>/установлены разрешения 755. Это позволяет другим пользователям входить в каталоги и читать файлы в моем доме. Есть ли законная причина для этого?

Могу ли я установить разрешения 700для моего дома и всех подкаталогов, например:

chmod -R o-xw /home/<user>/ 
chmod -R g-xw /home/<user>/

ничего не нарушая?

Кроме того, возможно ли установить разрешения для моего дома, чтобы все новые созданные файлы имели 600каталоги 700?

Мартин Вегтер
источник
1
в RHEL / CentOS 5 по умолчанию 700, но в Ubuntu 755
Рахул Патил
2
Это часто встречается в некоторых настройках, которые public_htmlпозволяют веб-серверу получить доступ к каталогу. Хотя это очень удобно для пользователей, я не большой поклонник этого.
Марко

Ответы:

18

Если ваш домашний каталог является личным, то никто другой не сможет получить доступ к любому из ваших файлов. Чтобы получить доступ к файлу, процессу необходимо иметь разрешение на выполнение для всех каталогов на пути вниз по дереву от корневого каталога. Например, чтобы разрешить другим пользователям читать /home/martin/public/readme, каталоги /, /home, /home/martinи /home/martin/publicвсе должно иметь права доступа d??x??x??x(это может быть drwxr-xr-x, или drwx--x--xили какой -либо другая комбинация), и кроме того , файл readmeдолжен быть читаемым ( -r??r??r??).

Обычно домашние каталоги имеют режим drwxr-xr-x(755) или хотя бы drwx--x--x(711). Режим 711 (только разрешение на выполнение) для каталога позволяет другим пользователям получать доступ к файлу в этом каталоге, если они знают его имя, но не для просмотра содержимого каталога. В этом домашнем каталоге создайте публичные и приватные подкаталоги по желанию.

Если вы никогда не хотите, чтобы другие люди читали какие-либо ваши файлы, вы можете создать свой домашний каталог drwx------(700). Если вы сделаете это, вам не нужно будет защищать свои файлы индивидуально. Это не нарушит ничего, кроме способности других людей читать ваш файл.

Одна распространенная вещь, которая может сломаться, потому что это случай, когда другие люди читают ваши файлы, это если у вас есть каталог, такой как ~/public_htmlили ~/wwwсодержащий вашу веб-страницу. В зависимости от конфигурации веб-сервера этот каталог должен быть доступен для чтения всем пользователям.

Вы можете изменить разрешения по умолчанию для файлов, которые вы создаете, установив значение umask в вашем .profile. Umask является дополнением к максимальным разрешениям файла. Общие значения включают 022 (доступно для записи только владельцу, доступно для чтения и выполнения всем), 077 (доступ только для владельца) и 002 (например, 022, но также доступно для записи в группе). Это максимальные разрешения: приложения могут устанавливать более ограничительные разрешения, например, большинство файлов остаются неисполняемыми, потому что приложение, которое их создало, не установило биты разрешения на выполнение при создании файла.

Жиль "ТАК - перестань быть злым"
источник
Я не запускаю веб-сервер на своем компьютере, поэтому мне не нужно разрешать доступ к нему ~/public_html. Есть ли какие-либо другие распространенные программы, кроме Apache, которым может понадобиться доступ к моему дому? Как насчет postfix, например.
Мартин Вегтер
1
@MartinVegter Хороший вопрос. Программы электронной почты всегда запускаются от имени вашего пользователя, когда они доставляют почту, но некоторые системы требуют, .forwardчтобы почтовая система работала от имени пользователя системы. Postfix однако хорошо с частным .forward.
Жиль "ТАК - перестань быть злым"
3

Если вы включите RHEL / CentOS 5.x, разрешение по умолчанию будет 700, а в Ubuntu - 755.

По словам сотрудника Ubuntuforms.org , это облегчает обмен файлами между новыми пользователями. Вы можете изменить разрешение на 700 или 750, если не хотите, чтобы файлы читались и выполнялись другими.

Кроме того, возможно ли установить разрешения для моего дома, чтобы все создаваемые новые файлы имели 600 и каталоги 700?

Вы можете установить umask 0077для этого

Это будет работать так:

Разрешение по умолчанию для директории 0777, поэтому при установке Umask 0077то новый каталог будет создан с разрешения , (0777-0077) т.е. , 0700как вы хотите.

Рахул Патил
источник
действительно umaskприменяются к файлам, а? Кажется, это действует только тогда, когда я создаю новые каталоги.
Мартин Вегтер
2
Да ... вы можете проверить свою текущую оболочку, просто установите umask 0077и создайте файл, каталог и проверьте разрешениеstat filename
Rahul Patil
3

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

Например, в лаборатории, в которой я работал, у всех нас был доступ к $HOMEкаталогам друг друга, чтобы мы могли легко обмениваться данными или сценариями друг с другом. Если бы у моей подруги Алисы был хороший скрипт для выполнения X, я бы просто запустил его:

~alice/bin/scriptX.pl mydata

Как уже упоминалось, чтобы изменить это, вам нужно установить umask. Например, чтобы новые файлы и папки были доступны для чтения только вам, добавьте это в ~/.bashrc:

umask 0077
Тердон
источник
3
Немного об использовании сценария Алисы на Perl ужасно. Скопируйте сценарий в свой домашний каталог, проверьте его, а затем используйте только свою копию.
AlexWebr
6
@AlexWebr, во-первых, я бы сначала прочитал это, а во-вторых, Алиса в данном случае - это человек, сидящий рядом со мной, который только что написал классный сценарий. Мы можем предположить, что я доверяю им так же, как и любому разработчику, чьи работы я бы слепо устанавливал и выполнял на своей машине. Больше чем на самом деле. Кроме того, это была лаборатория, поэтому мы часто загружали несколько ГБ геномов, и это был простой способ предоставить друг другу доступ к ним.
Terdon
1

Вам необходимо изменить umask, чтобы изменить способ создания новых файлов в вашей домашней папке. Обычно это делается путем редактирования оболочки сценарий запуска, есть довольно обзор хороший здесь

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

Найл Бирн
источник