> > dharmashankar subramanian wrote:
> > > Hi Shawn,
> > > It appears to me that the directory has both read, as 
> well as execute
> > > permissions (for me).
> >
> > > See below, the output of 'ls -al' inside the directory.
> >
> > > $ ls -al
> > > total 28
> > > drwxr-s--x  3 shankar shankar 2048 2005-02-14 11:24 .
> > > drwxr-s--x  8 shankar shankar 2048 2009-12-29 13:11 ..
> > > -rw-r-----  1 shankar shankar 8355 2001-08-09 03:46 Common.pm
> > > drwxr-s--x  2 shankar shankar 2048 2005-02-14 11:24 ExtUtils
> > > -rw-r-----  1 shankar shankar 1001 2001-08-09 04:00 IO_Lines.t
> > > -rw-r-----  1 shankar shankar 1122 2001-08-09 03:42 IO_Scalar.t
> > > -rw-r-----  1 shankar shankar 1031 2001-08-09 04:00 
> IO_ScalarArray.t
> > > -rw-r-----  1 shankar shankar 1026 1998-03-27 02:31 IO_WrapTie.t
> > > -rw-r-----  1 shankar shankar 1168 2001-08-07 03:15 simple.t
> > > -rw-r-----  1 shankar shankar  942 2001-08-07 02:02 two.t
> >
 
> 
> $ ls -al
> total 464
> drwxr-s--x   2 shankar shankar  2048 2009-11-26 04:25 .
> drwxr-s--x  16 shankar shankar  2048 2009-12-29 12:49 ..
> -rw-r-----   1 shankar shankar  5316 2009-09-07 10:57 Aliases.t
> -rw-r-----   1 shankar shankar  3087 2009-11-16 11:44 CJKT.t
> -rw-r-----   1 shankar shankar  4702 2009-09-07 10:57 Encode.t
> -rw-r-----   1 shankar shankar  1004 2009-11-26 04:24 Encoder.t
> -rw-r-----   1 shankar shankar   416 2009-11-26 04:24 Mod_EUCJP.pm
> -rw-r-----   1 shankar shankar  4762 2009-11-26 04:24 Unicode.t
> -rw-r-----   1 shankar shankar  4086 2009-09-07 10:57 at-cn.t
> -rw-r-----   1 shankar shankar  2606 2009-09-07 10:57 at-tw.t
> -rw-r-----   1 shankar shankar 32104 2009-09-07 10:57 big5-eten.enc
> -rw-r-----   1 shankar shankar 45868 2009-09-07 10:57 big5-eten.utf
> -rw-r-----   1 shankar shankar 42530 2009-09-07 10:57 big5-hkscs.enc
> -rw-r-----   1 shankar shankar 60690 2009-09-07 10:57 big5-hkscs.utf
> -rw-r-----   1 shankar shankar   994 2009-11-26 04:24 enc_data.t
> -rw-r-----   1 shankar shankar  2101 2009-11-26 04:24 enc_eucjp.t
> -rw-r-----   1 shankar shankar    24 2009-09-07 10:57 enc_module.enc
> -rw-r-----   1 shankar shankar  1746 2009-11-26 04:24 enc_module.t
> -rw-r-----   1 shankar shankar  1919 2009-11-26 04:24 enc_utf8.t
> -rw-r-----   1 shankar shankar  5235 2009-09-07 10:57 encoding.t
> -rw-r-----   1 shankar shankar  5197 2009-11-26 03:52 fallback.t
> -rw-r-----   1 shankar shankar   357 2009-11-26 04:24 from_to.t
> -rw-r-----   1 shankar shankar 17367 2009-09-07 10:57 gb2312.enc
> -rw-r-----   1 shankar shankar 24663 2009-09-07 10:57 gb2312.utf
> -rw-r-----   1 shankar shankar   820 2009-09-07 10:57 grow.t
> -rw-r-----   1 shankar shankar  3461 2009-09-07 10:57 gsm0338.t
> -rw-r-----   1 shankar shankar  3461 2009-11-16 11:44 guess.t
> -rw-r-----   1 shankar shankar   337 2009-09-07 10:57 jis7-fallback.t
> -rw-r-----   1 shankar shankar   145 2009-09-07 10:57 jisx0201.enc
> -rw-r-----   1 shankar shankar   208 2009-09-07 10:57 jisx0201.utf
> -rw-r-----   1 shankar shankar 16145 2009-09-07 10:57 jisx0208.enc
> -rw-r-----   1 shankar shankar 22899 2009-09-07 10:57 jisx0208.utf
> -rw-r-----   1 shankar shankar 20332 2009-09-07 10:57 jisx0212.enc
> -rw-r-----   1 shankar shankar 20069 2009-09-07 10:57 jisx0212.utf
> -rw-r-----   1 shankar shankar  2670 2009-11-26 04:24 jperl.t
> -rw-r-----   1 shankar shankar 19173 2009-09-07 10:57 ksc5601.enc
> -rw-r-----   1 shankar shankar 27228 2009-09-07 10:57 ksc5601.utf
> -rw-r-----   1 shankar shankar  4585 2009-11-26 04:24 mime-header.t
> -rw-r-----   1 shankar shankar   836 2009-11-26 04:24 mime-name.t
> -rw-r-----   1 shankar shankar  1043 2009-09-07 10:57
> mime_header_iso2022jp.t
> -rw-r-----   1 shankar shankar  4944 2009-11-16 11:44 perlio.t
> -rw-r-----   1 shankar shankar  2623 2009-11-26 04:24 piconv.t
> -rw-r-----   1 shankar shankar  1733 2009-11-26 04:24 rt.pl
> -rw-r-----   1 shankar shankar  1858 2009-09-07 10:57 unibench.pl
> -rw-r-----   1 shankar shankar  2530 2009-09-07 10:57 utf8strict.t


Hi Shankar,

it look's like your home directory has the SGID bit set. I would have a look in 
this direction. Might be, this causes your problems (see below a short 
description in case you aren't familiar with the special permission bits).

I don't know AIX, but if there're tools like strace and ltrace you could have a 
closer look why the reading of the test files fails

cheers, gabi


--------------------snip----------------------------------
*SUID or setuid: change user ID on execution. If setuid bit is set, when the 
file will be executed by a user, the process will have the same rights as the 
owner of the file being executed.

*SGID or setgid: change group ID on execution. Same as above, but inherits 
rights of the group of the owner of the file on execution. For directories it 
also may mean that when a new file is created in the directory it will inherit 
the group of the directory (and not of the user who created the file).

By default, when a user executes a file, the process which results in this 
execution has the same permissions as those of the user. In fact, the process 
inherits his default group and user identification.

If you set the SUID attribute on an executable file, the process resulting in 
its execution doesn't use the user's identification but the user identification 
of the file owner.

For instance, consider the script myscript.sh which tries to write things into 
mylog.log :

# ls -l
-rwxrwxrwx 10 george administrators 4096 2006-03-10 12:50 myscript.sh
-rwxrwx--- 10 george administrators 4096 2006-03-10 12:50 mylog.log

As you can see in this example, George gave full permissions to everybody on 
myscript.sh but he forgot to do so on mylog.log. When Robert executes 
myscript.sh, the process runs using Robert's user identification and Robert's 
default group (robert:senioradmin). As a consequence, myscript fails and 
reports that it can't write in mylog.log.

In order to fix this problem George could simply give full permissions to 
everybody on mylog.log. But this would make it possible for anybody to write in 
mylog.log, and George only wants this file to be updated by his myscript.sh 
program. For this he sets the SUID bit on myscript.sh:

# chmod u+s myscript.sh

As a consequence, when a user executes the script the resulting process uses 
George's user identification rather than the user's. If set on an executable 
file, the SUID makes the process inherit the owner's user identification rather 
than the one of the user who executed it. This fixes the problem, and even 
though nobody but George can write directly in mylog.log, anybody can execute 
myscript.sh which updates the file content.

Similarly, it is possible to set the SGID attribute on an executable file. This 
makes the process use the owner's default group instead of the user's one. This 
is done by:

# chmod g+s myscript.sh

By setting SUID and SGID attributes the owner makes it possible for other users 
to execute the file as if they were him or members of his default group.
-----------------------snap--------------------------------
--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to