linux 권한 질문입니다 도와주세요 고수님들

dhrhd080의 이미지

실행환경은 ubuntu 16.04 linux 이구요

$$chown root:root 특정파일$$ 를 써서 특정파일의 소유주 권한을 root 즉 최상위관리자로 만들고

$$ls -al 특정파일$$ 을 하면 $$-rwxr -xr -x$$ 이렇게 나오는데 그러면 이 특정파일에서

root 경로에 있는 다른 파일을 읽고 쓰고 실행할수 있는거 아닌가요?

이게 안되서 찾아보니깐 SETUID 설정을 해야한다고 해서 $$chmod 4755$$ 하니깐 이제서야 되더라구요

익명 사용자의 이미지

바로 그런 형태의 동작을 위해서 setuid가 있는 것입니다.

반대로 말하면, setuid를 걸지 않으면 원래 그렇게 동작하지 않지요.

특정 파일의 소유주가 root인 것과, 그 파일을 실행하면 root의 권한으로 실행되는 것은 다른 겁니다.

전자이면서 후자가 아닌 예시로 귀하께서 사용한 ls 프로그램이 있지요.

dhrhd080의 이미지

파일의 소유주와 권한을 헷갈린것 같네요 그런데 또 헷갈리는게 특정파일의 소유주가 일반사용자인 상태에서 SETUID를 하고 이 특정파일에서 root에 있는 다른 파일을 fopen하면 안되더라구요 꼭 소유주를 root로 바꿔주고
SETUID까지 해야지 되는데 왜 이런지 잘 모르겠네요 ㅠ

익명 사용자의 이미지

왜냐하면 setuid는 "해당 파일이 소유주의 권한으로 실행될 것"을 나타내기 때문이지요.
대개 그 소유주는 루트인 경우가 많지만, 원한다면 다른 계정도 얼마든지 가능합니다.

setuid의 동작에 대해서는 검색해보면 수도 없이 많은 자료들이 있습니다.
https://idchowto.com/?p=42667 등등.

김정균의 이미지

ls 결과가

$$ls -al 특정파일$$ 을 하면 $$-rxsr -xr -x$$

라고 했는데, 이 상태가 맞다면 이미 SUID 는 걸려 있는 것 같은데요.

dhrhd080의 이미지

실수로 나중결과를 올렸네요