On Fri, Jul 30, 1999 at 06:23:44PM +0700, Priyadi Iman Nurcahyo wrote:
% saya punya program perl seperti ini:
% 
% #!/usr/bin/perl
%  
% $ENV{'PATH'} = "/usr/bin:/bin:/usr/local/bin";
% $ENV{SHELL} = '/bin/sh' if exists $ENV{SHELL};
% delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
% print "EUID: $>\nEGID: $)\n";
% print `id`;
% 
% ownernya root.root, mode 6755 (setuid dan setgid nyala)...
% dari dokumentasi perl secara implisit dikatakan bahwa 'id' di akan di-eksekusi
% atas nama root...
% 
% tapi ternyata hasilnya:
% ~/tmp/ ./test.pl
% EUID: 0
% EGID: 0 501
% uid=501(priyadi) gid=501(priyadi) euid=0(root) egid=0(root) groups=501(priyadi)
% 
% sudah dicoba pakai system() dan exec(), hasilnya sama juga...
% 
---end quoted text---

    Menurut saya begini Mas Pri: real uid/gid diisi oleh orang yang
    menjalankan program tsb. (priyadi), sedang effective uid/gid tetap
    dimiliki oleh root (lihat field euid dan egid). Jadi tetap dibedakan
    antara real dan effective uid/gid (dan di sini menariknya kan?).

    Kalau mau dianggap dieksekusi oleh root (dalam hal ini effective
    uid/gid), silakan saja real-nya diset sama dengan effective:

        $< = $>;        # set real uid = eff. uid
        $( = $);        # set real gid = eff. gid

    Apa seperti itu yang diinginkan?

-- 
@mal
[EMAIL PROTECTED]
-----------------------
Inga'... inga'... bapilih ramai-ramai
                -- ajakan pemilu pertama setelah reformasi

--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]
Hosted by http://www.Indoglobal.com

Kirim email ke