Как вызвать chmod и сохранить бит SGID?

После долгих поисков кажется невозможным (или, если это так, я просто нигде не могу найти никакой информации) отслеживать USB-трафик, когда контроллер находится в устройстве (или периферийный) режим. Это возможно, только если контроллер настроен как хост .

Поскольку usbmon не генерирует никаких следов, я, к сожалению, не могу использовать какие-либо инструменты (Wireshark, dumpcap ...), потому что им в первую очередь нужна эта трассировка.

Итак, сейчас я попытаюсь либо изменить модуль ядра libcomposite , чтобы добавить отладочную информацию, либо даже написать специальный модуль, предназначенный для сниффинга (но это намного превышает мои текущие знания в дело на данный момент).

1
26.08.2017, 12:48
2 ответа

Если вы можете изменить сценарий, самым простым решением может быть изменение вызовов mkdirна mkdir --mode=770.

Если вы не можете изменить сценарий, вам могут помочь ACL:

setfacl -m d:u::rwx,d:g::rwx,o::- pics thumbs

umaskне устанавливает права на выполнение для файлов. Он никогда не устанавливает никаких разрешений; он просто предотвращает установку разрешений при создании файла.

2
27.01.2020, 23:24

У вас есть несколько вариантов:

  • chmod g+x a
  • изменить umask
  • использовать списки контроля доступа.

Да, вы можете устанавливать биты без очистки других битов. См. первый вариант. Но чтобы сделать это более автоматизированным, выполните одно из следующих действий:

  • Установите для umask значение rwxr -x ---, и у каждого пользователя будет собственная группа по умолчанию (их основная группа принадлежит только ему ).
  • Используйте списки контроля доступа :, с их помощью вы можете не только устанавливать разрешения для нескольких групп и пользователей, вы также можете устанавливать значения по умолчанию для каталогов (, как и в sgid, но не только для группы, но и для режима ). ]. см. setfacl, getfacl. см. также Какие существуют способы установки прав доступа к файлам и т. д. в gnu/linux
1
27.01.2020, 23:24

Теги

Похожие вопросы