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

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

  • Насколько разумно делать надёжную работу над системами с ограничительной umask?
  • Разрешения на файловую систему ext4 на съемном диске, используемом на разных машинах
  • Как подойти к планированию иерархии файловой системы файлового сервера BSD
  • SMB Mount To Windows Server появляется для блокировки. Есть идеи?
  • "~ /" Получает ошибку отказа в разрешении в Csh
  • Разрешить определенному пользователю или группе root доступ без пароля к / bin / date
  • RSync - Permission denied (13) при выполнении rsync в качестве корня
  • Разрешения с скриптом
  • Невозможно создать файл + r
  • Как права на файлы работают с файловой системой раздела?
  • архивирование файлов без изменений
  • Должен ли владелец / usr быть root?
  • 4 Solutions collect form web for “Есть ли разница между значением режима 0777 и 777”

    Если вы передаете их в 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) ноль.

    Linux и Unix - лучшая ОС в мире.