'su-', 'sudo bash'및 'sudo sh'의 차이점은 무엇입니까?


29

차이점이 무엇인지 알고 싶습니다

  • su -
  • sudo bash
  • sudo sh

su -루트 비밀번호가 없어서 루트로 로그인 할 수 없습니다. 가능한 비밀번호를 가지고 sudo "command" 있지만이 비밀번호가 작동하지 않기 su - 때문에 루트로 sudo bash로그인 할 수 있습니다. 일을 sudo sh하지만 나는이 양식에서 프롬프트 명령을받을 #

답변:


27

배경

Linux (및 일반적으로 Unix)에는 Root 라는 슈퍼 유저 가 있습니다. 수퍼 유저는 모든 작업을 수행 할 수 있으므로 수퍼 유저가되어 일상 업무를 수행하는 것은 위험 할 수 있습니다. 명령을 잘못 입력하면 시스템이 손상 될 수 있습니다. 이상적으로는 현재 작업에 필요한 권한 만 가진 사용자로 실행해야합니다. 경우에 따라 반드시 루트 일 수도 있지만 대부분은 일반 사용자입니다.

su-

이 명령은 루트 계정으로 로그인하는 데 사용됩니다.
기본적으로 루트 계정 비밀번호는 우분투에서 잠겨 있습니다. 즉, 루트로 직접 로그인하거나 su 명령을 사용하여 루트 사용자가 될 수 없습니다. 그러나 루트 계정이 실제로 존재하기 때문에 여전히 루트 수준 권한으로 프로그램을 실행할 수 있습니다. 여기에는 sudo가 들어옵니다. 인증 된 사용자 (일반적으로 "관리자"사용자)는 루트 암호를 몰라도 루트로 특정 프로그램을 실행할 수 있습니다.

루트 계정을 활성화하는 방법을 참조하십시오 .

쉬도 쉬

이 명령은 "sh"를 수퍼 유저로 실행합니다.
sh 유틸리티는 명령 행 문자열, 표준 입력 또는 지정된 파일에서 읽은 명령을 실행하는 명령 언어 해석기입니다.

sudo bash

이 명령은 "bash"를 수퍼 유저로 실행합니다.
Bash는 쉘 또는 명령 언어 인터프리터입니다. Bash는 Korn 쉘 (ksh) 및 C 쉘 (csh)의 유용한 기능을 통합 한 sh 호환 쉘입니다. IEEE POSIX P1003.2 / ISO 9945.2 Shell and Tools 표준을 준수합니다. 프로그래밍과 대화식 사용 모두 sh보다 기능이 향상되었습니다. 또한 대부분의 sh 스크립트는 수정하지 않고 Bash로 실행할 수 있습니다.

참고 문헌 : 1 , 2 , 3 .


7
sudo su -루트 암호없이 실행하면 수퍼 유저로 로그인 할 수 있습니다 . sudo는 su -루트 권한으로 명령을 실행하기 때문에 사용자 비밀번호 만 프롬프트됩니다. 이것은 루트 사용자 환경을 설정하는 장점이 있는데, sudo로 쉘을 실행하는 것만으로는 불가능합니다.
Aaron D

6

su -:

이렇게하면 사용자 식별자가 변경되고 해당 사용자로 로그인 한 것처럼 환경 변수가 상속됩니다. 일반적으로 형식 su - <userid>을 사용 하여 사용자로 로그인합니다. "userid"를 삭제하면 루트로 로그인하려고한다고 가정합니다. 루트 비밀번호를 변경하지 않는 한 로그인 할 수 없습니다.

sudo bash& sudo sh:

sudo 뒤의 것은 실행할 프로그램입니다. 따라서이 경우 bash와 dash 각각의 쉘을 실행하도록 요청합니다. 사용 man bashman sh다른 조개에 대한 자세한 내용은.


관련 질문 :


답장을 보내 주셔서 감사하지만 root의 기본 비밀번호는 무엇입니까? 어디서 찾을 수 있습니까?
Patryk

@lordmonkey root에는 암호가 없으므로 암호가 필요하지 않습니다. sudo가 root가 아닌 암호를 요구한다는 점을 제외하고 sudo -i는 로그인 쉘을 제공합니다 su -.
geirha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.