Як я можу очистити дозвіл "s" в каталозі в Linux?


24

У мене є каталог, який відображається з маскою дозволу drwsrwsr-x. Коли я намагаюся скинути дозволи на 755S, все ще залишається.

Що таке "s" і чому я не можу змінити дозволи на 775 ( drwxrwxr-x)?

Відповіді:


25

S, які ви бачите у позиції "Execute" у стовпці користувача та групи, це біти SetUID (Set User ID on Execution) та SetGID (Set Group ID on Execution).

Права доступу до файлу Unix - це фактично чотиризначне восьмеричне число SUGO

  • S керує бітами SetUID (4), SetGID (2) та "Sticky" (1)
  • U елементи управління (Read) (4) / Write (2) / Execute (1) біти для власника файлу
  • G контролює читання / запис / виконання бітів для групи файлів
  • O контролює читання / запис / виконання бітів для всіх інших.

Ви можете видалити встановлені біти зі свого каталогу за допомогою chmod ug-s directory, абоchmod 0755 directory

Для отримання додаткової інформації див сторінку Man для цієї сторінкиchmod та Вікіпедію про біт SetUID .



"що таке drwsrwsrwx?" <- перевірити ще раз
Хрвой Шполяр

6
chmod 0755ніяк НЕ розчистити Setuid трохи, по крайней мере , нема на Linux. Зараз я тестую на інших системах.
FUZxxl

1
POSIX говорить, що його реалізація визначена для типів файлів, крім звичайних файлів, незалежно chmodвід того, чи в октамальному режимі очищається встановлений, setgid та vtx біт.
FUZxxl

2
Щоб очистити встановлений біт у каталозі в Linux, використовуйте chmod 00755; дивіться unix.stackexchange.com/q/393531/46851
Roger Lipscombe

23

налаштований і нестабільний

setuid і setgid (короткий для встановленого ідентифікатора користувача після виконання та встановлення ідентифікатора групи після виконання відповідно) - це прапори прав доступу Unix, які дозволяють користувачам запускати виконуваний файл з дозволами власника або групи виконавчого файлу. Вони часто використовуються, щоб дозволити користувачам комп'ютерної системи запускати програми з тимчасово підвищеними привілеями для виконання конкретного завдання. Хоча надані пільги щодо ідентифікатора користувача або групи не завжди підвищені, як мінімум, вони є конкретними.

Щоб видалити встановлені та встановлені жорсткі біти чисельно, потрібно встановити біт-шаблон із 0(наприклад: 0775стає 00775).

Запустіть, щоб видалити setuid та setgid:

chmod 00775 path

або

chmod a-st path

Це в каталозі не файл
Hrvoje Špoljar

1
каталог також є файлом у файловій системі Unix, що, каже, ooshro, є абсолютно правильним
lynxman

так, це все файл, але опис не підходить, оскільки ви не виконуєте те, що схоже на drwxrwxr-x: |
Хрвой Шполяр

У unix inode - це те, що отримує дозволи.
chris

2
GNU chmod не очищає встановлені та встановлені жорсткі байти в каталогах, коли ви виконуєте його у восьмеричному режимі. POSIX дозволяє таку поведінку.
FUZxxl

2

Додавання відповіді ooshro ...

Якщо ви використовуєте права доступу suid або sgid для каталогу, будь-які файли, створені всередині цього каталогу, матимуть того самого власника (якщо suid) або групи (sgid), як і відповідний каталог.

Я використовую це для своєї домашньої акції Samba. Базовий каталог належить нікому користувачеві та груповій олімпії, а дозволи - 2770. Отже, ви повинні бути в групі олімпіади, щоб прочитати або написати що-небудь нижче цього каталогу, і це переконається, що олімпія є власником групи всього, що знаходиться під ним . У мене також Samba налаштований використовувати dirmask 2770 та файлову маску 660, щоб дозволу виправляти до кінця дерева.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.