Для чего первая chmod восьмеричная цифра в четырехразрядном значении?

  1. Вместо echo hello > -, можно использовать echo hello > /dev/stdout.

    В то время как '-' является конвенцией, которая должна быть реализована каждой программой, желающей поддерживать его, /dev/stdin, /dev/stdout и /dev/stderr при поддержке ОС (по крайней мере, Солярис, Linux и BSDs делают), независимый от приложения, и затем будет работать, как Вы предназначаете.

40
04.02.2011, 21:57
1 ответ

Обратите внимание на то, что chmod 777 filename эквивалент chmod 0777 filename в этом примере.

Первая восьмеричная цифра устанавливает setuid, setgid и липкие биты (дополнительную информацию см. в этой статье о setuid/setgid). восьмеричные 2 средства установить идентификатор группы на файле. Так, эквивалент должен был бы сделать a chmod a+rwx filename, затем chmod g+s filename. chmod информационная страница действительно объясняет это более подробно.

44
27.01.2020, 19:35
  • 1
    Почти все реализации chmod (1) могут использовать запятые в символьных аргументах режима. Таким образом Ваш эквивалент 2 777 может быть сделан в одной команде: chmod a+rwx,g+s filename. Или, более строго (будучи убеждающимся очистить setuid и липкие биты, поскольку числовой режим был бы): chmod a=rwx,g+s filename. –  Chris Johnsen 05.02.2011, 03:17

Теги

Похожие вопросы