Що означає "chmod 666"?


47

Я використовую Linux. У чому сенс chmod 666?


28
ака, команда сатани.
Моаб

6
Якщо це вас турбує (або якщо ви не можете турбуватися запам'ятовувати ці цифри), ви також можете написати це як chmod a=rw.
starblue

марна команда, оскільки третій аргумент не дається ^^
kokbira

також він може створювати недоліки безпеки (усі користувачі можуть писати файл / папку) або марні дозволи на файли / папки
kokbira

Відповіді:


112

chmod атрибути зміни команди з файлу / папки:

  • chmod 666 file/folder означає, що всі користувачі можуть читати та писати, але не можуть виконати файл / папку;
  • chmod 777 file/folder дозволяє виконувати всі дії для всіх користувачів;
  • chmod 744 file/folderдозволяє тільки користувачеві (власнику) робити всі дії; група та інші користувачі можуть лише читати.

    permission to:  user(u)   group(g)   other(o)     
                    /¯¯¯\      /¯¯¯\      /¯¯¯\
    octal:            6          6          6
    binary:         1 1 0      1 1 0      1 1 0
    what to permit: r w x      r w x      r w x
    
    binary         - 1: enabled, 0: disabled
    
    what to permit - r: read, w: write, x: execute
    
    permission to  - user: the owner that create the file/folder
                     group: the users from group that owner is member
                     other: all other users
    

Крім того, ви можете виконати команду з більш інтуїтивним синтаксисом, не потребуючи роздумів у двійковому чи восьмеричному (але знання числового синтаксису настільки важливо): chmod u=rw, g=rw, o=rw file/folder

Пам’ятайте, що для зміни дозволу за допомогою chmodкоманди потрібно щонайменше 3 аргументи, тому chmod 666нічого не потрібно без явного файлу / папки для зміни дозволів.

Також не забудьте критикувати, якщо це не спричиняє небезпечних питань або просто, якщо це марна зміна дозволу, оскільки chmod 666дозволить записувати файл / папку всім, а виконання - ні.


5
Тільки це "восьмеричний", а не "десятковий". +1 у будь-якому випадку
Бен Войгт

1
Третій пункт, згаданий у першому дописі, є невірним - chmod 711 дозволяє тільки власнику робити всі дії, групувати та інші дозволено лише читати! [Введіть опис зображення тут] [1] Це таблиця для rwx для восьмеричного rwx 000 001 010 011 100 101 110 111 Octal 001, або 1 позначає дозвіл на виконання. Octal 7, 111 позначає читання запису і виконання дозволу, отже, 711 позначає, rwx для власника, а x для груп та інші.

3
Так чи інакше, це лише 7, тому різниці між восьмеричним і десятковим в цьому випадку немає. : /
Роб

так, @Yash, і через 1 рік, 2 місяці та 18 днів після першої публікації хтось побачив цю помилку :) Я виправлю це на прикладі 744.
kokbira

1
@KyleVassella owner- власник файлу чи папки, як правило, той, хто його створив. groupце група користувачів, пов’язана з цим файлом чи папкою, як правило, група, у якій є власник. Отже, уявіть, що я є рубіром, і моя група - ретуші, і ви теж є в цій групі, а всі інші члени форуму SU - в іншій групі. Якщо я створю файл і роблю з chmod 750, я б читав, записував і виконував його, ви б тільки читали та виконували, а користувачі SU нічого не робитимуть - це наш секрет
¬¬

7

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

Для отримання більш детальної інформації про те, як chmodпрацює, ознайомтесь із цим підручником .


2
... Ви не маєте на увазі, чи дозволяє всім читати / записувати файли, але не виконувати їх, і давайте всі читати / писати файли в каталозі, але не перелічувати всі файли?
Earlz

2
те, що говорить @earlz, плюс писати на dir не означає, що ви можете редагувати файли там (пишіть perms у файл), але виключно означає, що ви можете створювати нові записи (dirs, файли, посилання тощо). Крім того, вам приємно згадати про повноти, але 666 для dir не має сенсу; ви ніколи не усунете х для власника.
Багата Гомолка

1
@Earlz: спасибі за це. Я завжди забуваю, що 666 робить для dirs, тому що я ніколи не встановлюю rw- для користувача на dir. :)
Ян C.

7

Як згадується в інших відповідях, chmod означає зміну режиму. Це впливає на дозволи на читання, запис та виконувані файли для власника, групи та інших категорій користувачів. Цифри, що слідують за командою (в даному випадку 666), вказують, як ці дозволи змінюються для файлу, на якому працює команда (для 666 це означає, що власник, група та інші мають дозволи на читання та запис, але не мають дозволів на виконання) .

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


1
Це чудовий сайт. Це йде в моїх закладках. Дякую!
Кірк

5

Команда chmod (скорочено з режиму зміни) - це команда Unix, яка дозволяє оператору сказати системі, скільки (або мало) доступу має надати файл. Команда chmod 666означає, що всі користувачі матимуть дозволи на читання та запис.


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