У чому різниця між chmod u+xі справедливими chmod +x? Я бачив безліч навчальних посібників, які кажуть використовувати, u+xщоб зробити сценарії виконуваними. Однак, опускання цього u, здається, не має ніякого ефекту.
У чому різниця між chmod u+xі справедливими chmod +x? Я бачив безліч навчальних посібників, які кажуть використовувати, u+xщоб зробити сценарії виконуваними. Однак, опускання цього u, здається, не має ніякого ефекту.
Відповіді:
Сторінка людини chmodобкладинки це.
Це означає, що chmod u+x somefileбуде надано лише власник дозволів на виконання цього файлу, тоді як chmod +x somefileце те саме, що chmod a+x somefile.
На сторінці chmod man написано:
Формат символічного режиму є
[ugoa...][[+-=][rwxXstugo...]...][,...]. Можна задати кілька символічних операцій, розділених комами.Комбінація букв "ugoa" визначає, яким чином буде змінено доступ користувачів до файлу: користувача, якому належить (u), інших користувачів у групі файлу (g), інших користувачів, які не належать до групи файлів (o), або всіх користувачів (a). Якщо нічого з цього не наводиться, ефект виглядає так, як якщо б було дано "a", але біти, встановлені в umask, не впливають.
chmod +x fileвідрізняється від chmod a+x file- див. Відповідь Равексіна для подробиць.
Щойно робити, +xви застосуєте його до всіх прапорів: [u] ser, [g] roup, [o] thers.
Введіть man chmodдля отримання додаткової інформації.
Перш за все, я пропоную вам ознайомитись із цими питаннями та відповідями, наведеними нижче:
Це допомагає зрозуміти всі необхідні частини, які потрібно знати.
chmod +xдорівнює chmod ugo+x(На основі umaskзначення)chmod a+xдорівнює chmod ugo+x(не враховуючи umaskзначення)Результатом цього chmod a+xє встановлення виконуваного біта для всіх (власник, група, інші), просто так?
Однак, chmod +xоскільки це трохи складніше, він говорить про використання umaskвартості та виходячи з цього значення додайте xвсі, хто дозволений.
Тож якщо umaskмоє оточення 0002:
$ umask
0002
$ umask -S
u=rwx,g=rwx,o=rx
Це додасть xдо користувача (власника), групи та інших, у цій ситуації (що є ситуацією за замовчуванням для більшості систем), це точно так само chmod ugo+xабо те саме chmod a+x, або у більш багатослівній формі:
chmod u+x,g+x,o+x
Чи можете ви помітити зв'язок між chmod u+x,g+x,o+xі виходом umask -S?
Тепер давайте змінимо umaskпоточну оболонку на 0003:
$ umask 0003
$ umask
0003
$ umask -S
u=rwx,g=rwx,o=r
Як ви бачите, тепер тільки власник та група збираються отримати виконавчий біт, а не інші. Це означає chmod +x, що зараз дорівнює chmod u+x,g+xабо chmod ug+x.
Що станеться , якщо я біжу chmod +wна файл після установки , umaskщоб 0003?
Те ж саме , як і раніше, вона впливає тільки userі groupфайлу , тому що 3 також видаляє дозвіл на запис (2).
Це робить такий же ефект, коли ви видаляєте трохи так chmod -w:
$ mkdir test
$ stat -c %A test
drwxrwxr-x
$ umask
0002
$ chmod +w test
$ stat -c %A test
drwxrwxr-x
$ chmod a+w test
$ stat -c %A test
drwxrwxrwx
$ chmod -w test
chmod: test/: new permissions are r-xr-xrwx, not r-xr-xr-x
$ stat -c %A test
dr-xr-xrwx
chmod u+x зробить файл виконуваним для вашого користувача (він додасть його лише для вашого користувача, хоча він може бути вже виконаний власником групи або "іншим").
chmod +xабо chmod a+x("все плюс виконуваний біт") робить файл виконуваним всіма.
Якщо ви зробите це в каталозі, він замість цього зробить пошук у каталозі. Тобто ви можете перелічити вміст каталогу, на який у вас є дозвіл + x.
chmod u+x fileозначає додати виконавчий біт до власника файлу, ігноруючи umask(Ваш мод буде встановлений, не виникає питання).
chmod +x fileозначає додати виконавчий біт власнику, групі та іншим під час розгляду umask(спочатку перевірити, umaskпотім застосувати моди, це може мати різні ефекти, залежно від значення umask).
давайте створимо два файли:
$ touch file1 file2
$ ls -l file1 file2
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:45 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:45 file2
Тепер я поставив umaskна «111» , щоб видалити виконувані біти: umask 111.
$ chmod u+x file1
$ chmod +x file2
$ ls -l file1 file2
-rwxrw-rw- 1 ravexina ravexina 0 Aug 5 01:47 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:47 file2
Як ви бачите, chmodігнорований umaskфайл і file1 отримав виконавчий біт для свого власника, проте другий нічого не зробив, оскільки враховує значення umask.