Intereting Posts
Как настроить аудио для lubuntu минимальной установки Пользовательская служба Linux не может быть запущена, но служба существует в / lib / systemd / system и связана Использование apprarmor / grsec для получения возможностей для файла Какая польза от этого объявления пустой функции в исходном коде exec.c? Почему 8 чисел считаются «сильным» паролем? Почему Unix имеет кольцевую архитектуру, почему не окна? Максимальное окно на Linux Mint 18 xfce не работает Если systemd заменил SystemV, почему он все еще существует и кто запускает шоу? Удалите все, что не является числом из 4 символов. Сбой компиляции на версии 1.0.2p Поддерживать настройки ссылок ip во время перезагрузки Как изменить путь установки по умолчанию, используя zypper в suse 11.2? Как смонтировать блок-устройство с одного компьютера на другой через сеть в качестве блок-устройства? временный файл репликации zfs Как stdin обрабатывается в этом сценарии bash?

Есть ли разница между значением режима 0777 и 777

Я видел изменение кода на работе, где значения режима были изменены с 777 на 0777, чтобы заставить nfs setattr работать. В чем разница в 2 значениях?

Если вы передаете их в chmod (программа командной строки), нет никакой разницы. Но в C-программе или аналогичной, 0777 является восьмеричной (три набора из трех 1 бит, что вы намерены), а 777 – десятичной, и это совсем другой бит-шаблон. ( chmod будет интерпретировать любой числовой аргумент как восьмеричный, поэтому нулевой нуль не нужен).

0777 (восьмеричный) == binary 0b 111 111 111 == permissions rwxrwxrwx (== decimal 511 )

777 (десятичный) == двоичный 0b 1 100 001 001 == разрешения sr----x--x (== восьмеричный 1411 )

Первый бит используется для липкого бита http://en.wikipedia.org/wiki/Sticky_bit

Если вы установите разрешение с использованием 4 цифр, первое установит или удалит этот бит.

Интересный ответ:

  • нет никакой разницы между 0700 и 700 , как объяснено в других ответах
  • но существует разница между 00700 и 0700 (для каталогов)

По крайней мере, это относится к версии chmod GNU coreutils, которая по умолчанию используется в Linux.

См. Этот пример:

 $ ls -ld mydir drws--s--- 4 myuser mygroup 4096 Jul 8 09:27 mydir $ chmod 0710 mydir ; ls -ld mydir # surprise ahead -- s-bits remain: drws--s--- 4 myuser mygroup 4096 Jul 8 09:27 mydir $ chmod 00710 mydir ; ls -ld mydir # _now_ they're gone: drwx--x--- 4 myuser mygroup 4096 Jul 8 09:27 mydir 

Это делается для того, чтобы избежать случайного удаления битов setuid / setgid для каталогов. Подробнее см. В документации по chmod .

В системе Linux доступны два типа разрешений:

  1. Разрешение файла
  2. Специальное разрешение

В разрешении «Файл» мы устанавливаем разрешение на файлы и папки:

Разрешения:

  • чтения (4)
  • написать (2)
  • выполнение (1)

При специальном разрешении три типа разрешений:

  • SUID (4)
  • SGID (2)
  • Липкий бит (1)

В вашем вопросе вы спрашиваете, в чем разница, поэтому нет никакой разницы между chmod 777 and 0777 потому что no any octal value которое показывает значение (0) ноль.