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