#include <unistd.h>
#include <sys/types.h>
gid_t getgid(void);
gid_t getegid(void);
#include <errno.h>
#include <stdlib.h>
int main()
{
printf ("Process's gid = %d, egid = %d\n", getgid(), getegid());
int fd;
if ( (fd = open("temp.txt", O_RDONLY)) == -1) {
printf("Open failure, errno is %d:%s\n", errno, strerror(errno));
exit (EXIT_FAILURE);
} else {
printf ("Open successfully!\n");
}
close(fd);
exit (EXIT_SUCCESS);
}
ls -al temp.txt
-rw-r--r-- 1 beyes users 0 Dec 24 20:15 temp.txt
chmod o-r temp.txt
usermod -g 101 groad
./getgid
Process's gid = 100, egid = 100
Open successfully!
# ./getgid
Process's gid = 0, egid = 0
Open successfully!
./getgid
Process's gid = 101, egid = 101
Open failure, errno is 13:Permission denied
chmod g+s getpid
./getgid
Process's gid = 101, egid = 100
Open successfully!
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |