blob: 18973f2e6a8bb39da590b93738f411edf8c918ae [file] [log] [blame]
#include <sys/types.h>
#include <sys/dir.h>
#include <sys/param.h>
#include <sys/stat.h>
#include <stdio.h>
#include <unistd.h>
/* Check directory Access */
int check_directory_access(char * directory) {
struct stat statbuf;
printf("Checking %s\n", directory);
if (stat(directory, &statbuf) == -1) {
printf("FAIL: %s. Could not obtain directory status\n", directory);
return 1;
}
if (statbuf.st_uid != 0) {
printf ("FAIL: %s. Invalid owner\n", directory);
return 1;
}
if ((statbuf.st_mode & S_IWGRP) || (statbuf.st_mode & S_IWOTH)) {
printf ("FAIL: %s. Invalid write access\n",directory);
return 1;
}
printf ("PASS: %s\n", directory);
return 0;
}
int main(int argc, char *argv[]) {
if (argc !=2) {
printf("Please enter target directory");
return 1;
}
return check_directory_access(argv[1]);
}