Каков результат применения `chmod 7` к файлу?

Каков результат применения `chmod 7` к файлу?

Я знаю, chmod 777позволяетчитать,писать, ивыполнятьдляпользователь,группа, идругие

а что если я просто это сделаю chmod 7?

Это только rwxдляпользователь?

решение1

Ответ Рамеша совершенно точен, но я хотел бы вмешаться и дать более подробное объяснение режимов файлов.

Хотя такие числа, как 755и , 777могут показаться особенными и имеющими значение только для режимов файлов, на самом деле они довольно просты.

Эти числа на самом деле являются восьмеричными числами. Десятичные числа имеют основание 10, шестнадцатеричные числа имеют основание 16, двоичные числа имеют основание 2, а восьмеричные числа имеют основание 8. Это означает, что при подсчете вы идете 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 .... Так что число 007, просто восьмеричное 7. Восьмеричное число 755— это просто число, и оно эквивалентно 493в десятичном.
Теперь, как вы отличаете восьмеричное число от любого другого основания, так это то, что восьмеричные числа имеют префикс 0. Таким образом, чтобы сказать, 755что это восьмеричное, вы должны на самом деле ссылаться на него как 0755. chmodКоманда просто предполагает, что все входные числа являются восьмеричными, поскольку это наиболее распространенный способ ссылки на режимы файлов.

Теперь, почему файловые режимы используют восьмеричное? Ну, во-первых, нам нужно понять, что режим — это просто битовая маска, которая выглядит так:

111111111111 - 12 binary bits
============
           1 - Other execute
          1  - Other write
         1   - Other read
        1    - Group execute
       1     - Group write
      1      - Group read
     1       - User execute
    1        - User write
   1         - User read
  1          - Sticky bit
 1           - Set group ID
1            - Set user ID

Обратите внимание, что для каждого из "другого", "группы" и "пользователя" есть 3 бита. Двоичное значение 111— это 7, что является наивысшим восьмеричным значением из одной цифры. Таким образом, при использовании восьмеричной нумерации каждое из разрешений "другое", "группа" и "пользователь" получает одну цифру, плюс дополнительную цифру для sticky+setuid+setgid.

Итак, с этим мы можем вернуться к вашему изначальному вопросу «что такое chmod 7»?
Ну, теперь, когда мы знаем, что это просто восьмеричное число и что это просто битовая маска, мы можем это выяснить. Восьмеричное число 7— это двоичное число 111. Используя указанные выше позиции битов, мы можем определить, что это устанавливает все 3 бита «других», предоставляя «другим» доступ на выполнение, чтение и запись. И поскольку это просто число, все остальные биты равны 0 и становятся неустановленными.

решение2

Это наоборот. Это даст rwxразрешение надругие.

touch samplefile
ls -l samplefile
-rw-rw-r-- 1 ramesh ramesh 0 Oct 16 22:29 samplefile

Теперь после выполнения команды я получаю следующий вывод:

chmod 7 samplefile
ls -l samplefile
-------rwx 1 ramesh ramesh 0 Oct 16 22:29 samplefile

Из страницы руководства chmod,

числовой режим — от одной до четырех восьмеричных цифр (0–7), получаемых путем сложения битов со значениями 4, 2 и 1. Пропущенные цифры считаются ведущими нулями.

Теперь мы можем проверить то же самое, выполнив команду:

chmod 47 samplefile
ls -l samplefile
----r--rwx 1 ramesh ramesh 0 Oct 16 22:29 samplefile

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

Связанный контент