Разница в том, какие права доступа установлены и какой режим вы используете для их установки.
При этом chmod +x
вы устанавливаете исполняемый бит для всех - владельца, группы владельцев и других пользователей. Это известно как символический режим. Процитирую man chmod
:
Оператор + вызывает добавление выбранных битов режима файла к существующим битам режима файла каждого файла; - вызывает их удаление; и = вызывает их добавление и приводит к удалению безымянных битов, за исключением того, что неизменяемые установленные пользователем биты каталога и идентификаторы группы не затрагиваются.
При chmod 755
использовании восьмеричных чисел, двоичное представление которых используется для установки определенных битов разрешений. Первые (слева) 3 бита соответствуют разрешениям владельца, средние 3 - разрешениям группы, а последний (самый правый) - разрешениям всех других пользователей. Порядок битов всегда одинаков, read,write,execute
или, rwx
таким образом, именно потому, что порядок одинаков, индивидуальное число при преобразовании в двоичное представление будет устанавливать биты разрешения, для которых соответствующий позиционный бит в числе равен 1, и сбрасывать тот, который равен 0 . В частности:
- Восьмеричное число
7
- 111 в двоичном, так что вы устанавливаете все биты чтения, записи и выполнения для владельца; rwx
установлено.
- Восьмеричное число
5
равно 101 в двоичном, так что вы устанавливаете чтение и выполнение, но отключаете биты записи, и, поскольку оно равно 5 для группы и других пользователей, эти две категории будут иметь одинаковые разрешения. Так r-x
установлено.
Вот небольшая демонстрация:
bash-4.3$ touch file1 file2
bash-4.3$ chmod +x file1
bash-4.3$ chmod 755 file2
bash-4.3$ ls -l file1 file2
-rwxrwxr-x 1 xieerqi xieerqi 0 7月 6 13:54 file1
-rwxr-xr-x 1 xieerqi xieerqi 0 7月 6 13:54 file2
chmod +x
устанавливает все исполняемые флаги без изменения других разрешений.chmod 755
устанавливает RWXR-XR-X