Поставил ikiwiki себе в home. На враппер права установлены права с suid (как и положено): -rwsr-sr-x 1 14249 Жнв 15 20:47 public_html/wiki/ikiwiki.cgi* владелец и группа -- 1000
Редактирование не работает, выдаёт ошибку Error: cannot write to /home/user/wiki/.ikiwiki/lockfile: Permission denied Стал разбираться, почему-то враппер запускает вики-движок с правами www-data. В генератор враппера (/usr/share/perl5/IkiWiki/Wrapper.pm) добавил: fprintf(stderr, "before: uid=%i, euid=%i\\n", (int)getuid(), (int)geteuid()); /*added by me*/ if (setregid(getegid(), -1) != 0 && setregid(getegid(), -1) != 0) { perror("failed to drop real gid"); exit(1); } if (setreuid(geteuid(), -1) != 0 && setreuid(geteuid(), -1) != 0) { perror("failed to drop real uid"); exit(1); } fprintf(stderr, "after: uid=%i, euid=%i\\n", (int)getuid(), (int)geteuid()); /*added by me*/ Вот результат: /var/log/apache2/error.log: [Wed Aug 15 20:47:44 2012] [error] [client 192.168.1.2] before: uid=33, euid=33, ... [Wed Aug 15 20:47:44 2012] [error] [client 192.168.1.2] after: uid=33, euid=33, ... В первой выдаче должно быть euid=1000, во второй -- всё по 1000. У apache2 включены модули (из имеющих отношение): cgi, suexec, userdir. Тот же код, взятый враппера, только suid на 33, запущен от 1000 (всё работает): before: uid=1000, euid=33 after: uid=33, euid=33 А вот он запущен апачем: [Wed Aug 15 21:09:39 2012] [error] [client 192.168.1.2] before: uid=33, euid=33 [Wed Aug 15 21:09:39 2012] [error] [client 192.168.1.2] after: uid=33, euid=33 Почему не работает suid из-под апача?