Linux 터미널에서 루트 세션을 얻는 방법에는 여러 가지가 있습니다. 루트 권한을 얻으려는 대부분의 초보 사용자는 각 명령이 루트 액세스 권한을 얻는 방법, 명령이 다른 방법 및 이러한 차이가 중요한 경우에 익숙하지 않을 수 있으므로 이로 인해 약간의 혼란이 발생할 수 있습니다. 여기에서는 터미널에서 루트 액세스 권한을 얻는 데 사용되는 다양한 명령을 각각 분리하여 루트 권한을 얻는 방법, 사용 시기 및 그 사이의 모든 것을 설명합니다.
수
su
명령은 시스템이 쉘에서 사용하고 있는 현재 사용자를 대체합니다.
su
를 입력하여 모든 사용자로 전환할 수 있습니다. 그리고 그 뒤에 사용자 이름을 추가합니다. 이것은 현재 사용자를 지정된 사용자로 전환(및 기본적으로 로그아웃)하도록 시스템에 지시합니다. 또는 su
명령은 su
를 입력하여 루트 액세스 권한을 얻을 수 있습니다. 명령 뒤에 아무 것도 지정하지 않고.
"su"는 사용자가 시스템의 루트 계정에 직접 액세스하기를 원할 때 가장 잘 사용됩니다. sudo
를 거치지 않습니다. 또는 그런 것. 대신 문자 그대로 로그인하기 때문에 루트 사용자의 비밀번호를 입력하라는 메시지가 표시됩니다. 또한 루트 액세스 권한을 얻는 다른 방법은 루트 홈 디렉토리 및 루트 환경에 대한 액세스 권한도 얻지 못합니다.
sudo su
이 명령은 루트가 아닌 현재 사용자의 비밀번호를 묻습니다.
본질적으로 su
를 실행하는 것과 동일합니다. 쉘에서 한 가지 중요한 차이점을 저장하십시오. 시스템에 "사용자 전환"을 직접 지시하는 대신 "su" 명령을 루트로 실행하도록 지시하는 것입니다. sudo su
일 때 su
를 실행하는 것처럼 ".profile", ".bashrc" 및 "/etc/profile"이 시작됩니다. (또는 su root
). 명령이 sudo
로 실행되는 경우 그 앞에 루트 권한이 부여됩니다.
"sudo su"와 "su" 사이에는 큰 차이가 없지만 sudo su
한 가지 중요한 이유 때문에 여전히 매우 유용한 명령입니다. 사용자가 시스템에서 루트 액세스 권한을 얻기 위해 "su"를 실행할 때 루트 암호를 알아야 합니다. 루트는 sudo su
로 제공됩니다. 현재 사용자의 비밀번호를 요청하여 이렇게 하면 보안을 강화하는 루트 암호 없이 루트를 얻을 수 있습니다.
sudo -i
sudo -i
사용 sudo su
와 거의 동일합니다. 한 가지 예외가 있는 명령:루트 사용자와 직접 상호 작용하지 않습니다.
sudo su
와 매우 유사합니다. , -i
플래그를 사용하면 루트 계정 암호를 몰라도 루트 환경을 얻을 수 있습니다. sudo -i
sudo su
를 사용하는 것과도 매우 유사합니다. , 모든 환경 파일(.profile 등)을 읽고 쉘 내부에 환경을 설정하기 때문입니다.
"sudo su"와 다른 점은 sudo -i
입니다. 루트 사용자와 직접 상호 작용하지 않고 루트 및 루트 환경을 얻는 훨씬 깨끗한 방법입니다. 명확히 하기 위해:sudo su
사용 둘 이상의 루트 setuid
를 사용 중입니다. 백그라운드에서 명령. 이것은 유지될 환경 변수와 변경될 환경 변수를 파악하는 것을 훨씬 더 어렵게 만듭니다(루트 환경으로 교체할 때). sudo -i
에서는 그렇지 않습니다. . 이 때문에 대부분의 사람들은 직접 로그인하지 않고 루트를 얻는 방법으로 선호합니다.
sudo -s
이 명령은 $SHELL 변수로 쉘을 호출합니다.
-s
"sudo" 명령에 대한 스위치는 명령을 실행하는 현재 사용자의 $SHELL 변수를 읽습니다. 이 명령은 사용자가 sudo /bin/bash
를 실행하는 것처럼 작동합니다. . Sudo -s
"비 로그인" 스타일 셸입니다. sudo -i
와 같은 명령과 달리 또는 sudo su
, 시스템은 환경 파일을 읽지 않습니다. 사용자가 쉘에 sudo -s
를 실행하도록 지시할 때 , 루트를 얻지만 사용자 또는 사용자 환경을 변경하지 않습니다. 귀하의 집은 루트 집이 아닙니다.
이 명령은 사용자가 루트로 전환하고 싶지 않지만 $SHELL 환경 값이 있는 대화형 셸을 원할 때 가장 잘 사용됩니다. 위에서 언급한 다른 명령은 루트 액세스 권한을 얻지만 루트 환경 파일을 터치하고 사용자에게 루트에 대한 완전한 액세스를 허용합니다(보안 문제일 수 있음).
자주 묻는 질문
1. 어떤 명령어를 사용해야 하나요?
각 명령에는 사용 사례가 있습니다. 여기서 중요한 것은 각 명령이 무엇을 하고 언제 사용해야 하는지 이해하는 것입니다. 그대로 sudo -i
루트 환경을 얻는 가장 실용적이고 깨끗한 방법입니다. 반면에 sudo -s
를 사용하는 사람들은 보안 이점이 추가된 루트 환경을 건드릴 수 없는 루트 셸을 얻을 수 있습니다.
2. 루트에 액세스하면 시스템이 손상될 수 있습니까?
어떤 경우에는 그렇습니다. 특정 터미널 세션의 모든 항목에 대해 루트에 액세스해야 하는지 절대적으로 확신하지 않는 한 sudo
를 입력하는 것이 더 나은 경우가 많습니다. 특정 명령에 대해 루트에 액세스하려는 경우 명령이 뒤에 옵니다. 예를 들어 sudo apt install vlc
를 입력합니다. 데비안 기반 Linux 버전에서는 운영 체제에 루트에 액세스하여 APT 패키지 관리자를 실행하여 VLC를 설치하도록 지시합니다.
sudo -i
실행 시 매우 중요한 주의 사항 또는 sudo
를 입력하는 것과 대조적으로 앞에서 논의한 다른 변형 루트로 실행하려는 각 명령 앞에는 전자가 명령 기록을 /var/log/auth.log
에 기록하지 않는다는 것입니다. . 당신이 엉망이라면, 당신은 그것을 고칠 수 있도록 당신이 한 일을 되돌아 볼 수 없습니다. 루트 세션은 기록되지 않으므로 메모리 부족으로 작업해야 합니다.
3. 명령 앞에 "sudo"를 입력하면 "sudo su"의 어떤 변형이 실행되나요?
sudo
를 입력하여 명령을 실행하려면(즉, 실행하려는 명령과 같은 줄에 명령을 입력해야 함) 기본적으로 대화형 루트 셸에서 명령을 실행하는 것입니다. 이것은 sudo -s
독립 실행형 명령은 수행합니다.
마무리
이 목록에는 100% 최고인 명령이 하나도 없습니다. 사용자가 명령줄에 익숙해짐에 따라 루트를 얻는 각 방법(및 많은 방법이 있음)을 고려하고 장단점을 따져보고 그에 따라 행동해야 합니다. 이 기사의 도움으로 이러한 결정을 더 쉽게 내릴 수 있기를 바랍니다. 명령에 대해 자세히 알아보려면 디렉토리 내용을 나열하는 유용한 Linux 명령에 대한 이 기사를 읽으십시오.