Я понимаю, как заставить исполняемый файл также выполняться как root с помощью команды chmod u+s, чтобы установить suid. Мне интересно, как заставить исполняемый файл всегда выполняться как не-root пользователь, который отличается от пользователя, который выполняет файл.
Итак, для ясности предположим, что у меня есть пользователи Алиса и Боб, оба не в группе sudo. Алиса создает исполняемый файл, который считывает что-то из ее домашней папки, и хочет убедиться, что Боб также может выполнить файл, но не хочет, чтобы исполняемый файл запускался с привилегиями root из-за проблем безопасности. Как Алиса может убедиться, что файл всегда запускается под ее пользователем, без того, чтобы Бобу требовались ее учетные данные?
решение1
Флаг suid
гарантирует, что файл всегда будет выполняться от имени текущего владельца файла, а не пользователя root.
Поэтому, если вы хотите, чтобы файл всегда запускался как alice
, то дайте ему право собственности на alice с помощью: chown alice filename
, а затем установите для него suid.