Dan*_*ook 1 c unix file-permissions
我可以使用stat()来确定所有者,组或其他人拥有的权限,并且我可以使用geteuid()和getpwuid()来获取进程的用户名.我不太确定如何在没有系统调用的情况下获取用户所属的组.
即使知道如何获得群组,整合所有这些信息似乎也需要做很多工作.有没有更简单的方法?
该访问()POSIX函数可以检查的权限,而无需打开它.但是,它需要一个系统调用.
access()函数应根据amode中包含的位模式检查由path参数指向的路径名所指定的文件,使用真实用户ID代替有效用户ID和真实组ID代替有效的组ID.
例如:
access("/etc/passwd",W_OK)
Run Code Online (Sandbox Code Playgroud)
检查您是否具有passwd文件的写入权限.使用R_OK,将检查读取权限.
该eaccess()函数(euidaccess是同义词)使用有效的用户和组ID.虽然eaccess似乎得到了广泛支持,但据我所知它并不是POSIX标准的一部分.