权限是-rw------- ,所属用户是flag04, 就是说,除root 权限外,只有flag04 这个用户可以对它进行读取操作。而flag04 这个可执行程序的所属用户组是flag04 ,我们当前的用户level04 和flag04 都是属于同一用户组的,而程序对这个用户组仅有 x (执行)权限,所以只有通过flag04 下手了。仔细看看flag04 的源码,找出问题: 01#include <stdlib.h> 02#include <unistd.h> 03#include <string.h> 04#include <sys/types.h> 05#include <stdio.h> 06#include <fcntl.h> 0708intmain(intargc,char**argv,char**envp) 09{ 10charbuf[1024]; 11intfd,rc; 1213if(argc==1){ 14 printf("%s [file to read]\n",argv[0]); 15 exit(EXIT_FAILURE); 16} 1718if(strstr(argv[1],"token")!=NULL){ 19 printf("You may not access '%s'\n",argv[1]); 20 exit(EXIT_FAILURE); 21} 2223fd=open(argv[1],O_RDONLY); 24if(fd==-1){ 25 err(EXIT_FAILURE,"Unable to open %s",argv[1]); 26} 2728rc=read(fd,buf,sizeof(buf)); 2930if(rc==-1){ 31 err(EXIT_FAILURE,"Unable to read fd %d",fd); 32} 33