Какие 4-ые и 5-ые цифры в разрешении linux? - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь понять систему разрешений Linux. Я понимаю группы:

  • владелец (и)
  • группа (г)
  • другие (о)

    и типы разрешений:

  • прочитано (r = 4)

  • запись (w = 2)
  • выполнить (х = 1)

(я читал кое-что о setuid/setgid и sticky bit и не совсем понимаю, для чего они хороши.)

Другая вещь, которую я не понимаю, например, в PHP, 5 цифр разрешения вместо 3: так, что это делает?

mkdir($directory, 02770);

277 Должно означать запись разрешения для владельца и всего для группы и других пользователей, но что означает первая и последняя цифры?

1 Ответ

0 голосов
/ 10 мая 2018

Подробнее о setuid, setgid и sticky bit в Википедии .

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

Константа показана как 5-значный, но первая цифра всегда 0; это соглашение для восьмеричных литералов (то есть 010 равно 8, а не 10). Это имеет смысл, потому что 8-значные числа имеют цифры, представляющие ровно 3 бита, а биты разрешений сгруппированы по 3. (Это имело гораздо больше смысла на старых машинах PDP, которые использовали восьмеричное окружение, особенно в представлении машинного кода, и были исходный очаг разработки Unix. В Intel и ARM шестнадцатеричные числа распространены, поэтому восьмеричные не сразу распознаются, какие они есть.)

...