우수한 XKCD 웹 만화에서 위의 만화를 고려하십시오. 의자에 앉은 게으른 사람은 친구가 샌드위치를 만들어 주기를 원하지만 만들어 줄 권한이 없습니다. 즉, 강력한 sudo 명령을 호출할 때까지입니다. 그 후 샌드위치는 어떤 식 으로든 만들어집니다.
실생활에서 사람에게 sudo를 시도하는 것은 그다지 효과적이지 않을 수 있지만 Linux 세계의 모든 장애물을 극복하는 마법의 명령입니다. 스도가 뭔가요? 그것이 존재하는 이유는 무엇입니까? 대답은 Linux가 권한을 처리하는 방식에 있습니다.
![Linux에서 Sudo란 무엇이며 사용하는 방법](/article/uploadfiles/202203/2022032916093834.jpg)
Linux 사용자 권한 이해
Linux는 권한을 처리하는 방식으로 인해 안전한 운영 체제로 간주됩니다. macOS(Linux와 조상을 공유) 및 Windows와 같은 운영 체제는 이 점에서 이제 Linux와 비슷하지만 오픈 소스 운영 체제는 여전히 다소 독특합니다.
Linux가 권한을 처리하는 방법을 이해하면 sudo 명령에 대해 훨씬 쉽게 이해할 수 있습니다. 모든 최신 운영 체제에는 "관리자" 또는 "루트" 사용자 권한 수준이 있습니다. 관리자 또는 루트 계정이 있는 경우 설정을 변경하고 데이터를 삭제하고 일반적으로 컴퓨터에서 원하는 모든 작업을 수행할 수 있습니다.
여기에는 데이터 손실이나 완전한 초기화 및 재설치가 필요할 수 있는 해서는 안 되는 일이 포함됩니다.
![Linux에서 Sudo란 무엇이며 사용하는 방법](/article/uploadfiles/202203/2022032916093935.jpg)
Linux는 루트 사용자 수준 권한을 기본값으로 설정하지 않습니다. 대신, 귀하의 계정은 권한 수준을 높이지 않고 시스템의 정말 민감한 부분에 접근할 수 없습니다. 즉, 그래픽 인터페이스를 사용하여 평소와 다른 작업을 수행하려는 경우 시스템에서 관리자 암호를 입력하도록 요청합니다.
그러나 터미널 명령줄을 사용하여 작업을 수행하려는 경우 sudo가 가장 안전하고 효율적인 방법입니다.
수도와 터미널
![Linux에서 Sudo란 무엇이며 사용하는 방법](/article/uploadfiles/202203/2022032916093921.jpg)
Linux에서 자신에게 높은 권한을 부여하는 두 가지 방법이 있습니다. 하나는 루트 사용자로 영구적으로 로그인하는 것입니다. 이것의 문제는 컴퓨터에 액세스할 수 있는 다른 사람이 혼란을 일으킬 수 있고 심지어 실수로 할 수 있다는 것입니다. Sudo는 뒤따르는 특정 명령을 실행하기 위해 짧은 시간 동안만 권한을 높입니다.
Sudo 구문
Sudo의 구문(명령 형식)은 간단합니다. "sudo" 다음에 실행할 명령을 입력하기만 하면 됩니다.
![Linux에서 Sudo란 무엇이며 사용하는 방법](/article/uploadfiles/202203/2022032916093912.jpg)
예를 들어 "sudo apt-get update"는 관련 파일에 나열된 모든 앱 저장소를 업데이트합니다. sudo 없이 실행하려고 하면 권한이 없다는 오류 메시지가 표시됩니다. 덧붙여서, 이것은 일반적으로 좋아하는 Linux 배포판을 새로 설치한 후 실행하려는 첫 번째 sudo 명령입니다.
Sudo의 "Su"
sudo의 "su"는 "superuser"의 줄임말이며 독립 실행형 명령입니다. "su" 명령을 사용하면 sudo로 승격되는 사용자의 권한을 변경할 수 있습니다.
sudo는 일시적으로 루트로 승격되지만 su는 적절한 권한을 가진 다른 사용자로 변경합니다. 중요하지 않은 구별처럼 보일 수 있지만 sudo가 사용자를 승격시키는 계정을 변경해야 할 충분한 이유가 있습니다.
우선 계정을 변경한다는 것은 일반 사용자가 루트 비밀번호를 모른다는 것을 의미합니다. 둘째, 모든 sudo 명령에 대한 로그가 있습니다. 이는 시스템 관리자(루트)가 누가 su 명령을 실행했는지 조회할 수 있음을 의미합니다.
su의 구문은 본질적으로 sudo와 동일합니다:
수 USERNAME -c 명령
USERNAME을 명령을 실행하려는 사용자로 바꾸고 COMMAND를 실행하려는 Linux 명령으로 바꾸십시오.
다른 사용자로 여러 명령을 실행하려면 다음을 사용하십시오.
수 사용자
USER를 원하는 사용자 계정 ID로 바꿉니다.
su를 단독으로 사용하는 경우 Linux는 "exit" 명령을 사용할 때까지 다른 사용자 계정으로 전환합니다. 이 사용자 또는 해당 세션의 터미널에 액세스하는 다음 사용자는 여전히 높은 권한을 갖게 된다는 점을 기억하는 것이 중요합니다. 이것이 일반적으로 su보다 sudo를 사용하는 것이 더 나은 이유입니다.
Sudo 시간 제한
![Linux에서 Sudo란 무엇이며 사용하는 방법](/article/uploadfiles/202203/2022032916093941.jpg)
sudo 명령을 처음 사용하는 경우 암호를 입력해야 합니다. 그런 다음 해당 암호는 15분 동안 유효합니다. sudo visudo 명령을 실행하여 이 기본값을 변경할 수 있습니다. 및 "timestamp_timeout="을 더 길거나 더 짧은 값으로 변경합니다. 그러나 sudo 비밀번호가 유효한 기간을 연장하거나 단축해야 하는 합당한 이유가 없는 한 이 작업을 수행하지 않는 것이 좋습니다.
Sudo 옵션 스위치
sudo 구문은 간단하지만 몇 가지 스위치는 알아둘 가치가 있습니다. 다음 명령은 추가 정보를 열거나 sudo 세션을 제어하는 데 도움이 됩니다.
- -h sudo에 대한 구문 및 명령 정보를 보여줍니다.
- -V 컴퓨터에 있는 sudo의 현재 버전을 표시합니다.
- -v sudo 시간 제한을 새로 고쳐 시계를 다시 시작합니다.
- -l 사용자 권한을 나열합니다.
- -k 현재 sudo 세션을 즉시 종료하고 상승된 권한을 제거합니다.
sudo에는 더 많은 옵션이 내장되어 있으며 위에 나열된 첫 번째 -h 스위치를 사용하여 모두 볼 수 있습니다.
![Linux에서 Sudo란 무엇이며 사용하는 방법](/article/uploadfiles/202203/2022032916093982.jpg)
위 스크린샷은 도움말 옵션을 사용할 때의 결과입니다.
유용한 Sudo 명령
그렇다면 모든 Linux 사용자가 알아야 할 sudo의 명령은 무엇입니까? 우리는 이미 sudo apt-get update에 대해 다루었지만 다음 사항에도 유의하세요.
- Sudo apt-get 업그레이드 설치된 모든 패키지를 업그레이드합니다.
- Sudo apt-get install <패키지 이름> 선택한 소프트웨어를 설치합니다. 패키지 이름을 설치하려는 이름으로 변경하기만 하면 됩니다.
- 패키지 이름을 모르는 경우 dpkg –list를 사용합니다. .
- 터미널에서 설치된 패키지를 제거하려면 sudo apt-get remove
을 사용하세요. (다시 문제의 특정 패키지 이름으로 대체).
이것들은 아마도 당신이 사용해야 할 첫 번째 sudo 명령일 것입니다. 하지만 위에서 배웠듯이 모든 명령은 sudo 다음에 올 수 있지만 더 높은 권한이 필요한 명령만 사용해야 합니다.