LINUX.ORG.RU

Права в Buildroot

 ,


0

1

Всем привет, мне необходимо установить права на запуск /sbin/reboot пользователю www-data. Утилиты sudo нет, соответственно sudoers тоже, ставить нельзя - ограничение на объем дистрибутива. Как это можно сделать в билдруте? Читал ман про user tables, но не уверен в том ли направлении копаю.


Читал ман про user tables, но не уверен в том ли направлении копаю.

В том, копай дальше

Harald ★★★★★
()

можно на /sbin/reboot suid бит поставить

Harald ★★★★★
()

Встраивамое устройство, да? Может быть, написать примитивную suid-обёртку?

#include <pwd.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main() {
	struct passwd * wwwdata = getpwnam("www-data");
	if (!wwwdata) {
		perror("getpwnam");
		return -1;
	}
	if (getuid() != wwwdata->pw_uid) return -2;
	return execl("/sbin/reboot", "reboot", (char*)NULL);
}

Код получает информацию о пользователе www-data из /etc/passwd, сравнивает свой uid с полученным (у suid-программ euid становится равным uid владельца файла, а uid остаётся исходным), и если проверка проходит, запускает /sbin/reboot без параметров.

anonymous
()

Где работаешь ?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.