root, sudo, su

김석·2023년 5월 27일
0

Linux

목록 보기
10/12

1. root 계정

  • Ubuntu에서는 일반적으로 root 계정이 잠겨 있음.
  • 따라서 잠겨있는 root 계정으로 로그인할 수 없음.
  • 일반 사용자는 root 계정으로 로그인하는 대신 일시적으로 root 권한을 얻기 위해 sudo 명령어를 사용함.

2. sudo 명령어

  • Super User DO 의 줄임말이었으나, UNIX의 기능이 확장되며 Substitute User DO(다른 사용자의 권한으로 실행) 으로도 사용됨.
  • 일반 사용자가 root 권한을 잠시 빌려 실행하게 하는 명령어.
  • 권한만 잠시 빌리는 것이기 때문에 근본적으로 명령을 내리는 주체는 현재 사용자이다.
  • 그런데 sudo 명령어를 사용할 때 root 사용자가 아닌 현재 로그인한 일반 사용자의 비밀번호를 요구함.
  • 그렇다면 아무나 root권한을 사용하는 건데 의미가 있을까?
  • 하지만 sudo 명령어를 사용할 수 있는 사용자 or 그룹은 /etc/sudoers에 등록되어야 한다.
  • 허락받은 계정만 sudo 권한을 잠시 빌려올 수 있다.

3. su 명령어

  • substitute user, super user, switch user로 사용됨.
    su [변경하고자 하는 사용자 ID]
  • ID를 입력하지 않으면 default로 su root로 동작함.
  • 그런데 su 명령어를 입력하면 su root으로 동작하고, 이는 root의 비밀번호를 물어봄.
  • 비밀번호를 설정한 적이 없음. 즉 로그인이 불가능함.
  • sudo passwd root 명령어를 통해 root의 비밀번호 설정이 가능함
  • root의 비밀번호를 설정했다면, root 계정이 잠금 해제됨. 즉 로그인이 가능해짐.
  • 하지만 sudo su는 root의 비밀번호를 묻지 않음. sudo 명령어를 실행하는 일반 사용자의 비밀번호를 요구함.
  • 이런 구조를 취하는 이유는 보안상의 이유 때문.

3. su vs su -, su -l, su --login

  • su: root 사용자로 전환. 하지만 현재 사용자의 환경 변수와 현재 디렉토리를 유지.
  • su -(su -l, su --login): root 사용자로 전환. 하지만 환경변수, 디렉토리를 root 사용자의 것으로 변경. root 사용자가 로그인한 것처럼 작동.

결론: root 계정을 잠근 상태로 유지하고, 관리 작업에 sudo 명령어를 사용하자.


출처

https://www.leafcats.com/168
https://storycompiler.tistory.com/44
https://jjeongil.tistory.com/1761
https://serina-the-best.tistory.com/16

profile
handsome

0개의 댓글