Red Hat Linux 소유권 허가권에 대해서

hyper2004의 이미지

rwx/rwx/rwx

에서 첫번째 필드는 UID로 지정한 사용자(owner)에게 적용되는 것이고

두번째 필드는 GID로 지정한 그룹 사용자들(group)에게 적용되는 것이고

세번째 필드는 기타 사용자(other)에게 적용되는 것이잖아요

1. 그런데 sticky field는 대체 뭐죠...??

2. UID, GID, sticky field를 설정하는것과 안하는것의 차이는 뭐죠...?(4xxx, 2xxx, 1xxx 등 처럼요)

3. 그리고 UID설정할때에 "s"라고 나오는 것과 "S"라고 나오는 것의 차이는 뭐죠??

3.그리고 chmod 777 /bin/su 이라고 했을때에 모든ㅅ가용자가 "# su -"라고 하면 그 명령이 먹혀야 하는것이 아닌가요? 그런데 "su: incorrect password"라고 나오면서 먹히질 않네요...

lusilis의 이미지

1. sticky bit가 설정된 파일의 권한으로 실행할 수 있도록 해주는 특수 권한 입니다.

가령 passwd 같은 명령을 일반 유저가 실행한다면 /etc/shadow 파일을 변경할 수 없으므로 오류가 발생하겠지만..

sticky bit를 설정해서 일반 유저가 passwd를 실행할 때는 root 권한으로 실행할 수 있도록 해줍니다.

2. 1번의 경우처럼 필요한 경우에만 해주시면 됩니다.

3. 기존 파일에 실행 권한이 있었다면 s, 실행 권한이 없었다면 S로 표기 됩니다.
ex) rwxrw-rw- test.sh <= 이 파일에 u+s를 실행하면 rwsrw-rw-가 되고 g+s를 실행하면 rwxrwSrw-가 됩니다.

4. su는 1번에서 설명 했던 passwd처럼 sticky bit 설정이 되어 있어 별도의 보안 설정을 해두지 않았다면 일반 유저도 사용이 가능합니다.

su 파일의 권한을 777로 바꾸면서 sticky bit 설정이 풀려서 그러니 chmod 4755 su를 실행해 주세요.

su: incorrect password 메세지가 뜨는건 권한이 없어 /etc/shadow 파일을 읽지 못했기 때문입니다.

hyper2004의 이미지

답변감사합니다.

1. 그러면 chmod 4777 /etc/passwd, chmod 4777 /etc/shadow이렇게 하면 일반사용자 A가 passwd B처럼해서 다른사용자 B의 비밀번호를 바꿀 수 있어야 하는것 아닌가요?

이렇게 하고 일반사용자로 passwd B하니까

passwd: Only root can specify a user name

이라고 뜨네요

2. chmod 1777 /bin/su를 하면 rwxr-xr-t로 sticky bit가 설정되었으니 일반사용자들이 사용가능해야 하는것이 아닌가요?

역시

su: incorrect password

라고 나오네요...

pogusm의 이미지

sticky bit (1000) 는
# ls -lad /tmp
drwxrwxrwt 3 root root 4096 8월 3 19:40 /tmp
처럼, /tmp디렉토리내에서는 누구든 자유롭게 파일을 쓸수있지만,
그 파일은 해당 소유자만 삭제할수 있는것을 말합니다..

반면
# ls -al /etc/passwd /etc/shadow
-rw-r--r-- 1 root root 1769 7월 24 14:22 /etc/passwd
-r-------- 1 root root 1122 7월 24 14:22 /etc/shadow
이 파일들의 권한을 보면 알 수 있듯이, 해당 파일을 수정하려면 root의 권한이 반드시 필요합니다

그래서
# ls -al /usr/bin/passwd
-rwsr-xr-x 1 root root 27768 1월 7 2007 /usr/bin/passwd
/usr/bin/passwd 명령어는 SUID(set-user-id) (4000) 로 설정되어 있어서,
일반사용자가 /usr/bin/passwd를 실행하게 되면,
일시적으로 관리자의 권한으로 실행하게되어, /etc/passwd, /etc/shadow 를 수정할수 있게 되는것입니다.

# ls -la /bin/su
-rwsr-xr-x 1 root root 28336 3월 1 07:25 /bin/su
/bin/su 명령어도 위와 같은거겠죠..

----------------------------------------------

그리고
# chmod 4777 /etc/passwd
# chmod 4777 /etc/shadow
라는 설정은 매우 위험해 보입니다..
할 필요도 없고, 해서도 안되는 설정입니다...

# chmod 644 /etc/passwd
# chmod 400 /etc/shadow
으로 당장 바꾸시길 권해드립니다..

또, 4000 SUID 퍼미션이 붙는다는건..
해당 파일을 실행할때만 소유자의 권한으로 실행된다는것이지
읽기,쓰기 권한이 주어진다는건 아닌걸로 압니다

/bin/su 설정도
# chmod 4755 /bin/su
으로 바꾸시고..

아, 그리고 또,
-rwsr-xr-x 1 root root 27768 1월 7 2007 /usr/bin/passwd
/usr/bin/passwd 권한에 4000(SUID) 퍼미션이 붙어있다해도,
일반 사용자는 본인 이외 타인의 비밀번호를 변경할수는 없습니다..
(/etc/shadow 파일중 일반사용자 본인 필드만 수정이 가능한거죠..)

댓글 달기

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