История объясняет, почему существуют восьмеричные формы , но я думаю, что функциональность является причиной существования мнемонической формы. И все пункты о других инструментах, использующих исключительно восьмеричные режимы, совершенно верны, и я думаю, что вы должны изучить и знать их. Тем не менее я считаю, что консервативные администраторы не видят истинную полезность, которая исходит от мнемонической формы.
Восьмеричная форма, особенно при рекурсивном использовании, заставляет администраторов делать глупости. Или скорее добавленная небрежность приводит к тому, что это оказалось глупым. Всякий раз, когда вы сталкиваетесь с какой-то папкой с большим количеством текстовых файлов и x
битами, у вас есть доказательства.
Зачем кому-то ставить x
бит так? Потому что это трудно сделать, если вы не используете мнемоническую форму для режимов. Учтите, что вы хотите сбросить разрешения /var/www
и не запускаете CGI старого стиля, поэтому x
бит следует удалить. Однако этот x
бит служит другой цели для каталогов. Таким образом, вы в конечном итоге сделать что-то (как root
), как:
chmod -R 666 /var/www
find /var/www -type d -exec chmod 777 {} \;
Однако, если вы использовали мнемоническую форму, вы могли бы дать ей «рецепт»:
chmod -R a=rwX /var/www
которая является краткой формой chmod -R ugo=rwX /var/www
(достижение того же, но другого пути:) chmod -R a-x,a+rwX /var/www
.
Но есть еще одна вещь, которая является более тривиальной, чего нельзя достичь с помощью восьмеричных мод. Вы не можете настроить user
или group
или other
маску индивидуально с восьмеричной формой.
Вкратце: это все равно что сравнивать скальпель (мнемонический) и острый кухонный нож (восьмеричный) ... но вам все равно нужно знать биты восьмеричного режима по другим причинам :)
Я думаю, что причина того, что восьмеричные моды все еще предпочтительны , заключается не в типизации, связанной с мнемонической формой, а в чрезмерно консервативных администраторах. И да, в 2013 году эти чрезмерно консервативные администраторы все еще существуют и останутся здесь на некоторое время.
chmod
в Perl или C нужно использовать восьмеричное представление, на самом деле не является преимуществом, поскольку представление уже существовало в первую очередь.