Computer >> 컴퓨터 >  >> 스마트폰 >> Linux

sudo 명령 및 구성 파일 소개

이 가이드에서는 sudo 명령이 무엇인지, Linux에서 사용하는 방법, 구성 파일을 편집하는 방법에 대해 설명합니다.

Ubuntu Linux 사용자는 Linux에서 "sudo" 명령을 사용하는 데 익숙할 수 있습니다. Linux 시스템의 관리자가 특정 사용자 또는 사용자 그룹에 "루트" 권한을 부여할 수 있는 Linux의 매우 유용한 기능입니다. 이 권한이 하나 이상의 명령으로 제한되도록 구성할 수도 있습니다. 예를 들어 Ubuntu 팀은 기본적으로 루트 사용자가 로그인하지 못하도록 차단하고 대신 사용자가 sudo를 사용하여 관리 작업을 수행할 수 있도록 하기로 결정했습니다. 따라서 Ubuntu Linux를 사용하는 경우 전체 "루트" 권한을 갖도록 sudo 권한이 설정되었습니다. 컴퓨터에서 sudo 권한을 설정하고 구성하는 방법을 자세히 살펴보겠습니다. 계속하기 전에 프로덕션 서버에서 다음을 시도해서는 안 됩니다. 테스트 머신에서 이 튜토리얼의 예제를 시도하고 프로덕션 서버에서 시도하기 전에 sudo에 익숙해지십시오. sudo는 매우 강력한 도구이며 극도로 주의해서 사용해야 합니다.

내가 아는 한 "sudo" 패키지는 모든 Linux 배포판과 함께 제공됩니다. 따라서 설치를 건너뛰고 구성으로 바로 이동하겠습니다. 이 튜토리얼에서는 Red Hat Linux 머신을 사용할 것입니다. Linux 시스템에 루트로 로그인하고 명령줄에서 다음 명령을 실행합니다.

# 영상

위의 명령은 /etc/sudoers에 있는 "sudo" 구성을 엽니다. , 내 컴퓨터의 Vim인 기본 편집기를 사용합니다. 다음 텍스트가 표시되는 섹션까지 아래로 스크롤합니다.

루트    ALL=(ALL) 모두

이 sudo 구성 구문의 분해는 다음과 같습니다. 먼저 sudo를 설정하려는 '사용자'를 정의합니다. 그런 다음 명령을 실행할 수 있는 '호스트 이름'이 표시됩니다. 이것은 위의 예에서와 같이 하나의 특정 호스트 이름 또는 "ALL"일 수 있습니다. 그리고 마지막은 '사용자'에게 관리 권한을 부여하려는 '명령'입니다.

구성으로 돌아갑니다. Vim에서 위에 표시된 줄까지 아래로 스크롤하고 문자 o를 누르십시오. 키보드에서 새 줄을 추가합니다. 이제 calvin을 대체하여 다음 텍스트를 추가합니다. 자신의 사용자 이름으로:

캘빈 ALL=(ALL) ALL

다음 키 조합을 사용하여 파일을 저장하고 종료합니다.

ESC :wq

돌아가기 누르기 (Enter) 키를 눌러 이 지침을 적용합니다. 이제 사용자에게 sudo를 사용하여 모든 관리 권한을 'calvin'으로 부여했습니다. 새 터미널 창을 열고 sudo 권한을 부여한 사용자로 로그인합니다. Apache 웹 서버를 'calvin' 사용자로 다시 시작하여 새 권한이 올바르게 설정되었는지 테스트해 보겠습니다.

sudo /etc/init.d/httpd restart
비밀번호:
httpd 중지:                                           [  OK  ]
httpd 시작:                     

이제 시스템에서 암호를 묻는 메시지를 표시합니다. 사용자 이름의 비밀번호를 입력합니다. 그리고 짜잔! 이제 Apache 웹 서버가 다시 시작되어야 합니다. 다른 관리 작업에 사용할 수 있습니다. 사용자에게 완전한 권한을 부여하는 것이 항상 최선의 아이디어는 아닐 수도 있습니다. 따라서 관리자 권한이 있는 몇 가지 명령으로 사용자를 제한할 수 있습니다. 사용자 'calvin'이 Apache 웹 서버를 다시 시작하는 것만 허용되도록 하고 싶다고 가정해 보겠습니다. visudo를 사용하여 sudo 구성 파일을 엽니다. 명령을 실행하고 이전에 입력한 줄을 다음과 같이 편집합니다.

calvin ALL=(ALL) /etc/init.d/httpd 재시작

파일을 저장하고 종료합니다. 사용자 'calvin'으로 터미널에 로그인합니다. 이제 sudo로 Apache를 다시 시작해 보세요.

# sudo /etc/init.d/httpd restart
비밀번호:
httpd 중지:[ 확인 ]
httpd 시작:[ 확인 ]

엄청난. 효과가있다. 이제 웹 서버를 중지해 보십시오.

# sudo /etc/init.d/httpd stop
비밀번호:
죄송합니다. 사용자 calvin은 commons에서 루트로 '/etc/init.d/httpd stop'을 실행할 수 없습니다.

보시다시피 사용자 'calvin'은 우리가 허용하는 것만 할 수 있으며 그 이상은 할 수 없습니다. sudoers에서 여러 명령을 추가할 수 있습니다. 쉼표로 구분된 파일. 따라서 'calvin'이 웹 서버를 중지하고 다시 시작할 수 있도록 허용하려면 구성이 다음과 같이 표시됩니다.

calvin ALL=(ALL) /etc/init.d/httpd 다시 시작,/etc/init.d/httpd 중지

이제 웹 서버를 중지하고 작동해야 합니다.

# sudo /etc/init.d/httpd stop
비밀번호:
httpd 중지:[ 확인 ]

특히 셸 스크립트를 사용하여 관리 작업을 수행해야 하는 경우 매우 유용한 sudo의 또 다른 기능은 암호를 묻지 않고 sudo 권한을 설정하는 것입니다. 공유된 사용자 이름을 사용하여 프로덕션 시스템에서 이 작업을 수행하는 것은 바람직하지 않을 수 있음을 기억하십시오. 사용자 이름의 암호가 잘못된 사람의 손에 들어가면 문제를 일으킬 수 있기 때문입니다. 따라서 이 기능을 주의해서 사용하십시오.

sudoers 열기 파일을 열고 이전에 입력한 줄을 다음과 같이 편집합니다.

calvin ALL=(ALL) /etc/init.d/httpd 다시 시작 NOPASSWD:ALL

구성의 마지막 부분은 sudo에게 암호를 묻거나 예상하지 않도록 지시하고 사용자가 관리자 권한으로 할당된 명령을 실행할 수 있도록 합니다. 파일을 저장하고 텍스트 편집기를 종료하고 Apache를 다시 시작하십시오.

# sudo /etc/init.d/httpd restart
httpd 중지:[ 확인 ]
httpd 시작:[ 확인 ]

sudo 구성 파일에 할 수 있는 더 많은 사용자 정의가 있습니다. 우리는 단지 그것의 작은 부분을 살펴보았습니다. 그러나 이것은 당신에게 시작을 제공해야합니다. 다시 한 번 주의하여 사용하시기 바랍니다.