Почему биты режима S_ISUID и S_ISGID были очищены, когда владелец или группа исполняемого файла изменяются непривилегированным пользователем

Не уверенный в ARM, но возможно можно использовать правила udev сделать это автоматически. например, посмотрите это здесь:
http://robots.mobilerobots.com/wiki/Linux_udev_USB_Device_Permissions_Configuration

и http://sourceforge.net/apps/mediawiki/gizmod/index.php?title=HOWTO_-_Setting_Input_Device_Permissions_-_Creating_a_udev_Rule

2
09.10.2014, 01:20
2 ответа

Я думаю, что вы указываете на это с страницы человека:

Когда владелец или группа исполняемого файла изменяются Непродусный пользователь S_ISUID и S_ISGID Mode Bits очищены.

Так почему они очищаются сейчас. Вы видите, что они очищаются только в случае исполняемого файла . Поскольку, когда установлен один из битов (SUID / SGID), предвосплатный пользователь может выполнить файл как новый владелец файла. Это было бы огромным нарушением безопасности.

2
27.01.2020, 22:05

Я думаю, что вы обманываете Man 2 Chown : Вы не должны очищать S_isuid и S_ISGID , они будут автоматически Очищено, когда вы используете эту функцию в качестве безвисильной пользователя. Если ваша программа работает как root . Поведение (на Linux) зависит от версии ядра.

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

От страницы человека:

  When  the  owner  or  group  of  an  executable file are changed by an
  unprivileged user the S_ISUID  and  S_ISGID  mode  bits  are  cleared.
  POSIX  does not specify whether this also should happen when root does
  the chown(); the Linux behavior depends on  the  kernel  version.   In
  case  of  a non-group-executable file (i.e., one for which the S_IXGRP
  bit is not set) the S_ISGID bit indicates mandatory  locking,  and  is
  not cleared by a chown().
1
27.01.2020, 22:05

Теги

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