Когда дело доходит до создания исполняемого файла, в чем разница между chmod 755 и chmod +x и когда я буду использовать это? Я до сих пор использовал только chmod +x и я только что кое-что прочитал, и это использовало chmod 755 и я не мог сказать, было ли лучше использовать chmod 755 или chmod +x.
С помощью +x вы говорите, чтобы добавить (+) исполняемый бит (x) владельцу, группе и другим лицам.
это равно ugo+x или u+x,g+x,o+x
Если вы не укажете, кто из владельцев, групп или других лиц является вашей целью, в случае x он рассмотрит их все. И, как отметил @ Rinzwind, он основан на umask значение, оно добавляет бит к единицам umask позволяет. помните, что если вы укажете цель, например o+r затем umask больше не имеет никакого эффекта.
Это не касается других модов (разрешений).
Вы также могли бы использовать u+x чтобы добавить исполняемый бит только владельцу.
С помощью 755 вы указываете:
>7 -- u=rwx (4+2+1 для владельца)
>5 -- g=rx (4+1 для группы)
>5 -- o=rx (4+1 для других)
Так chmod 755 это как: chmod u=rwx,g=rx,o=rx или chmod u=rwx,go=rx.
Другой способ взглянуть на это (который я нахожу более понятным) заключается в том, что chmod +x является установка разрешений относительно, в то время как chmod 755 устанавливает их абсолютно.
После chmod 755 выполняется для файла, его разрешения будет быть 755, или rwxr-xr-x.
chmod +x просто возьмет существующие разрешения и добавлять выполните права доступа к файлу.
Я рекомендую ознакомиться с chmod справочная страница для получения полной информации. Вы просто видите два разных режима работы, доступных с помощью команды chmod для выполнения одной и той же задачи изменения разрешений.
Восьмеричный режим использует числа и устанавливает все разрешения файла. Символьный режим использует буквы и обычно используется для простого изменения существующих разрешений.
chmod 755 наборы rwxr-xr-x покаchmod +x настраивает разрешения таким образом, чтобы у владельца, группы и мира были добавлены разрешения на выполнение. Предполагая, что разрешение файла по умолчанию для rwxr--r-- это настроило бы его на те же разрешения, что и 755 из rwxr-xr-x.
Разница заключается в том, какие разрешения устанавливаются и какой режим вы используете для их установки.
С chmod +x вы устанавливаете исполняемый бит для всех - владельца, группы владельцев и других пользователей. Это известно как символический режим. Чтобы процитировать man chmod:
Оператор + приводит к добавлению выбранных битов режима файла к существующим битам режима файла каждого файла; - приводит к их удалению; и = приводит к их добавлению и удалению неуказанных битов, за исключением того, что неуказанные биты идентификатора пользователя и группы каталога не затрагиваются.
С chmod 755 вы используете восьмеричные числа, двоичное представление которых используется для установки определенных битов разрешений. Первые (левые) 3 бита соответствуют разрешениям владельца, средние 3 - разрешениям группы, а последние (крайние справа) соответствуют разрешениям всех остальных пользователей. Порядок битов всегда один и тот же, read,write,execute или rwx Таким образом, именно потому, что порядок один и тот же, отдельное число при преобразовании в двоичное представление установит биты разрешения, для которых соответствующий позиционный бит в числе равен 1, и отменит тот, который равен 0. В частности:
Восьмеричное число 7 равно 111 в двоичном формате, поэтому вы устанавливаете все биты чтения, записи и выполнения для владельца; rwx установлен.
Восьмеричное число 5 равно 101 в двоичном коде, так что вы устанавливаете чтение и выполнение, но отключаете биты записи, и поскольку это значение равно 5 для группы и других пользователей, эти две категории будут иметь одинаковые разрешения. Таким образом r-x установлен.
Итак, если вы хотите внести дельта-изменение в разрешения способом, соответствующим вашим настройкам umask, используйте синтаксис '+'. Но если вы хотите установить его абсолютно независимо от umask, используйте формат & lt;восьмеричный & gt; и поймите, что вам нужно указать все биты, а не только дельту.
В дополнение к этим прекрасным ответам я хочу упомянуть о небольшом, но, вероятно, важном различии. Команда chmod 755 file эквивалентно chmod 0755 file. Если мы выполним эту команду для файла, в котором установлен SETUID-бит или SETGID-бит, он удалит SETUID/SETGID-бит. chmod +x file оставит SETUID/SETGID-бит нетронутым. Мы можем видеть это в следующем примере:
~$ сенсорный тест ~ $ chmod u + s тест ~$ ll тест-rwSrw-r-- 1 mook mook 0 сентября 14 00:49 тест ~$ chmod + x тест ~$ ll тест-rwsrwxr-1 x mook mook 0 сентября 14 00:49 тест ~$ chmod 755 тест ~$ ll test-rwxr-xr-x 1 мук мук 0 Сентября 14 00:49 тест
@ravery: Привет! Вы нашли раздел комментариев, который представляет собой область, предназначенную для критики и запроса разъяснений. Чтобы предоставить ответ / решение, вы должны использовать раздел “ответ” ниже (найдите большую красную кнопку “Опубликовать свой ответ”). Надеюсь, это поможет!