дозволи 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
Rahul Patil

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читати поштовою системою, що працює як користувач системи. Однак постфікс чудово відповідає приватному .forward.
Жил "ТАК - перестань бути злим"

3

Якщо ви перевірите в RHEL / CentOS 5.x, то за умовчанням Permission - 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 по-перше, я прочитав би його першим, друге Аліса в цьому випадку - це людина, яка сидить поруч зі мною, яка щойно написала класний сценарій. Можна припустити, що я їм довіряю так само, як і будь-якому розробнику, чию роботу я б сліпо встановив і виконав на своїй машині. Більше, ніж більшість насправді. Також це була лабораторія, тому ми часто завантажували кілька ГБ геномів, і це був простий спосіб надати один одному доступ до них.
тердон

1

Вам потрібно змінити umask, щоб змінити, як створюються нові файли у вашій домашній папці. Зазвичай це робиться шляхом редагування оболонки сценарій запуску, є досить огляд хороший тут

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.