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>