혹시 이게 무슨 소린지 아시는분 계시나요??

hyuny824의 이미지

제가 공부하는 책중에 있는 연습문제 인데요.. 무슨 말을 하는건지 잘 이해가 안가네요.. 아시는분 쉽게 설명좀 해주시면 감사하겠습니다...

1. 특정 디렉토리에 대하여 그 디렉토리를 소유한 사용자만이 디렉토리로 이동 가능하게 하고 그 이외의 사용자들은 이동 불가능하게 하려고 한다. 해당 디렉토리에 대한 허가권의 변경을 통해서 이루어라.

2. 로그인 셸은 내장 명령어를 제외한 명령을 수행하면 로그인 셸은 자식 셸을 생성한다. 명령어 줄로부터의 입력을 받는 것은 로그인 셸인가 또는 자식 셸인가?

3. 만약 PATH 환경 변수의 시작으로 .을 가지는 경우에 셸은 유틸리티를 수행하기 위해 실행 파일을 어디에서 먼저 찾을 수 있는가? 또, 이 경우에 발생할 수 있는 보안상의 문제는 무엇인가?

wafe의 이미지

hyuny824 wrote:
1. 특정 디렉토리에 대하여 그 디렉토리를 소유한 사용자만이 디렉토리로 이동 가능하게 하고 그 이외의 사용자들은 이동 불가능하게 하려고 한다. 해당 디렉토리에 대한 허가권의 변경을 통해서 이루어라.

디렉토리 권한 설정을 700 으로 하면 디렉토리 소유자만 들어갈 수 있습니다. ls에서는 drwx------ 로 보이게 됩니다.

hyuny824 wrote:
2. 로그인 셸은 내장 명령어를 제외한 명령을 수행하면 로그인 셸은 자식 셸을 생성한다. 명령어 줄로부터의 입력을 받는 것은 로그인 셸인가 또는 자식 셸인가?

외부 명령어를 실행시키면 셸이 자식 프로세스를 생성해서(fork()) 실행하게 됩니다(exec). 입력은 부모 프로세스가 받고 실행은 자식 프로세스가 합니다.

hyuny824 wrote:
3. 만약 PATH 환경 변수의 시작으로 .을 가지는 경우에 셸은 유틸리티를 수행하기 위해 실행 파일을 어디에서 먼저 찾을 수 있는가? 또, 이 경우에 발생할 수 있는 보안상의 문제는 무엇인가?

실행 파일을 찾을 때 PATH에 적힌 순서대로 디렉토리를 뒤지면서 실행 파일을 찾습니다. 따라서 현재 디렉토리에서부터 실행파일을 찾습니다. "현재 디렉토리"라는 것은 항상 바뀌는 것이므로 PATH에 넣는 것 자체가 말이 안됩니다.

Heejoon Lee

sangwoo의 이미지

wafe wrote:

hyuny824 wrote:
3. 만약 PATH 환경 변수의 시작으로 .을 가지는 경우에 셸은 유틸리티를 수행하기 위해 실행 파일을 어디에서 먼저 찾을 수 있는가? 또, 이 경우에 발생할 수 있는 보안상의 문제는 무엇인가?

실행 파일을 찾을 때 PATH에 적힌 순서대로 디렉토리를 뒤지면서 실행 파일을 찾습니다. 따라서 현재 디렉토리에서부터 실행파일을 찾습니다. "현재 디렉토리"라는 것은 항상 바뀌는 것이므로 PATH에 넣는 것 자체가 말이 안됩니다.

말은 됩니다 ;-) 다만, PATH에 . 이 시작으로 들어가게 되면 보안상 이런저런
문제점이 생길 수 있습니다.
가령 누군가가 침입하여 어떤 디렉토리를 만들어 놓고, 거기에다가 ls라는 이름으로
악의적인 실행 파일을 넣어 놓았다고 해 봅시다.
이럴 때, 만일 privileged user (root라든지..)의 PATH가 . 로 시작하게 되어 있다면,
그 디렉토리에서 ls를 실행시키거나 하면, 시스템의 ls가 아닌, 악의적인 실행
파일이 실행되어 버릴 것입니다. 이런 문제가 있으므로, PATH 환경변수를 . 로
시작하는 것은 추천되지 않습니다.

----
Let's shut up and code.

offree의 이미지

sangwoo 님 말씀대로 PATH 에 . 를 넣는 것은 별로 추천하지 않습니다.

보통 개인계정으로 테스트하면서 프로그램을 만들어 실행시킬때 현재디렉토리에 있는 것을 실행시키려면

./test 형식으로 ./ 를 붙여야 하는데. 이것이 불편(?)해서 PATH 에 넣는 경우도 있지만, 별로 추천하지도 않고, "./" 를 붙이는 것도 쓰다보면 익숙해 지기도 하구요.

사용자가 바꾸어 나가자!!

= about me =
http://wiki.kldp.org/wiki.php/offree , DeVlog , google talk : offree at gmail.com

innu의 이미지

시스템 기본적으로 지정된것을 제외하고 왠만하면 특정디렉토리를 PATH에 추가하지 않습니다.
어쩐지 불안한 느낌이 들어서요..
ROOT계정의 PATH변수 마지막에 . 추가하면 ... :shock:

Quote:

# aaa
# ./aaa

첫번째 처럼 하면 뭔가 불안한 느낌입니다.

몸이 조금 불편해지더라도 마음만큼은 편한게 세상이치와 딱 맞아떨어지는듯 합니다.

Debian Spirit !!!

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.