Чому б не мати / tmp типових дозволів до 777 в OSX?


5

Я часто використовую на серверах Unix, з якими я працюю, папку / tmp як папку, куди я записую тимчасові речі, необхідні для мого програмного забезпечення (в основному веб-додатків). Зазвичай він має 777 дозволів.

Я помітив, що в моїй локальній машині, яка монтує OsX Maverick, папка / tmp НЕ має 777 дозволів, але drwxr-xr-x.

/ tmp - це фактично символічне посилання на / private / tmp, яке має ті ж дозволи.

Моє запитання: чи є причина безпеки, чому / tmp (або / private / tmp) не повинен мати 777 дозволів? Практичні пояснювальні приклади були б чудовими!


/tmpз режимом 0777 не дуже добре в багатокористувацькій системі; це означає, що хтось може видалити тимчасові файли будь-кого іншого. Ви, мабуть, мали на увазі 1777 , який можна записати у всьому світі за допомогою клейкого набору бітів, тому будь-який користувач може писати, але лише власник файлу може видалити файл.
CVn

Я думаю, що ключовим у відповіді на ваше запитання є /privateчастина. Для чого саме використовується в OS X?
CVn

У Unix, якщо у вас є дозволи на запис у папці, ви можете написати або видалити будь-який файл всередині цієї папки. / private - це контейнер для частин стандартної ієрархії файлової системи unix, які можуть відрізнятися між окремими комп'ютерами (наприклад, / etc є символьним посиланням на / private / тощо, де є фактичні конфігураційні файли). AIUI спочатку це робилося для підтримки мережевого завантаження в рамках NextSTEP. Взято з: unix.stackexchange.com/questions/63555/…
clami219

"У Unix, якщо у вас є дозволи на запис у папці, ви можете написати або видалити будь-який файл всередині цієї папки." Якщо в каталозі не встановлено клейкий біт. Дивіться, наприклад, superuser.com/a/153723/53590 , а також інші відповіді на це питання.
CVn

Гаразд, хороший момент.
clami219

Відповіді:


9

Каталог / private / tmp / повинен мати режими дозволів 1777 (drwxrwxrwt), а не 0755 (drwxr-xr-x), як ви бачите.

Ці ж режими (1777) також слід встановити на / var / tmp /

Я не можу міркувати про причини ваших нестандартних режимів.


Я погоджуюсь з тобою. І все-таки зі свіжою установкою Maverick у мене був 0755.
clami219

На моєму 10.9.2 хості дозволи такі: user@host:~ # ls -ld@ /tmp lrwxr-xr-x@ 1 root wheel 11 Oct 23 2013 /tmp -> private/tmp com.apple.FinderInfo 32 user@host:~ # ls -ld@ /private/tmp drwxrwxrwt 12 root wheel 408 May 16 08:27 /private/tmp
gurple

Досить справедливо! ...
clami219

Чому я не можу змінити дозволи через sudo chmod?
AlxVallejo

1
@AlxVallejo, я здогадуюсь, що ви намагаєтесь змінити режими дозволів на символічному посиланні. Якщо ви не використовуєте параметр '-h' з chmod, ви будете змінювати режими дозволу на файл або каталог, на який вказує символічне посилання, а не на саме посилання.
гурп

2

Ви також можете скористатися цим:

sudo diskutil repairPermissions / - відновлює дозволи системних каталогів (наприклад, якщо / tmp невірний)

джерело: http://www.macworld.com/article/1052220/repairpermissions.html


1
Ласкаво просимо до Супер Користувача. Хоча це може відповісти на запитання, ви повинні дати більш детальний опис пов’язаного змісту та пояснити, як він пов’язаний із запитанням. Це допоможе гарантувати, що ця відповідь залишається корисною у випадку, якщо пов’язана сторінка буде видалена або перейде в офлайн. Докладнішу інформацію див. У цій статті Meta Stack Exchange .
bwDraco

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