Что означает «chmod 666»?

47

Я использую Linux. В чем смысл chmod 666?

Сено
источник
28
ака, повеление сатаны.
Моав
6
Если это вас беспокоит (или если вы не можете вспомнить эти цифры), вы также можете написать это как chmod a=rw.
звездный синий
бесполезная команда, так как третий аргумент не задан ^^
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что разрешит запись файла / папки всем, а выполнение - нет.

kokbira
источник
5
Только это «восьмеричное», а не «десятичное». +1 в любом случае.
Бен Фойгт
1
Третий пункт, упомянутый в первом посте, неверен - chmod 711 позволяет только владельцу выполнять все действия, группе и другим разрешено только читать! [Введите описание изображения здесь] [1] Это таблица для rwx для восьмеричного rwx 000 001 010 011 100 101 110 111 Octal 001, или 1 обозначает разрешение на выполнение 7 октября, 111 обозначает разрешение на чтение и запись, следовательно, 711 обозначает, rwx для владельца и x для групп и других.
3
В любом случае, он идет только до 7, поэтому в данном случае нет разницы между восьмеричным и десятичным. : /
Роб
да, @Yash, и через 1 год, 2 месяца и 18 дней после исходного поста кто-то видел эту ошибку :) Я исправлю это до 744 на примере.
Кокбира
1
@KyleVassella owner- владелец файла или папки, обычно тот, который их создал. groupэто группа пользователей, связанных с этим файлом или папкой, обычно это группа, в которой находится владелец. Итак, представьте, что я rootbira и моя группа пользователей root, и вы тоже в этой группе, а все остальные участники форума SU находятся в другой группе. Если бы я создал файл и выполнил
команду
7

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

Для более подробной информации о том, как chmodработает, ознакомьтесь с этим удобным руководством .

Ян С.
источник
2
... Разве вы не имеете в виду, что все могут читать / записывать файлы, но не выполнять, и пусть все читают / пишут файлы в каталоге, но не выводят список всех файлов?
Эрлз
2
То, что говорит @earlz, плюс запись в dir не означает, что вы можете редактировать файлы там (запись perms в файл делает), а означает только то, что вы можете создавать новые записи (dirs, файлы, символические ссылки и т. д.). Кроме того, приятно упомянуть dirs для полноты, но 666 не имеет смысла для dir; Вы никогда не исключите x для владельца.
Богатая Гомолка
1
@Earlz: спасибо за это. Я всегда забываю, что 666 делает для dirs, потому что, ну, я никогда не устанавливал rw- для пользователя в dir. :)
Ян С.
7

Как упоминалось в других ответах, chmod означает изменение режима. Это влияет на разрешения на чтение, запись и выполнение для владельца, группы и других категорий пользователей. Числа, следующие за командой (в данном случае 666), указывают, как эти разрешения изменяются для файла, над которым запускается команда (для 666 это означает, что владелец, группа и другие имеют разрешения на чтение и запись, но не имеют разрешений на выполнение) ,

Изменяя числа на разные значения, вы эффективно меняете права доступа к файлу. Ссылка, на которую я ссылался выше, содержит небольшой инструмент для определения того, какие значения вам нужно ввести, чтобы получить схему разрешений, которую вы используете. Здесь также рассматриваются параметры переключателя, доступные для команды, и некоторые примеры, которые помогут вам лучше понять, как она работает.

MaQleod
источник
1
Это отличный сайт. Это происходит в моих закладках. Благодарность!
Кирк
5

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

Сено
источник
2

Если ваши вопросы касаются больше части 666, чем части chmod, я отсылаю вас к Проекту документации Linux, где приводится хорошее объяснение того, как работают разрешения для файлов в Linux.

Кирк
источник