Penguin

Differences between current version and previous revision of access(2).

Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History

Newer page: version 2 Last edited on Monday, October 28, 2002 8:40:16 pm by PerryLorier
Older page: version 1 Last edited on Tuesday, June 4, 2002 12:23:39 am by perry Revert
@@ -1,45 +1,31 @@
 ACCESS 
 !!!ACCESS 
-NAME  
-SYNOPSIS  
-DESCRIPTION  
-RETURN VALUE  
-ERRORS  
-RESTRICTIONS  
-CONFORMING TO  
-SEE ALSO  
+  
 ---- 
 !!NAME 
  
  
 access - check user's permissions for a file 
 !!SYNOPSIS 
  
  
-__#include  
-__''pathname''__, int__ ''mode''__);  
- __ 
+ __#include <unistd.h>__  
+ __access(char * __''pathname''__, int__ ''mode''__);__  
+  
 !!DESCRIPTION 
-  
  
 __access__ checks whether the process would be allowed to 
 read, write or test for existence of the file (or other file 
-system object) whose name is ''pathname''. If  
- ''pathname'' is a symbolic link permissions of the file  
-referred to by this symbolic link are tested.  
-  
+system object) whose name is ''pathname''. If ''pathname'' is a symbolic link permissions of the filereferred to by this symbolic link are tested. 
  
-''mode'' is a mask consisting of one or more of  
- __R_OK__, __W_OK__, __X_OK__ and  
- __F_OK__. 
+''mode'' is a mask consisting of one or more of __R_OK__, __W_OK__, __X_OK__ and __F_OK__. 
  
  
 __R_OK__, __W_OK__ and __X_OK__ request checking 
 whether the file exists and has read, write and execute 
 permissions, respectively. __F_OK__ just requests 
 checking for the existence of the file. 
-  
  
 The tests depend on the permissions of the directories 
 occurring in the path to the file, as given in 
 ''pathname'', and on the permissions of directories and 
@@ -58,110 +44,45 @@
 Therefore, if a directory is found to be 
 execve__(2) call will 
 still fail. 
 !!RETURN VALUE 
-  
  
 On success (all requested permissions granted), zero is 
 returned. On error (at least one bit in ''mode'' asked 
 for a permission that is denied, or some other error 
 occurred), -1 is returned, and ''errno'' is set 
 appropriately. 
+  
 !!ERRORS 
  
+;[EACCES]: The requested access would be denied to the file or search permission is denied to one of the directories in ''pathname''.  
+;[EROFS]: Write permission was requested for a file on a read-only filesystem.  
+;[EFAULT]: ''pathname'' points outside your accessible address space.  
+;[EINVAL]: ''mode'' was incorrectly specified.  
+;[ENAMETOOLONG]: ''pathname'' is too long.  
+;[ENOENT]: A directory component in ''pathname'' would have been accessible but does not exist or was a dangling symbolic link.  
+;[ENOTDIR]: A component used as a directory in ''pathname'' is not, in fact, a directory.  
+;[ENOMEM]: Insufficient kernel memory was available.  
+;[ELOOP]: Too many symbolic links were encountered in resolving ''pathname''.  
+;[EIO]: An I/O error occurred.  
  
-__EACCES__  
-  
-  
-The requested access would be denied to the file or search  
-permission is denied to one of the directories in  
-''pathname''.  
-  
-  
-__EROFS__  
-  
-  
-Write permission was requested for a file on a read-only  
-filesystem.  
-  
-  
-__EFAULT__  
-  
-  
-''pathname'' points outside your accessible address  
-space.  
-  
-  
-__EINVAL__  
-  
-  
-''mode'' was incorrectly specified.  
-  
-  
-__ENAMETOOLONG__  
-  
-  
-''pathname'' is too long.  
-  
-  
-__ENOENT__  
-  
-  
-A directory component in ''pathname'' would have been  
-accessible but does not exist or was a dangling symbolic  
-link.  
-  
-  
-__ENOTDIR__  
-  
-  
-A component used as a directory in ''pathname'' is not,  
-in fact, a directory.  
-  
-  
-__ENOMEM__  
-  
-  
-Insufficient kernel memory was available.  
-  
-  
-__ELOOP__  
-  
-  
-Too many symbolic links were encountered in resolving  
-''pathname''.  
-  
-  
-__EIO__  
-  
-  
-An I/O error occurred.  
 !!RESTRICTIONS 
-  
-  
 __access__ returns an error if any of the access types in 
 the requested call fails, even if other types might be 
 successful. 
-  
  
 __access__ may not work correctly on NFS file systems 
 with UID mapping enabled, because UID mapping is done on the 
 server and hidden from the client, which checks 
 permissions. 
-  
  
 Using __access__ to check if a user is authorized to e.g. 
 open a file before actually doing so using open(2) 
 creates a security hole, because the user might exploit the 
 short time interval between checking and opening the file to 
 manipulate it. 
+  
 !!CONFORMING TO 
-  
-  
 SVID, AT 
 !!SEE ALSO 
  
-  
- stat(2), open(2), chmod(2),  
- chown(2), setuid(2),  
- setgid(2)  
-----  
+stat(2), open(2), chmod(2), chown(2), setuid(2), setgid(2) 
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.