리눅스 두 주요 개념

  • 리눅스는 Multi-User System OS/ 다중 유저 접속 시스템
  • 리눅스에서는 각 유저들에 대한 권한의 중요성이 높다.

리눅스에서는 다중 유저 접속 시스템으로써 동시에 여러 사용자들이 접속할 수 있다.

즉, 각각의 유저들에 대한 권한(읽기, 쓰기, 실행 등)의 범위 관리가 매우 중요합니다.

리눅스(Linux)에서 특정 명령을 실행하거나 파일에 접근하기 위해서는 루트(root) 권한이 필요합니다.

일반 사용자(유저)가 root 권한을 사용하기 위해서 su, sudo 명령어를 사용합니다.

su (Switch User) 명령어

  • Switch User의 약어로, 리눅스 및 유닉스 운영체제에서 현재의 사용자를 로그아웃하지 않고 다른 사용자로 전환하는 명령어
  • 보통 시스템 관리자(root) 권한으로 전환하여 시스템 설정이나 프로그램 설치 등의 작업을 수행합니다.

su 명령어 예시

  • su : root 권한으로 전환합니다. 이때, root 계정의 비밀번호를 입력해야 합니다.
  • su username : username 사용자로 전환합니다. 이때, 해당 사용자의 비밀번호를 입력해야 합니다.

su - 명령어

  • 다른 사용자의 계정으로 완전히 전환하고, 그 사용자의 환경 변수와 디렉토리 설정을 사용합니다.
  • 즉, 전환된 사용자로 로그인한 것처럼 해당 사용자의 환경설정을 가져옵니다.

su - 명령어 예시

  • su - : root 계정으로 전환하고, root의 환경설정을 사용합니다. 이때, root 계정의 비밀번호를 입력해야 합니다.
  • su - username : username 사용자로 전환하고, 해당 사용자의 환경설정을 사용합니다. 이때, 해당 사용자의 비밀번호를 입력해야 합니다.

su와 su-의 차이

  • su 명령어는 현재 계정의 환경변수들을 유지한 채, 대상 계정으로 전환한다.
  • 반면에 su - 명령어는 다른 사용자의 계정으로 전환하고 환경변수까지 그 계정의 상태로 완전히 전환한다.

sudo(Superuser Do) 명령어

  • 일시적으로 다른 사용자(일반적으로 root) 권한으로 명령을 실행할 수 있도록 해주는 명령어
  • su와 달리, 일시적인 권한 상승을 제공하므로 보안상 유리합니다.
  • sudo를 사용할 때는 시스템 보안을 위해 비밀번호를 자주 변경하고, sudo를 허용할 명령어를 제한하는 등 적절한 보안 정책을 설정해야 합니다.

sudo 명령어

  • sudo [명령어] : root 계정으로 로그인 없이 [명령어]를 실행 root 계정의 패스워드 필요
  • sudo su : root 계정으로 로그인 현재 디렉토리 유지(현재 계정의 쉘 유지) 현재 계정의 패스워드 필요
  • sudo -s : root 계정으로 로그인 현재 디렉토리 유지(현재 계정의 쉘 유지) root 계정의 패스워드 필요
  • sudo -i : root 계정으로 로그인 “/root”로 디렉토리 변경(root 쉘 실행) root 계정의 패스워드 필요
  • 즉, 전환된 사용자로 로그인한 것처럼 해당 사용자의 환경설정을 가져옵니다.

결론 : su와 su - 명령어는 다른 사용자로 전환하는 것에 초점을 둔 반면, sudo는 명령어를 root 권한으로 실행

whoami

  • 현재 계정 (user) 확인 명령어

logout / exit

  • 전환하기 전 계정으로 돌아가는 명령어
서브목차