Різниця полягає в тому, які дозволи встановлюються та в якому режимі ви їх використовуєте.
З 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