Что означает третий символ в режиме файла "rw-" на странице справки OS X ls?

1195
Max Yankov

У меня проблемы с пониманием lsруководства по файлу с rw-режимом. Вот цитата:

  1. Если r, то файл читается ; если это не читается.

  2. Если wфайл доступен для записи; если это не доступно для записи.

  3. Первое из следующего:

    S     Если в правах владельца, файл не является исполняемым и установлен режим set-user-ID. Если в группе разрешений, файл не является исполняемым и установлен режим set-group-ID.

    s     Если в правах владельца, файл исполняемый и установлен режим set-user-ID. Если в группе разрешений, файл исполняемый и установлен режим setgroup-ID.

    x     Файл исполняемый или каталог доступен для поиска.

        Файл не является ни читаемым, ни записываемым, ни исполняемым, ни set-user-ID, ни режимом set-group-ID, ни липким.

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

Итак, что означает этот третий раздел о том, что файл «ни для чтения, ни для записи ...»?


Список используемой литературы

  • Apple.com, кажется, источник текста, приведенного выше.  Это страница руководства (для OS X версии 10.9 под названием «Руководство по общим командам BSD»), и это страница обсуждения, которая цитирует ее.
  • ss64.com также имеет копию справочнойls страницы OS X.
  • tuhs.org имеет справочную страницу 4.4 BSD. Осторожно: он используется wwoorrddдля жирного шрифта и _w_o_r_dподчеркивания.
  • На сайте freebsd.org имеется справочная страница FreeBSD 10.1 от 15 марта 2013 г.
  • На unix.com есть копия плохой страницы в каталоге man-page / freebsd (для FreeBSD 11.0). Обратите внимание, что у них также есть копия правильной страницы в man-page / posix .
  • «A + 4 Real StudyExam4Less Компьютер серия» содержит текст, цитируемый в этом вопросе, а также пару абзацев о Tи t, но не всей странице человека. Речь идет об OS X. Вы можете увидеть страницы двух слегка отличающихся версий (изданий?) Этой книги на books.google.com здесь и здесь .   certiguide.com, кажется, цитирует их.
  • stevens.edu - это файл PDF, содержащий версию BSD (General Commands Manual) ls(1). Датировано 24 сентября 2011 года.

Лучше:

  • quora.com имеет тот же текст, но форматирование (отступ) повреждено настолько сильно, что его значение неоднозначно.

Еще лучше:

  • cyberciti.biz и hurricanelabs.com имеют один и тот же текст, но с отступом, исправленным до такой степени, что можно утверждать, что по сути все в порядке. Но они оба все еще в полном беспорядке.
11
Перемещено отсюда: http://stackoverflow.com/questions/31021900/what-does-third-symbol-in-rw-file-mode-mean Max Yankov 8 лет назад 0
rwx - чтение / запись / выполнение emirjonb 8 лет назад 1
@emirjonb Я не уверен, как это отвечает на мой вопрос. Max Yankov 8 лет назад 0
Напоминаю, что я не знаю, чего вы добьетесь, но если вас беспокоит проблема с правами доступа, вы всегда можете `chomd 777`, что означает, что вы имеете полный контроль (чтение / запись / выполнение) для файла / каталога. , Bilo 8 лет назад 0
Пожалуйста, не размещайте один и тот же вопрос на нескольких сайтах Stack Exchange одновременно. ([SU] и [SO] оба являются сайтами Stack Exchange.) Как оказалось, этот вопрос * относится * здесь, а не к переполнению стека. Scott 8 лет назад 0
Вы не правильно читаете вторую жирную цитату. Это предложение начинается со знака ** минус ** (или дефиса) и объясняет, что оно означает. sawdust 8 лет назад 0
@sawdust Согласно этому отрывку из руководства, файл `rw-` является одновременно читаемым (`r`), доступным для записи (` w`) и не читаемым и не записываемым (`-`). gronostaj 8 лет назад 2
Откуда эта "выдержка из маунала"? Я не могу найти этот цитируемый текст в справочных страницах Linux для `ls`. sawdust 8 лет назад 0
@sawdust это из OS X. Max Yankov 8 лет назад 0
@ Било: Пожалуйста, не говорите людям делать это. Это не только (потенциально) серьезная уязвимость системы безопасности, но и засорение битов setuid / setgid / sticky, поэтому `sudo chmod 777 $ (который sudo)` заблокирует вас от учетной записи root в системах, которые отключают root-вход. Kevin 8 лет назад 0
rw - означает, что файл читаемый, записываемый, но не исполняемый. CML 8 лет назад 0
1. позиция для чтения: да / нет 2. позиция для записи: да / нет 3. позиция для исполняемой программы: да / нет, если есть дефис (-) это нет CML 8 лет назад 0
@CML Я не думаю, что ты читаешь вопрос. Max Yankov 8 лет назад 1
Не могли бы вы добавить ссылку с источником этой справочной страницы? В другом месте используйте другую формулировку. Braiam 8 лет назад 0
@Braiam: я добавил ссылки на несколько копий справочной страницы `ls`. Scott 8 лет назад 0
@ Скотт спасибо! Фантастическое редактирование. Max Yankov 8 лет назад 0

3 ответа на вопрос

16
rojomoke

This answer was previously posted on Stack Exchange, before I noticed the question was being moved.

Each numbered point in your quote applies in turn to each of the three characters.

If the first character is 'r', the file is readable

If the second character is 'w', the file is writable

If the third character is 'x/s/S', the file has the executable and/or set-userid/setgroupid property as appropriate

If the character is '-', then the file does not have that property.

The first three characters (after the directory identifier) apply to user permissions, the second three to group permissions, and the third to everyone else.

Хорошо, это хороший ответ на вопрос: «Что означает третий символ в режиме` rw-`file?” Но реальный вопрос заключается в том, “Как следует понимать эту справочную страницу OS X` ls (1) `?» и ответ: «Этого не может быть; он искажен ». Приведенный выше пост, который цитирует и / или перефразирует правильную, связную справочную страницу` ls (1) `, не отвечает на вопрос о справочной странице OS X. Scott 8 лет назад 1
Это все еще отличный ответ; Хотя ваш ответ технически верен, он наиболее полезен для случайного человека, который в будущем будет гуглить эту страницу руководства. Max Yankov 8 лет назад 0
Да, но вопрос "Что означает вывод из` ls`? " гораздо более подробно дан ответ на [Что означают поля в выводе `ls -al`?] (http://unix.stackexchange.com/q/103114/23408) в Unix & Linux Stack Exchange. Кроме того, конечно, любой, кто гуглит такой вопрос, найдет в Интернете миллионы хороших и понятных источников, включая не-OS X, не BSD-версии `ls (1)` Scott 8 лет назад 0
9
Scott

You're right — it doesn't make sense.  It looks like some sort of copy & paste error (although I see that it appears on multiple sites on the web.)

[Свободная] BSD [man page] (http://www.freebsd.org/cgi/man.cgi?query=ls) также имеет такую ​​формулировку. user2543253 8 лет назад 0
это не ошибка копирования и вставки: извлеките ответ из rojomoke CML 8 лет назад 1
В чем ваша точка зрения? Ответ Рожомока представляет собой последовательное объяснение классического представления символов в битах из девяти символов - объяснение, которое отличается от несогласованного, представленного в вопросе. Я полагаю, что вполне возможно, что какой-то технический писатель в Apple кардинально переформатировал что-то, чего он на самом деле не понимал, и исказил смысл этого процесса. Scott 8 лет назад 0
Последняя строка имела бы больше смысла, если бы она не была с отступом, потому что - действительно означает отсутствие значения, но с отступом в том виде, в каком это подразумевает, что это часть описания элемента № 3, который описывает третий символ каждой группы. phyrfox 8 лет назад 0
Да, именно в этом и заключается вопрос @ Макса - хотя, если бы последняя строка не была с отступом, то пункты 1 и 2 были бы лишними, потому что они также определяют условия, при которых появляется ** `-` **. Scott 8 лет назад 0
Похоже, он восходит к [4.4BSD] (http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.4BSD/usr/share/man/cat1/ls.0). Страница man 4.3-Reno не имеет этого. Mark Plotnick 8 лет назад 0
-3
Roger Baran

When changing permissions on a file it is possible to indicate two permissions with a simple rw- or wx- meaning that BOTH r AND w are to be set to NO. In the second example BOTH w AND x are set to NO.

You could also indicate r+w- to set READ to YES and WRITE to NO. Or rx+ for setting Read AND Execute to YES.

Я не уверен, что это относится к вопросу, который я задал. Max Yankov 8 лет назад 1
Я не уверен, что это имеет отношение к этой планете. :-) ⁠ Scott 8 лет назад 1
Аргументы `chmod` не форматируются так же, как выходные данные` ls -l`. Peter Cordes 8 лет назад 0