Модификация файлов с разрешениями 777, но не с разрешениями 755?

Я могу изменять файлы с разрешениями 777, но не с 755. Я делаю это, используя некоторые команды sed. Я нахожу это странным, потому что я могу изменять файлы с 700 разрешениями в Vim.

Почему невозможно изменить файлы с разрешением 755? Требуются ли базовые Unix-инструменты, такие как sed, awk и find, 777 разрешений?

4 ответа

Решение

Разрешения в UNIX и UNIX-подобных системах работают следующим образом...

rwxrwxrwx = 777

Вы заметите, что есть 3 "набора" RWX. Они предназначены для:

  • пользователь
  • группа
  • Другой

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

Более графическое представление:

uuu | ggg | ooo
rwx | rwx | rwx
 7  |  7  |  7

Что может спросить 777 от вас?

Разрешение на чтение (r) - 4
Разрешение на запись (ш) - 2
Выполнить разрешение (х) - 1

каждый отдельный номер в трехзначной последовательности представляет пользователя, группу и другие категории в этом точном порядке. Например, если число 777, каждый имеет полный доступ к файлу. Если это 111, каждый имеет доступ только для выполнения.

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

Вы проверили право собственности на файлы с 755 разрешения?
Вы должны быть владельцем этих файлов, чтобы иметь возможность "писать" в них.

Вы, скорее всего, владеете файлами с 700 разрешений,
что объясняет вашу способность писать им.

-rwxrwxrwx
       --- controls for Others
    ---    controls for Group
 ---       controls for User or Owner

Если вы используетечтобы «изменить файл», вы на самом деле создаете новый файл, а затем переименовываете его, чтобы заменить старый. (Вы можете убедиться в этом, используячтобы показать номер индексного дескриптора до и после и отметить, что он меняется.)

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

С другой стороны, такой редактор, как vim, просто перезапишет существующий файл при сохранении буфера.

Используйте знаменитый онлайн-калькулятор CHMOD, он отлично работает и ОЧЕНЬ интерактивен:

http://www.onlineconversion.com/html_chmod_calculator.htm

Другие вопросы по тегам