혹시 이게 무슨 소린지 아시는분 계시나요??
글쓴이: hyuny824 / 작성시간: 일, 2004/03/21 - 2:48오후
제가 공부하는 책중에 있는 연습문제 인데요.. 무슨 말을 하는건지 잘 이해가 안가네요.. 아시는분 쉽게 설명좀 해주시면 감사하겠습니다...
1. 특정 디렉토리에 대하여 그 디렉토리를 소유한 사용자만이 디렉토리로 이동 가능하게 하고 그 이외의 사용자들은 이동 불가능하게 하려고 한다. 해당 디렉토리에 대한 허가권의 변경을 통해서 이루어라.
2. 로그인 셸은 내장 명령어를 제외한 명령을 수행하면 로그인 셸은 자식 셸을 생성한다. 명령어 줄로부터의 입력을 받는 것은 로그인 셸인가 또는 자식 셸인가?
3. 만약 PATH 환경 변수의 시작으로 .을 가지는 경우에 셸은 유틸리티를 수행하기 위해 실행 파일을 어디에서 먼저 찾을 수 있는가? 또, 이 경우에 발생할 수 있는 보안상의 문제는 무엇인가?
Forums:
Re: 혹시 이게 무슨 소린지 아시는분 계시나요??
디렉토리 권한 설정을 700 으로 하면 디렉토리 소유자만 들어갈 수 있습니다. ls에서는 drwx------ 로 보이게 됩니다.
외부 명령어를 실행시키면 셸이 자식 프로세스를 생성해서(fork()) 실행하게 됩니다(exec). 입력은 부모 프로세스가 받고 실행은 자식 프로세스가 합니다.
실행 파일을 찾을 때 PATH에 적힌 순서대로 디렉토리를 뒤지면서 실행 파일을 찾습니다. 따라서 현재 디렉토리에서부터 실행파일을 찾습니다. "현재 디렉토리"라는 것은 항상 바뀌는 것이므로 PATH에 넣는 것 자체가 말이 안됩니다.
Heejoon Lee
Re: 혹시 이게 무슨 소린지 아시는분 계시나요??
말은 됩니다 ;-) 다만, PATH에 . 이 시작으로 들어가게 되면 보안상 이런저런
문제점이 생길 수 있습니다.
가령 누군가가 침입하여 어떤 디렉토리를 만들어 놓고, 거기에다가 ls라는 이름으로
악의적인 실행 파일을 넣어 놓았다고 해 봅시다.
이럴 때, 만일 privileged user (root라든지..)의 PATH가 . 로 시작하게 되어 있다면,
그 디렉토리에서 ls를 실행시키거나 하면, 시스템의 ls가 아닌, 악의적인 실행
파일이 실행되어 버릴 것입니다. 이런 문제가 있으므로, PATH 환경변수를 . 로
시작하는 것은 추천되지 않습니다.
----
Let's shut up and code.
sangwoo 님 말씀대로 PATH 에 . 를 넣는 것은 별로 추천하지
sangwoo 님 말씀대로 PATH 에 . 를 넣는 것은 별로 추천하지 않습니다.
보통 개인계정으로 테스트하면서 프로그램을 만들어 실행시킬때 현재디렉토리에 있는 것을 실행시키려면
./test 형식으로 ./ 를 붙여야 하는데. 이것이 불편(?)해서 PATH 에 넣는 경우도 있지만, 별로 추천하지도 않고, "./" 를 붙이는 것도 쓰다보면 익숙해 지기도 하구요.
사용자가 바꾸어 나가자!!
= about me =
http://wiki.kldp.org/wiki.php/offree , DeVlog , google talk : offree at gmail.com
시스템 기본적으로 지정된것을 제외하고 왠만하면 특정디렉토리를 PATH에
시스템 기본적으로 지정된것을 제외하고 왠만하면 특정디렉토리를 PATH에 추가하지 않습니다.
어쩐지 불안한 느낌이 들어서요..
ROOT계정의 PATH변수 마지막에 . 추가하면 ... :shock:
첫번째 처럼 하면 뭔가 불안한 느낌입니다.
몸이 조금 불편해지더라도 마음만큼은 편한게 세상이치와 딱 맞아떨어지는듯 합니다.
Debian Spirit !!!
댓글 달기