LINUX.ORG.RU

История изменений

Исправление 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. Всё. Вам же не надо за безопасностью следить - этому модно, а этому нельзя. Так ведь?