[Linux] sudo, su의 차이점

민지킴·2021년 5월 14일
0

차이점

  • sudo : 현재 계정에서 다른 계정의 권한만 빌림
  • su : 다른 계정으로 전환
  • su- : 다른 계정으로 전환 + 그 계정의 환경변수 적용

상세 내용

sudo는 root가 아닌 사용자가 root에 준하는 능력으로 sudo 다음에 나오는 명령을 실행하게 하는 명령어이다. su는 root 패스워드가 필요하지만 sudoer 에서 사용한 허락한 사용자는 모두 패스워드와 관계없이 쓸 수 있다. sudo는 슈퍼유저, 관리자 권한을 가지지만 근본적으로는 해당 사용자가 내리는 명령이다. sudo su는 일시적으로 그 명령을 root가 내리는 명령으로 한다. 예를 들어 sudo로 작업하면 소유자가 지금 사용자로 나오지만, sudo su로 작업하면 소유자가 root가 된다. sudo -s는 sudo만으로 su명령어와 같은 효과가 난다.

su는 root 암호를 알아야 하지만 sudo -s는 sudoer에서 허가된 사용자라면 본인 암호를 넣고 쓸 수 있는 su와 동일한 명령어이다. sudo로 가능한 명령어를 지정하는 곳은 sudoer 파일에서 설정 가능하다.

요약 :
sudo -s를 하고 자기 암호를 넣으면 root로 로그인한 쉘로 전환된다.

sudo su와 sudo -s 의 차이점

sudo su, sudo -s 둘 다 root shell을 사용할 수 있는 명령어이지만, 전자가 계정으로 독립적으로 root로 전환해 버리는데 반해(즉 root shell을 직접 실행) 후자는 현 계정의 모든 환경 변수들을 root계정으로 넘기는 차이가 있다.

그래서 sudo su를 하면 홈 디렉토리, 현재 디렉토리가 /root가 되지만 sudo -s를 하게 되면 홈 디렉토리는 그대로 유직되면 .bashrc 역시 전자가 $user의 ~/.bashrc를 읽는데 반해 후자는 /root/,bashrc를 읽는다.

profile
하루하루는 성실하게 인생 전체는 되는대로

0개의 댓글