Steven Haryanto wrote: >> Kalau saya coba di redhat62 kernel 2.4.18 standar, hasilnya >> seperti a)
problem yang saya alami nampaknya berhubungan dengan system() (double fork). berhubung saya sedang tidak ada akses ke mesin rh62, bisa minta tolong coba run program c berikut? ===euid.c=== #include <unistd.h> #include <stdio.h> #include <stdlib.h> main() { p(); if (getenv("child")!=NULL) exit(0); seteuid(500); p(); system("child=1 ./euid"); } p() {printf("uid=%d,euid=%d\n",getuid(),geteuid());} ====== hasil di tempat saya (rh7.2, 2.4.18+reiserquota): [root@builder tmp]# ./euid uid=0,euid=0 uid=0,euid=500 uid=0,euid=0 padahal kelakuan saya seingat dulu itu (dan yang saya inginkan :p) adalah, di baris ketiga euid-nya tetap 500. hasil strace menunjukkan, syscall yang dipanggil adalah setresuid32(). -- sh PS: sebetulnya yang ingin saya coba bandingkan adalah versi php-nya: ===euid.php=== #!/usr/bin/php -q <? function p() {printf("uid=%d,euid=%d\n",posix_getuid(),posix_geteuid());} p(); if ($child) exit; posix_seteuid(500); p(); system("QUERY_STRING=child=1 ./euid.php"); ?> ====== -- Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3