История изменений
Исправление vodz, (текущая версия) :
(кроме одинарных кавычек)
Вот именно.
И вообще. Я бы не так делал.
1. Должен быть конфигурационный файл, где указан user=torify, чтобы не было захаркожено в двух местах: в скрипте и в бинарнике имя.
2. Вместо popen(«id -g user») посмотрите man getpwnam («user»). У вас же солидная системная утилита!
3. Вместо system юзайте execvp, тогда точно с эскейпингом не промахнётесь, ибо не надо.
4. А уж совсем вообще, то это бинарник не нужен! :) Вам надо скопировать shell и выставить ему sgid. Всё. Вам же не надо за безопасностью следить - этому можно, а этому нельзя. Так ведь?
Исправление vodz, :
(кроме одинарных кавычек)
Вот именно.
И вообще. Я бы не так делал.
1. Должен быть конфигурационный файл, где указан user=torify, чтобы не было захаркожено вдрух местах: в скрипте и в бинарнике имя.
2. Вместо popen(«id -g user») посмотрите man getpwnam («user»). У вас же солидная системная утилита!
3. Вместо system юзайте execvp, тогда точно с эскейпингом не промахнётесь, ибо не надо.
4. А уж совсем вообще, то это бинарник не нужен! :) Вам надо скопировать shell и выставить ему sgid. Всё. Вам же не надо за безопасностью следить - этому можно, а этому нельзя. Так ведь?
Исходная версия vodz, :
(кроме одинарных кавычек)
Вот именно.
И вообще. Я бы не так делал.
1. Должен быть конфигурационный файл, где указан user=torify, чтобы не было захаркожено вдрух местах: в скрипте и в бинарнике имя.
2. Вместо popen(«id -g user») посмотрите man getpwnam («user»). У вас же солидная системная утилита!
3. Вместо system юзайте execvp, тогда точно с эскейпингом не промахнётесь, ибо не надо.
4. А уж совсем вообще, то это бинарник не нужен! :) Вам надо скопировать shell и выставить ему sgid. Всё. Вам же не надо за безопасностью следить - этому модно, а этому нельзя. Так ведь?