su/ su - / sudo 명령어, 차이

아토시스·2022년 11월 4일
2

Linux

목록 보기
10/11

리눅스에서 특정 명령을 실행하거나 , 특정 파일에 접근하기 위해서 때로는 루트(root) 권한이 필요한 경우가 있다.

이러한 경우에 사용하게 되는 su / su- / sudo 명령어들과 각 명령어들의 차이점, 현재 계정을 확인하는 whoami 명령어와 계정 전환 후 다시 이전 계정으로 돌아가게 하는 logout /exit 명령어들에 관한 내용이다.

우선, 일반 사용자(user)가 루트(root)권한을 사용하기 위해서는 su(Switch User) 혹은 sudo(SuperUser DO ) 명령어를 사용하면 된다.


1. su (Switch User) 명령어

Switch User에서 알 수 있듯이 , 현재 계정을 로그아웃하지 않고 다른 계정으로 전환하는 명령어 이다.

  • su 명령어 예제
    - su root
    - su -root
  • su 명령어 사용 시 옵션
    - -c: 쉘을 실행하지 않고, 주어진 명령만을 수행한다.
    • -s: 지정된 셀로 로그인한다.
    • -,-l: 지정한 사용자의 환경 변수를 적용하여 로그인한다.

su 명령어를 실행하게 되면 root 사용자의 비밀번호를 물어본다.여기서 '-'의 유무의 차이가 있다.

su 와 su- 는 둘 다 루트(root)계정으로 전환하는 것을 의미하지만 ,
su는 root 계정의 환경 변수를 가져오지 않고, 현제 계정의 환경 변수를 사용하게 되는 차이점이 있다.

su - 하고 로그인을 하게 되면 기본 /root 디렉토리(directory)로 이동하게 된다. (환경 변수를 가져온다는 의미)


2. sudo (SuperUser DO) 명령어

  • 이 역시 SuperUser DO에서 알 수 있듯이, 슈퍼 유저로 무언가를 수행한다는 의미를 가지고 있는 명령어이다.

현재 계정에서 단순히 root의 권한 만을 빌리는 것이다.

  • sudo 명령어 예제
    - sudo [command]

sudo 명령어를 실행하게 되면 root 권한으로 명령어를 실행하게 된다.
즉, 하나의 명령에 대하여 일시적으로 root 권한을 사용하는 것을 말한다.

실행하기 전 , 현재 사용자의 비밀번호를 물어본다.

3. su 와 sudo 의 차이점

  • su는 계정을 전환하기 위한 것이고,
  • sudo는 권한을 빌려 명령어를 실행하기 위한 것이다.

4. whoami

  • 현재 사용자를 확인하는 명령어이다.
    (su 명령어를 통해 사용자를 전환하고 혹은 logout/exit로 다시 돌아오기를 하며 확인해보기)

5. logout/exit

  • 전환 전 계정으로 돌아가는 명령어이다.
profile
오늘보다 더 나은 내일이 되길 바라며

0개의 댓글