Почему использование 'chmod 644' вместо 'chmod u=rw, go=r, …'?

Можно создать массив mdraid RAID-1, запускающийся с существующего раздела. Во-первых, необходимо создать место для mdadm суперблока, что означает, что необходимо уменьшить файловую систему немного.

В данный момент нормальный формат суперблока 0.9. Его местоположение между 128 КБ и 60 КБ от конца раздела, это 4 КБ длиной, и он запускается на адресе, который является multible 64 КБ. Так уменьшите свою файловую систему на 128 КБ, или более точно к ((device_size ультрасовременные 64 КБ) - 1) * 64 КБ.

Если Вы хотите больше чем 2 ТБ за дорожку, Вам нужны 1,0 формата суперблока, которые еще не поддерживаются out-of-the-box всеми дистрибутивами. 1,0 суперблока в конце устройства, которое я понимаю, чтобы означать, что только необходимо уменьшить файловую систему на 8 КБ.

Теперь, когда Вы уменьшили файловую систему, можно создать массив. Сначала создайте ухудшенный массив только с существующими данными. Удостоверьтесь, что файловая система не смонтирована в этой точке. Для Вашего варианта использования поглощенный записью битовый массив должен быть на отдельном разделе. Использовать -e 1.0 использовать более новый формат суперблока версии 1.

mdadm --create /dev/md0 -e 0.9 -l 1 -n 2 \
      --write-behind=256 --bitmap=/path/to/bitmap /dev/sda1 missing

Теперь можно смонтировать файловую систему в /dev/md0. Добавьте второй диск на своем досуге. Данные будут скопированы в новый диск в фоновом режиме.

mdadm --add /dev/md0 --write-mostly /dev/sdb1

Я создал зеркальный массив как это, но без записи - позади режима. Я не думаю, что запись - позади режима делала бы недействительным процедуру.

39
20.03.2013, 00:51
9 ответов

Использование восьмеричных кодов имеет два преимущества, о которых я могу думать, ни один из которых не настолько огромен:

  1. Они короче, легче ввести.
  2. Несколько вещей только понимают их, и если Вы обычно будете использовать их, то Вы не будете царапать голову (или работать к документации) при столкновении с тем. Например, необходимо использовать восьмеричный для chmod в Perl или C.

Иногда действительно простые утилиты не будут обрабатывать "дружественные" версии; особенно в пространствах пользователя не-GNU.

Далее, некоторые утилиты, выложенные восьмеричный. Например, если Вы работаете umask для наблюдения, каков текущий umask он выложит его в восьмеричном (хотя в ударе, umask -S делает символьный).

Так, короче говоря, я сказал бы, что единственная причина предпочесть их состоит в том, чтобы ввести меньше символов, но что, даже если Вы выбираете не использовать их, необходимо знать, как они отображаются так, чтобы можно было выяснить восьмеричный код при столкновении с одной из вещей, которая только делает восьмеричный. Но Вы не должны сразу знать это 5 карт к rx, только необходимо смочь понять это.

41
27.01.2020, 19:35
  • 1
    Высказывание этого chmod в Perl или C должен использовать восьмеричное представление, не действительно преимущество, видя, поскольку представление уже существовало во-первых. –  n0pe 12.12.2011, 19:22
  • 2
    @MaxMackie: преимущество для Вас использующий их. Я разъяснюсь. –  derobert 12.12.2011, 19:28

Угадайте, что я использовал восьмеричный слишком долго.

7 rwx (сделайте что-либо с ним), 5 rx (должен считать его для выполнения его), 6 wr (любой файл данных, который необходимо изменить), 4 r (мы позволим Вам посмотреть на него), и 0 - (извините, ничто здесь для наблюдения). И порядок - Я, Мы, Все. Это основные комбинации.

755 я могу изменить и выполнить его, все остальные могут выполнить его.

644 я могу изменить его, все остальные могут считать его.

444 Только для чтения для всех, мы через здесь.

500 я могу выполнить его, не хотите, чтобы это изменилось, все остальные руки прочь.

Для меня это коротко к точке. 9 символов и спецификация файла и движение.

18
27.01.2020, 19:35
  • 1
    Ну, восьмеричный (базируются 8), не шестнадцатеричное число (базируются 16). –  derobert 12.12.2011, 19:03
  • 2
    Да, тот, эта половина шестнадцатеричного числа. <усмешка> –  Fiasco Labs 12.12.2011, 19:07
  • 3
    То же здесь, я нахожу, что восьмеричное более легкое читает, чем текстовая версия... –  Brian Knoblauch 16.12.2013, 23:22

Я действительно никогда не наслаждался восьмеричным представлением, я всегда шел для прямого rwxr-xr-x нотация, поскольку это кажется более простым мне. Однако от того, что я собираю, восьмеричное представление существует, чтобы на самом деле помочь нам помнить (я не вижу, как это работает).

Единственное другое возможное преимущество я вижу восьмеричное обеспечение к таблице, является отсутствием неоднозначности. 8 различных конфигураций бита полномочий представлены единственным отличным числом, которое я уверен, помогает некоторым людям случайно поместить a w где они не должны иметь.

К сожалению, хотя, я запомнил эту таблицу:

#  r  w  x
0  0  0  0
1  0  0  1
2  0  1  0
3  0  1  1
4  1  0  0
5  1  0  1
6  1  1  0
7  1  1  1
13
27.01.2020, 19:35
  • 1
    я изучил это как использование двоичного файла для каждого набора 3. так rw-------был бы (110) (000) (000), который является (6) (0) (0). rwxr-xr-x был бы (111) (101) (101), таким образом (7) (5) (5). –  Rob 12.12.2011, 18:10
  • 2
    Основная причина восьмеричное представление существует, - то, потому что это - то, как исходная система разрешения Unix была запрограммирована от C. 4 восьмеричных цифры (помнят специальные, как 1777 для /tmp, включая липкий бит), берет 12 битов, удобный размер на PDPs, особенно PDP-8. Если бы они пошли с шестнадцатеричным числом, то естественное отображение одного набора полномочий на шестнадцатеричную цифру потребовало бы 16-разрядного + машина слова, которой не были все PDPs. Это также потратило бы впустую 3 бита или потребовало бы, чтобы они изобрели использование для тех битов, которые, вероятно, усложнили бы Unix перманент без реальной выгоды. –  Warren Young 29.08.2012, 21:19
  • 3
     v переходит к @Rob btw. Действительно, после того, как то вычисление фактического числа от двоичного представления является основной комбинаторикой, и Вы не должны даже помнить о наличии "восьмеричного", потому что максимальное количество (т.е. 111b) не превысит 7. –  Hi-Angel 13.10.2017, 17:32

Я думаю, что причина снова - история. Сначала восьмеричные значения были единственными. Символьные прибыли позже.

Я предпочитаю символьные. Особенно, если Вы действительно хотите изменить существующие значения, не касаясь других частей.

Как chmod -R u=rwx,g-w+X,o=- выполните в этом восьмеричном...

6
27.01.2020, 19:35

Это приятно соответствует к umask настройкам, которые обычно даются в восьмеричной записи (в pam или fstab).

0
27.01.2020, 19:35

Когда необходимо изменить полномочия файлов все время, Вы цените эти 3 символа. Много времени я использую + или - версии для изменения полномочий.

Например, я создаю новый PHP, Python или другой сценарий в моей апачской папке. chmod a+x все, что я делаю так, это может быть выполнено. Я считал его как, "все плюс выполняются". Теперь я знаю, что это собирается работать, и мне только были нужны 3 символа.

Другие времена я использую 644 и 755 автоматически. Я просто думаю о нем как 644 означает файл, 755 означает сценарий.

0
27.01.2020, 19:35

Обратите внимание, что восьмеричные режимы могут удалить setuid и setgid биты в некоторых системах.

Fedora 16:

$ mkdir dir
$ chmod 2775 dir
$ stat -c %a dir
2775
$ chmod 770 dir
$ stat -c %a dir
2770

( 2 сохраняется),

FreeBSD 9:

$ mkdir dir
$ chmod 2775 dir
$ stat -f %Mp%Lp dir
2775
$ chmod 770 dir
$ stat -f %Mp%Lp dir
0770

( 2 стал a 0)

Если Вы хотите изменить полномочия файла или каталога, может быть лучше просто указать биты, которые Вы хотите изменить (например. chmod o= dir или chmod o-rwx dir в вышеупомянутом примере).

3
27.01.2020, 19:35

История объясняет, почему восьмеричные режимы существуют, но я думаю, что функциональность является причиной, почему мнемоническая форма существует. И все вопросы о других инструментах с помощью исключительно восьмеричных режимов являются совершенно актуальными, и я думаю, что необходимо изучить и знать их. Тем не менее, я нахожу, что консервативные администраторы не видят истинную утилиту, которая прибывает из мнемонической формы.

Восьмеричная форма, особенно при рекурсивном использовании имеет тенденцию вынуждать администраторов сделать глупые вещи. Или скорее добавленная небрежность приводит к нему оказывающийся глупой. Каждый раз, когда Вы натыкаетесь на некоторую папку с большим количеством текстовых файлов и 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 вызов, те чрезмерно консервативные администраторы все еще существуют и приходят надолго в течение некоторого времени.

2
27.01.2020, 19:35

Я предполагаю, что одна важная причина состоит в том, что восьмеричное представление соответствует тесно, с чем Вы видите ls -l (или, скорее это делает, когда Вы мысленно преобразовываете между восьмеричным и двоичным).

0
27.01.2020, 19:35

Теги

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