리눅스 - Setuid, Setgid

OS/Linux 2016. 2. 17. 07:00

<Setuid?>

파일 실행 시 파일 소유자의 권한을 잠시 바꿔준다.뭐로? 루트의 권한으로한마디로 소유자의 권한 루트권한으로 잠시 빌려 실행하는 것이다.

4000 -> 소유자 권한 x(실행)자리에 s를 사용

2000 -> 그룹의 x(실행)자리에 s를 사용

1000 -> 그외의 그룹에 x자리에 t를 사용

 

-rwx------ 이 파일은 700의 권한을 가진 파일이다. 만약 나는 일반사용자인데, 잠시동안 이파일을 root권한으로 사용하고 싶다. 그럴땐 root가 잠깐 사용할 수 있도록 파일권한을 주는것인데 그것을 setuid라고 한다.

여기에 사용자에게 권한을 주면 rws------가 되어 4700의 권한을 가진다.

 

<실습>

useraddroot사용자만 사용할 수 있도록 설정되어 있다.

이것을 setuid를 사용해 잠시 일반사용자가 사용할 수 있게 변경하고, 일반사용자로 로그인해서 usradd명령어를 실행해보자.

 



 

fedorauseradd를 사용해 계정 생성을 하려고했지만 거부됨.

root로 로그인하여 setuid를 변경해보자.



 

변경 후, 다시 fedora로 로그인해서 test1를 생성하였더니 아무이상없이 잘 만들어졌다.

마지막으로 cat /etc/passwd를 사용해서 잘 만들어졌는데 확인 할 수있도록 한다.

원리는 fedora라는 사용자가 useradd를 사용했을 당시 권한이 root로 옮겨지는 것이다. 마치 자기 자신이 root로 둔갑되는 것과 같은것이다. root권한을 얻어 useradd를 사용하고, 명령어 사용이 끝났으면 root권한을 되돌려줘서 다시 자기자신은

fedora라는 유저로 생활하게 되는것이다.

 


<Setgid?>

따로 설명안하겠다. Setuid랑 똑같은 성질인데, 단지 그룹의 권한을 바꿔주는 것이라고 생각하면 된다.

'OS > Linux' 카테고리의 다른 글

리눅스 - FTP서버  (0) 2016.02.18
리눅스 - 환경변수  (0) 2016.02.17
리눅스 - /etc/fstab  (0) 2016.02.16
리눅스 - Quota(쿼터) (사용자별로 공간 할당하기)  (0) 2016.02.15
리눅스 - RAID (Redundant Array of Inexpensive Disks)  (0) 2016.02.15
posted by 경원구