Установить разрешение, используя восьмеричное представление

Я знаю, что разрешение устанавливается с помощью Chmod, но мне трудно понять, как преобразовать восьмеричное число в разрешение.

Например

640 означает ли это, что у пользователя есть rw-r----x разрешение? Потому что 4+2=6 и 4 = w и 0 = - ?

Я понимаю, что 777 широко открыт, потому что пользователь имеет полный контроль над файлом 4 + 2 + 1 = 7 разрешение rwx, группа имеет разрешение rwx, а вторая группа имеет разрешение rwx. Если бы я ответил на этот вопрос, мой ответ был бы таким. rw-r----x Что я делаю не так?


person Katz    schedule 29.09.2015    source источник
comment
У вас там не настоящая восьмеричная нотация, а 3-битные флаги. 1 для x, 2 для w, 4 для r, iirc. Имейте в виду, что umask инвертируется   -  person Vogel612    schedule 30.09.2015
comment
Я пытаюсь установить разрешение на 640, используя восьмеричное представление @Vogel612.   -  person Katz    schedule 30.09.2015
comment
возможный дубликат восьмеричной формы терминала Linux для chmod   -  person Dan Cornilescu    schedule 30.09.2015
comment
Нет, если вы прочитали то, что я спросил, я в основном объяснил, что я понимаю, как это работает, я не понимаю, как будет работать 640. @Дэн Корнилеску   -  person Katz    schedule 30.09.2015
comment
технически вы правы, но проверьте принятый ответ, ИМХО, он четко показывает, как работают преобразования в обоих направлениях.   -  person Dan Cornilescu    schedule 30.09.2015
comment
@DanCornilescu Я понял это. Мне просто нужно было написать chmod 640 + каталог   -  person Katz    schedule 30.09.2015


Ответы (3)


Есть 3 цифры. Первая цифра — права пользователя, вторая цифра — права группы, третья цифра — права всех остальных.

Каждая цифра формируется путем добавления подмножества 4 (чтение), 2 (запись), 1 (выполнение).

Таким образом, 6 4 0 означает, что пользователю (6) разрешено чтение и запись (4 + 2), группе (4) разрешено чтение (4), а всем остальным (0) нет разрешений.

person melpomene    schedule 29.09.2015

x равен 1, поэтому третья триада читается как «1». 0 будет иметь третью триаду ---.

person Ignacio Vazquez-Abrams    schedule 29.09.2015

Может проще было бы фото:

Разрешения для файлов в Linux

..Я бы разместил это здесь, но у меня нет представителя

Некоторые примеры:

  1. Мы хотим, чтобы пользователь мог читать, записывать и выполнять файл, группа имела доступ для чтения и не имела доступа для всех остальных:

chmod 740 test_dir

  1. Мы хотим, чтобы у всех был полный доступ для чтения, записи и выполнения:

chmod 777 test_dir

person Mhowell    schedule 30.09.2015