티스토리 뷰

It

su와 sudo의 차이점

zoffldlah 2023. 2. 6. 15:47

QR인식 or 이미지 클릭하여 회원가입시(평생 수수료 25%이상 할인)-[25% or more discount on commission]

 

아래 링크를 통해 가입시 바이낸스 코인 거래수수료 25% 평생할인!

25% lifetime discount on Binance Coin transaction fees when you sign up through the link below!

https://accounts.binance.com/en/register?ref=286562663

 

Log In | Binance

login-description

accounts.binance.com

 

바이낸스 추천코드로 가입하고 수수료 25% 평생 할인 받으세요! (바이낸스 가입 레퍼럴코드, 추천

바이낸스 추천코드로 가입하고 수수료 25% 평생 할인 받으세요! 바이낸스 가입코드, 레퍼럴코드, 추천코드, 할인코드  :  ( 286562663 ) 아래 링크를 통해 가입시 25% 할인 받을 수 있습니다 http

pink24.tistory.com

 

 

사용자 계정으로 로그인을 한 경우 관리자(root)권한이 필요한 경우가 있다.

패키지설치 / 시스템설정파일수정/사용자추가/계정권한변경....등등

이런경우 권한을 얻기위해 su 명령어를 사용한다.

사용법 : su [변경하고자 하난 사용자 id - 생략시 root 디폴트]

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

$ su

Password:

# exit

logout

$

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

위처럼 일반계정쉘 $이 보이다가 su (root)로 변경된 후 관리자계정쉘 #로 변경되는 것을 볼 수 있다.

하지만 su 뒤에 -를 붙이면 동작방식이 달라진다.

-는 -l 혹은 --login과 동일한 명령어이다. ( su -는 su --login root와 동일)

- 의 유무는 환경변수와 워킹디렉토리에 영향을 준다.

위의 표를 하나씩 살펴보기로 하죠.

환경변수 TERM, HOME, SHELL, USER, LOGNAME는,

su나 su -나 모두 변경된 사용자 ID에 맞게 재설정됩니다.

HOME과 SHELL은 /etc/passwd에서 변경할 사용자의 정보를 가져와서 설정합니다.

USER와 LOGNAME은 변경할 사용자계정을 입력하지요.

PATH는 su에선 변경 전후가 동일하지만,

su -에선 PATH가 컴파일시 설정한 default 값으로 설정됩니다.

그 외의 환경변수는 분명한 차이가 있죠.

su는 기존 사용자 환경에서 설정된 환경변수를 그냥 그대로 유지합니다.

그에 반해, su -는 기존 사용자 환경에서 사용하던 환경변수를 모두 지워버립니다.

$ export hello=tizen
$ su
암호:  # echo $hello tizen # exit $ su - # echo $hello (null)

위의 예를 살펴보시죠.

기존 사용자 계정에서 hello라는 변수에 tizen이라는 값을 넣어두었습니다.

그리고 su로 관리자 계정으로 변경합니다.

su는 기타 환경변수를 유지하기 때문에 hello의 환경변수값이 tizen으로 나오겠지요?

위의 예에서도 echo $hello를 하니 tizen이 나오네요.

그리고 exit하여 원래 계정으로 복귀한 후,

이번엔 su -를 합니다.

그리고 echo $hello를 해봅니다.

이번에는 아무 것도 나오지 않네요.

--login 옵션으로 환경변수가 정리되었기 때문입니다.

그리고, su는 워킹디렉토리를 변경하지 않습니다.

반면 su -는 변경한 사용자 계정의 홈디렉토리로 이동하게 됩니다.

$ pwd /tmp $ su 암호:  # pwd /tmp # exit exit $ su - 암호:  # pwd /root

최초에 /tmp 디렉토리에 있었고,

su를 해도 여전히 /tmp에 머물고 있습니다.

하지만, su -를 하면, 관리자 계정의 홈디렉토리인 /root로 이동하게 됩니다

위의 차이점을 알고 사용하면 됩니다.

워킹디렉토리는 cd로 변경하면 그만이니,

환경변수 설정부분만 유의하면 되겠네요.

환경변수는 빌드/실행에 영향을 줄 수 있으니까요.

sudo 와 su는 모두 권한에 관련된 명령어 이지만 차이가 있다.

sudo 같은 경우에는 일시적으로 특정 권한 (root) 을 사용해서 처리할 일이 있는경우에 사용한다.

ex) sudo mkdir aaa

매번 sudo 를 치기 귀찮은 경우에는 계정 자체를 root 권한으로 변경해서 처리할 수 있다.

ex) su root

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함