/mnt/usb/../../a.txt 를 /a.txt 로 알아내는 방법
글쓴이: semtul79 / 작성시간: 목, 2013/07/18 - 6:27오후
리눅스의 rm 과 같은 프로그램을 만들려고 합니다.
아래와 같이 실행되는거죠.
./myRm /etc/passwd
근데, 보안기능을 넣어서 특정 디렉토리내의 파일들만 삭제하게 하고 싶습니다.
파라메타로 /mnt/usb/../../a.txt을 받았을 경우 /a.txt 과 같이 절대경로로 변환해야 되는데 그 방법을 모르겠습니다.
.. 및 ~ 등도 파라메타로 받을수 있기에 파싱해서 하는건 좀 별로인듯 하고
char *path = getAbsolutePath("~/a.txt"); 와 같이 파라메타로 path값을 주면 실제 그 파일에 access 한 후 그 파일의 path를 받아오면 될듯한데
이런걸 해주는 표준함수가 있나요?
아니면 좋은 방법이라도... 부탁드립니다 ㅜㅜ
Forums:
원래 권한이 없으면, 해당 파일을 지울 수 없습니다.
원래 권한이 없으면, 해당 파일을 지울 수 없습니다. 따라서 myRm이 필요할 것 같지 않네요.
myRm같은 걸 만들면, 오히려 내부 버그로 인하여 보안 문제가 발생할 확율이 높습니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기