현재 폴더를 PATH에 추가 시키면 안되는 이유가 정확히 먼가요?

ixevexi의 이미지

지금 유닉스 파워툴을 읽고 있습니다.
이걸 읽으니 솔직히 제가 알고자 했던것이 다 들어있군요

전 시스템 어드민이 아닌지라 /just for fun
러닝 리눅스 보다는 이 책이 훨씬 맘에 듭니다 ^^

아무튼 각설하고
보통 MS사의 OS를 보면 자신의 디렉토리를 가장 먼저 검색하고
없으면 path에서 찾지 않습니까?

그런데 리눅스/유닉스 계열에서는 어째 나중에 검색하기는 커녕
path에 기본으로 들어있지 않더라구요

책에서 본대로
마지막에 ~~~:
이렇게 공란으로 비워두니까 자신의 디렉토리를 검색해서 실행하더라구요

제 질문은 정확히
1. 저렇게 가운데에 쓰지 않고(~~::~~) 마지막에 공란(~~~:)으로 띄워두어도
동작하는 것이 옳은 것인지 //혹여 꼼수랄지.. 이런걸 싫어해서요 ^^
2. 왜 자신의 디렉토리를 기본 PATH에 추가하면 보안에 위험이 있는지

읽어보니 그런 뉘양스는 없고 다만 중간에 현재 디렉토리가 들어가면
보안상 위험이 있다~ 라고만 쓰여있어 질문 드립니다.
보안상 위험하면 당장 고치겠습니다.

ssggkim의 이미지

http://wiki.kldp.org/wiki.php/LinuxdocSgml/Path
에서 가져왔습니다.

Quote:

패스는 때로 중대한 보안문제를 야기하기도 한다. 잘못된 패스설정을 악용 하여 시스템을 해킹하는 것은 흔한경우이다. 과거(?) 패스설정에서 흔한 실수는 root의 패스에 '.'이 들어가 있는경우이다. 악의있는 해커는 자신의 홈디렉토리에 'ls' 프로그램을 두어 root가 다음처럼

# cd hacker # ls

해커 자신의 디렉토리에서 ls를 실행하게 되면 해커가 만든 프로그램이 실행 되도록 한다. 이러한원리는 root 권한으로 실행되는 모든 프로그램에 간접적으로 적용이 된다. 모든 데몬 프로세스들은 일반 유저가 쓰기가능한 것이면 어떠한 것도 실행해서는 안된다. 몇몇 시스템에서는 /usr/local/bin 디렉토리에 프로그 램들이 있고 그리 엄격하지 않은 보안 상태에 있다.(단지 이 디렉토리가 root의 패스에 없을뿐..) 어쨌거나, 만약에 어떤 데몬이 'foo' 라는 명령을 실행하는데 /usr/local/bin 디렉토리가 패스에 걸려있다면 '/bin/foo' 대신에 '/usr/local/bin' 이 실행될수도있을 것이다. 그렇다면 /usr/local/bin 에 쓰기 권한이 있는 사용자는 누구나 시스템에 침입해 들어갈 수 있게 된다. 패스에 설정된 디렉토리들의 '순서'가 어떤지 주의깊게 살펴보는것도 상당히 중요하다. 만약 /usr/local/bin이 /bin 보다 앞에 패스가 걸려있다면 ,음.. 그건 보안문제가 있는 것이다. 반대로 /bin 이 앞에있고 /usr/local/bin 이 뒤에있다면 로컬라이즈된 /usr/local/bin에 있는 프로그램이 /bin 에 있는 것을 대신하여 수행될 가능성은 없다.

리눅스에서 패스를 검토, 적용하는 것은 운영체제 시스템 콜 레벨에서 이루 어진다는 것을 기억해야한다. 어느곳에서나 명령어를 입력하면 설정된 디렉 토리가 검색되어지고 적어도 /bin 과 /usr/bin 이 검색되어진다.

익명 사용자의 이미지

해당 부분 개념 이해가 어려웠는데 많은 도움을 받았습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.