Linux에서 sudo 명령 사용을 검토하는 방법

게시 됨: 2022-08-24
bash 프롬프트를 표시하는 Linux 노트북
Fatmawati achmad zaenuri/Shutterstock.com

sudo 명령은 사용자에게 수퍼유저 또는 루트 권한을 부여합니다. 틀림없이 당신은 그들에게 “큰 힘에는 큰 책임이 따른다”라는 연설을 했을 것입니다. 그들이 들었는지 아닌지 확인하는 방법은 다음과 같습니다.

sudo 명령

sudo 명령은 "대체 사용자 do"를 나타냅니다. 권한이 있는 사람이 다른 사용자인 것처럼 명령을 실행할 수 있습니다. 명령줄 매개변수를 사용할 수 있으며 그 중 하나는 명령을 실행하려는 사용자의 이름입니다. sudo 가 사용되는 가장 일반적인 방법은 명령줄 옵션을 생략하고 기본 작업을 사용하는 것입니다. 이것은 루트 사용자로서 명령을 효과적으로 실행합니다.

이러한 방식으로 sudo 를 사용하려면 특별한 권한이 필요합니다. 특권을 가진 사람만 사용할 수 있습니다 sudo . 최신 Linux 배포판을 설치할 때 sudo 와 함께 사용할 수 있는 루트 암호를 설정하라는 메시지가 표시됩니다. 그렇게 할 수 있는 권한은 설치 중에 생성한 일반 사용자에게 부여됩니다. 이것은 루트 사용자의 기능에 대한 액세스를 처리하는 데 선호되는 방법입니다. 이전 방법은 루트 사용자를 만들고 시스템을 관리하기 위해 루트 사용자로 로그인하는 것이었습니다.

이것은 위험한 시나리오였습니다. 더 이상 루트 권한이 필요하지 않을 때 로그아웃하고 일반 사용자로 다시 로그인하는 것을 잊어버리거나 너무 게으르게 되었습니다. 터미널 창에서 루트로 저지른 실수는 아무리 과감하더라도 실행됩니다. 일반 사용자가 수행하려고 하면 쉘에 의해 차단될 항목은 루트가 요청할 때 문제 없이 실행됩니다. 일반 계정 대신 루트 계정을 사용하는 것도 보안 위험입니다.

Linux에서 sudo 액세스를 제어하는 ​​방법
관련 Linux에서 sudo 액세스를 제어하는 ​​방법

sudo 를 사용하면 마음이 집중됩니다. 당신은 똑같은 위험한 물에 들어가고 있지만 의식적으로 그렇게 하기로 선택하고 있으며 잘만되면 세심한 주의를 기울이고 있습니다. 수퍼유저 상태가 필요한 작업을 수행해야 할 때만 수퍼유저 상태를 호출합니다.

다른 사용자에게 루트 액세스를 허용하면 그들이 당신만큼 그들에게 관심을 갖고 있다는 것을 알고 싶어합니다. 당신은 그들이 무모하게 또는 투기적으로 명령을 실행하는 것을 원하지 않습니다. Linux 설치의 상태와 웰빙은 권한 있는 사용자가 정중하고 책임감 있게 행동하는 데 달려 있습니다.

다음은 루트 사용량을 모니터링하는 몇 가지 방법입니다.

auth.log 파일

일부 배포판은 "auth.log"라는 파일에 인증 로그를 유지합니다. systemd 의 출현과 빠른 도입으로 "auth.log" 파일의 필요성이 제거되었습니다. systemd-journal 데몬은 시스템 로그를 당시의 새로운 바이너리 형식으로 통합하고 journalctl 은 로그를 검사하거나 조사할 수 있는 방법을 제공합니다.

Linux 컴퓨터에 "auth.log" 파일이 있는 경우 일부 배포판에서는 파일 이름과 경로가 "/var/log/audit/audit"이지만 아마도 "/var/log/" 디렉토리에 있을 것입니다. .통나무."

당신은 이와 같이 less 파일을 열 수 있습니다. 배포에 맞게 경로와 파일 이름을 조정하고 Linux에서 인증 파일을 생성하지 않는 경우에 대비해야 합니다.

이 명령은 Ubuntu 22.04에서 작동했습니다.

 적은 /var/log/auth.log 

적은 수로 /var/log/auth.log 파일 보기

로그 파일이 열리고 파일을 스크롤하거나 less에 내장된 검색 기능을 사용하여 "sudo"를 검색할 수 있습니다.

/var/log/auth.log 파일의 내용은 less에 표시됩니다.

less 의 검색 기능을 사용해도 관심 있는 sudo 항목을 찾는 데 시간이 걸릴 수 있습니다.

mary 라는 사용자가 sudo 를 사용하는 것을 보고 싶다고 가정해 봅시다. grep 을 사용하여 로그 파일에서 "sudo"가 포함된 행을 검색한 다음 grep 을 통해 출력을 다시 파이프하고 "mary"가 포함된 행을 찾을 수 있습니다.

grep 앞 로그 파일 이름 앞의 sudo 에 유의하십시오.

 sudo grep sudo /var/log/auth.log | 그렙 "메리" 

grep을 사용하여 mary 및 sudo를 언급하는 항목 필터링

이것은 "sudo"와 "mary"가 포함된 라인을 제공합니다.

사용자 mary 가 15:25에 sudo 권한을 받았고 15:27에 편집기에서 fstab 파일을 여는 것을 볼 수 있습니다. 이는 사용자와의 채팅으로 시작하여 더 깊은 잠수를 확실히 보장하는 활동 유형입니다.

저널ctl 사용

systmd 기반 Linux 배포판에서 선호하는 방법은 journalctl 명령을 사용하여 시스템 로그를 검토하는 것입니다.

프로그램 이름을 journalctl 에 전달하면 해당 프로그램에 대한 참조가 포함된 항목에 대한 로그 파일을 검색합니다. sudo 는 "/usr/bin/sudo"에 있는 바이너리이기 때문에 journactl 에 전달할 수 있습니다. -e (페이저 끝) 옵션은 journalctl 에 기본 파일 페이저를 열도록 지시합니다. 일반적으로 이것은 less . 디스플레이는 가장 최근 항목을 표시하기 위해 자동으로 맨 아래로 스크롤됩니다.

 sudo 저널ctl -e /usr/bin/sudo 

journalctl을 사용하여 sudo를 언급하는 항목 검색

sudo 를 포함하는 로그 항목은 less에 나열됩니다.

낮은 파일 뷰어에서 sudo를 포함하는 항목을 표시하는 journalctl

"RightArrow" 키를 사용하여 오른쪽으로 스크롤하여 각 sudo 호출에 사용된 명령을 확인합니다. (또는 터미널 창을 확장하여 더 넓게 만드십시오.)

옆으로 스크롤하여 sudo와 함께 사용된 명령 보기

그리고 출력이 less 에 표시되기 때문에 명령 이름, 사용자 이름, 타임스탬프와 같은 텍스트를 검색할 수 있습니다.

관련: journalctl을 사용하여 Linux 시스템 로그를 읽는 방법

그놈 로그 유틸리티 사용

그래픽 데스크탑 환경에는 일반적으로 로그 검토 수단이 포함됩니다. GNOME 로그 유틸리티를 살펴보겠습니다. 로그 유틸리티에 액세스하려면 "스페이스바" 왼쪽에 있는 "Super" 키를 누르십시오.

검색 필드에 "로그"를 입력하십시오. "로그" 아이콘이 나타납니다.

아이콘을 클릭하여 "로그" 애플리케이션을 시작합니다.

그놈 로그 애플리케이션

사이드바에서 카테고리를 클릭하면 메시지 유형별로 로그 메시지가 필터링됩니다. 더 세부적으로 선택하려면 사이드바에서 "전체" 카테고리를 클릭한 다음 도구 모음에서 돋보기 아이콘을 클릭하십시오. 검색 텍스트를 입력하세요. 우리는 "sudo"를 검색할 것입니다.

그놈 로그 애플리케이션에서 sudo가 포함된 항목 검색

이벤트 목록은 sudo 명령과 관련된 이벤트만 표시하도록 필터링됩니다. 각 줄 끝에 있는 작은 회색 블록에는 해당 이벤트 세션의 항목 수가 포함됩니다. 선을 클릭하여 확장합니다.

sudo 세션의 항목 수를 포함하는 회색 블록

해당 세션의 24개 항목에 대한 세부 정보를 보기 위해 맨 위 줄을 클릭했습니다.

확장된 보기에 표시된 이벤트의 세부정보

조금 스크롤하면 journalctl 명령을 사용할 때 본 것과 동일한 이벤트를 볼 수 있습니다. fstab 파일에서 사용자 mary 의 설명되지 않은 편집 세션을 빠르게 찾았습니다. 우리는 "mary"를 검색할 수 있었지만 여기에는 그녀의 sudo 사용 이외의 항목이 포함됩니다.

모든 사람에게 루트 액세스가 필요한 것은 아닙니다.

진정성 있고 합리적인 요구 사항이 있는 경우 다른 사용자에게 sudo 권한을 부여하는 것이 합리적일 수 있습니다. 마찬가지로, 특히 권한이 부여된 직후에만 이러한 권한의 사용 또는 남용을 확인하는 것이 합리적입니다.