sh : Permission denied 문제 해결 좀요 ㅠ
안녕하세요. 리눅스 프로그래밍을 얼마 접하지 못하여서 초반부터 난관에 봉착하여 질문드립니다..
#include
#include
#include
#include
void main(int argc, char * argv[])
{
char cmdbuf[256];
char pathbuf[1024];
if(argc != 2)
{
fprintf(stderr, "Usage : mydircontrol dirname\n");
exit(1);
}
mkdir(argv[1], 0755);
strcpy(cmdbuf, "ls -l | grep ");
strcpy(cmdbuf, argv[1]);
printf("%s\n", cmdbuf);
system(cmdbuf);
chdir(argv[1]);
if(getcwd(pathbuf, 1023)==NULL)
{
perror("getcwd");
exit(1);
}
printf("Current directory : %s\n", pathbuf);
chdir("..");
rmdir(argv[1]);
printf("%s\n", cmdbuf);
system(cmdbuf);
}
위 코드에서 와 같이 간단하게 system 함수를 이용해서 "ls"와 같은 bin폴더에 밑에 있는 명령어들을
실행시키려고 하는것이 목적인데요.
제목에 적어둔것과 같이 Permission Denied이... system 함수 call하는 부분에서 떨어지네요..
현재 user 모드에서 작업을 해서 그런듯 한데요...
관리자모드로 전환해서 실행하니 잘 돌아가는것을 보면요;;
회사내 공용 서버에서 작업할 것이라서... 관리자 모드로 함부러 접근하기가 좀 그래서..
user모드 상태에서 어찌 할 수 있는 방법이나..
혹은 위와같은 system함수나. popen 함수(이것도 해 봤는데 마찬가지로 권한문제 발생하더군요..)
가 아닌 다른 방법으로 해결이 가능할지 문의드립니다~
답변 부탁드려요.ㅠ
일단 위의 코드를 실행하려는 위치에 Write권한이 있는지...
일단 위의 코드를 실행하려는 위치에 Owner, Group, Others에 대해서 Read권한과 Write권한이 있는지 확인해주세요noo
권한 확인 하였는데 그래도 안되네요..
음.. 권한 확인이라는것이..
저 소스파일을 담고 있는 폴더의 권한.. 을.. 우선 chmod 777로 변경해서
Owner, Group, Others
RWX 모두 가능하도록 하였는데요.. 그래도 Permission Denied가 나오네요;;
chown 을 이용해서 owner과 group를
chown 을 이용해서 owner과 group를 root로 수정하신후에
chmod 4777을 해보세요
그리고 user 상태에서 실행해 보세요
댓글 달기