Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Nov 1999 11:57:24 -0700 (MST)
From:      "John E. Hein" <jhein@timing.com>
To:        Michael Kennett <mike@laurasia.com.au>
Cc:        keith@mail.telestream.com, freebsd-questions@freebsd.org
Subject:   Re: Testing file permissions
Message-ID:  <14377.49172.154829.498969@taz.timing.com>
In-Reply-To: <199911101849.CAA12198@laurasia.com.au>
References:  <Pine.LNX.4.10.9911101006440.13100-100000@mail.telestream.com> <199911101849.CAA12198@laurasia.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
Michael Kennett wrote at 02:49 +0800 on Nov 11:
 > > You can just test the file attributes...
 > > 
 > > -d  file exists and is a directory
 > > -e  file exists
 > > -f  file exists and is a regular file
 > > -r  you have read permissions on the file
 > > -s  file exists and is not empy
 > > -w  You have write permisions on the file
 > > -x  You have execute permissions on the file
 > > -O  You own the file
 > > -G  Files group IS matches yours
 >                              ^^^^^ (Note these!)
 > 
 > That is not quite what I want to do. These tests (and their results) apply
 > to the user/group id of the process conducting the test.
 > 
 > What I'd like to determine is the user/group that owns the file, and what
 > the three different levels of access (world/group/user) are. In other
 > words, rather than finding out if the *current* process can access the
 > file, I'd like to know (in the script) what the full mode of the access
 > to the file is.

How's your perl? ... see perlfunc(1) man page, and look for the stat
 function.
Or use stat(2) in a small C program and call it from your script.

It sounds like the former would be best for your purpose.  Here's
 a sample snippet

.
.
# get permissions
($dev,$ino,$mode) = stat($filename);
# user execute bit set?
printf "mode & 0100: 0%o\n", $mode & 0100;
.
.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14377.49172.154829.498969>