summaryrefslogtreecommitdiff
path: root/pod
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-09-25 07:13:13 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-09-25 07:13:13 +0000
commit5ff3f7a4e03a6b103d9e628865398e498e9a7968 (patch)
tree5884f57bd4a3baf1ad76e8ab3f81f12aa71a31da /pod
parent46124e9ee58ad41479e5b089638f6c263bbddcb7 (diff)
downloadperl-5ff3f7a4e03a6b103d9e628865398e498e9a7968.tar.gz
big Configure update from Jarkko: sync metaconfig units; d_statblks fix
for Linux; hpux CMA-threads hints; ELF support for FreeBSD; beginnings of full-fledged 64-bit support (including support for: fseeko/ftello, Quad_t aka long long, hpux and irix 64-bits hints, new 64-bit constants in Fcntl) From: Jarkko Hietaniemi <jhi@iki.fi> Date: Fri, 11 Sep 1998 23:56:11 +0300 (EET DST) Message-Id: <199809112056.XAA04720@alpha.hut.fi> Subject: [PATCH] 5.005_51: Configure "Massive Attack" -- From: Jarkko Hietaniemi <jhi@cc.hut.fi> Date: 12 Sep 1998 09:44:25 +0300 Message-ID: <oeeaf45bzjq.fsf@alpha.hut.fi> Subject: Re: [PATCH] 5.005_51: Configure "Massive Attack" p4raw-id: //depot/perl@1889
Diffstat (limited to 'pod')
-rw-r--r--pod/perldiag.pod15
-rw-r--r--pod/perlfunc.pod39
2 files changed, 43 insertions, 11 deletions
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 0e37c4dfff..37bcf1a750 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -1096,6 +1096,16 @@ unlikely to be what you want.
(F) An untrapped exception was raised while executing an END subroutine.
The interpreter is immediately exited.
+=item effective %s access is not implemented
+
+(F) We cannot switch the real and effective uids or gids.
+The C<filetest access> pragma is unavailable in this system.
+
+=item entering effective %s access failed
+
+(F) While under the C<filetest access> pragma, switching the real and
+effective uids or gids failed.
+
=item Error converting file specification %s
(F) An error peculiar to VMS. Because Perl may have to deal with file
@@ -1476,6 +1486,11 @@ L<perlfunc/last>.
that name, not even if you count where you were called from. See
L<perlfunc/last>.
+=item leaving effective %s access failed
+
+(F) While under the C<filetest access> pragma, switching the real and
+effective uids or gids failed.
+
=item listen() on closed fd
(W) You tried to do a listen on a closed socket. Did you forget to check
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 07cea8c78e..92a9532289 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -129,8 +129,9 @@ C<pack>, C<read>, C<syscall>, C<sysread>, C<syswrite>, C<unpack>, C<vec>
=item Functions for filehandles, files, or directories
C<-I<X>>, C<chdir>, C<chmod>, C<chown>, C<chroot>, C<fcntl>, C<glob>,
-C<ioctl>, C<link>, C<lstat>, C<mkdir>, C<open>, C<opendir>, C<readlink>,
-C<rename>, C<rmdir>, C<stat>, C<symlink>, C<umask>, C<unlink>, C<utime>
+C<ioctl>, C<link>, C<lstat>, C<mkdir>, C<open>, C<opendir>,
+C<readlink>, C<rename>, C<rmdir>, C<stat>, C<symlink>, C<umask>,
+C<unlink>, C<utime>
=item Keywords related to the control flow of your perl program
@@ -262,15 +263,6 @@ X<-S>X<-b>X<-c>X<-t>X<-u>X<-g>X<-k>X<-T>X<-B>X<-M>X<-A>X<-C>
-A Same for access time.
-C Same for inode change time.
-The interpretation of the file permission operators C<-r>, C<-R>, C<-w>,
-C<-W>, C<-x>, and C<-X> is based solely on the mode of the file and the
-uids and gids of the user. There may be other reasons you can't actually
-read, write, or execute the file, such as AFS access control lists. Also note that, for the superuser,
-C<-r>, C<-R>, C<-w>, and C<-W> always return C<1>, and C<-x> and C<-X> return
-C<1> if any execute bit is set in the mode. Scripts run by the superuser may
-thus need to do a C<stat()> to determine the actual mode of the
-file, or temporarily set the uid to something else.
-
Example:
while (<>) {
@@ -279,6 +271,31 @@ Example:
#...
}
+The interpretation of the file permission operators C<-r>, C<-R>,
+C<-w>, C<-W>, C<-x>, and C<-X> is by default based solely on the mode
+of the file and the uids and gids of the user. There may be other
+reasons you can't actually read, write, or execute the file. Such
+reasons may be for example network filesystem access controls, ACLs
+(access control lists), read-only filesystems, and unrecognized
+executable formats.
+
+Also note that, for the superuser on the local filesystems, C<-r>,
+C<-R>, C<-w>, and C<-W> always return 1, and C<-x> and C<-X> return 1
+if any execute bit is set in the mode. Scripts run by the superuser
+may thus need to do a stat() to determine the actual mode of the file,
+or temporarily set the uid to something else.
+
+If you are using ACLs, there is a pragma called C<filetest> that may
+produce more accurate results than the bare stat() mode bits.
+
+When under the C<use filetest 'access'> the above-mentioned filetests
+will test whether the permission can (not) be granted using the
+access() family of system calls. Also note that the -x and -X may
+under this pragma return true even if there are no execute permission
+bits set (nor any extra execute permission ACLs). This strangeness is
+due to the underlying system calls' definitions. Read the
+documentation for the C<filetest> pragma for more information.
+
Note that C<-s/a/b/> does not do a negated substitution. Saying
C<-exp($foo)> still works as expected, however--only single letters
following a minus are interpreted as file tests.