Red Hat Linux 소유권 허가권에 대해서
글쓴이: hyper2004 / 작성시간: 수, 2010/08/04 - 3:19오후
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"라고 나오면서 먹히질 않네요...
Forums:
1. sticky bit가 설정된
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 파일을 읽지 못했기 때문입니다.
답변감사합니다.1.
답변감사합니다.
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
라고 나오네요...
참고하세요..
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 파일중 일반사용자 본인 필드만 수정이 가능한거죠..)
댓글 달기