소개
Linux sudo 명령은 다음을 의미합니다. 슈퍼유저 . 일반적으로 슈퍼유저가 실행할 수 있는 몇 가지 명령의 접두사로 적용됩니다.
다른 명령과 함께 명령 앞에 접두사를 붙이면 높은 권한으로 해당 명령이 실행됩니다. 즉, 적절한 권한을 가진 사용자가 슈퍼유저와 같은 다른 사용자와 마찬가지로 명령을 사용할 수 있도록 허용합니다.
옵션과 동일합니다 '관리자 권한으로 실행' Windows에서. sudo 옵션을 사용하면 둘 이상의 관리자를 가질 수 있습니다. sudo 명령을 적용할 수 있는 사용자는 sudoers 파일 내의 항목이 다음 위치에 있어야 합니다. '/etc/sudoers/' .
참고: 파일을 보거나 편집하려면 sudo 명령을 적용해야 합니다. 파일을 편집하려면 'visudo' 명령을 적용하는 것이 좋습니다.
기본적으로 sudo 명령을 사용하려면 사용자가 루트 비밀번호 자체가 아닌 사용자의 비밀번호인 비밀번호와 함께 자신을 확인해야 합니다.
sudo 명령의 구문
sudo 명령의 구문은 다음과 같습니다.
sudo OPTION... COMMAND
sudo 명령의 옵션
sudo 명령의 중요한 옵션 중 일부는 아래에 설명되어 있습니다.
1. -에서: 그것은 다음을 의미합니다. 버전 . 이 옵션을 사용하면 버전 번호를 인쇄하고 종료하기 위한 sudo 명령이 활성화됩니다. -V 옵션은 요청하는 사용자가 이미 루트인 경우 관찰된 기본 sudo 목록 일시 중지를 인쇄합니다.
2. -l: 그것은 다음을 의미합니다. 목록 . 이 옵션은 현재 호스트에 대해 사용자에게 허용된 다양한 명령을 인쇄하는 데 도움이 됩니다.
이는 현재 사용자가 모든 명령을 sudo로 적용할 수 있음을 보여줍니다.
nfa에서 dfa로 변환
3. -h 또는 -help: h는 다음을 의미합니다. 돕다 이 옵션에서. 이 옵션을 사용하면 sudo 명령을 사용하여 사용법 및 종료 메시지를 인쇄할 수 있습니다.
4. -in: 그것은 다음을 의미합니다. 확인 . sudo 명령이 사용자의 타임스탬프를 업데이트하는 경우 유효성 검사는 필요한 경우 사용자의 비밀번호를 묻는 메시지를 표시합니다. sudo 명령 시간 초과를 나머지 5분 동안 연장하지만 명령을 실행하지는 않습니다. 아무런 결과도 제공하지 않습니다.
5. -k: 그것은 다음을 의미합니다. 죽이다 . 이 옵션은 sudo에 대한 사용자의 타임스탬프를 무효화합니다. 따라서 다음에 sudo 명령을 실행할 때 비밀번호가 필요합니다. -k 옵션은 비밀번호가 필요하지 않으며 사용자가 sudo 명령의 권한을 취소할 수 있도록 하기 위해 포함되었습니다. .로그 아웃 파일.
6. -b: 그것은 다음을 의미합니다. 배경 . 이 옵션은 sudo 명령에 제공된 명령을 백그라운드 내에서 실행하도록 알립니다.
참고: 이 옵션을 적용하면 프로세스 조작을 위해 셸 작업 제어를 적용할 수 없습니다.
7. -케이: 이 옵션은 -k 옵션과 동일합니다. 그러나 그것은 다음을 의미합니다. 꼭 죽여라 . 이 옵션은 사용자의 타임스탬프를 완전히 제거하려는 경우에 적용됩니다. 마찬가지로 비밀번호도 필요하지 않습니다.
8. -p: 그것은 다음을 의미합니다. 즉각적인 . 이 옵션을 사용하면 비밀번호 프롬프트(기본값)를 무시하고 사용자 정의 비밀번호 프롬프트를 적용할 수 있습니다. 다음과 같은 몇 퍼센트의 이스케이프가 허용됩니다.
- %u는 호출하는 사용자의 로그인 이름으로 개발됩니다.
- %U는 사용자의 로그인 이름으로 개발되었습니다.
- %h는 도메인 이름 없이 호스트 이름(로컬)으로 개발됩니다.
- %H는 도메인 이름으로 호스트 이름(로컬)으로 개발됩니다(머신의 호스트 이름이 완전히 정규화된 경우에만).
- %%(연속된 두 문자)는 개별 % 문자로 구분될 수 있습니다.
9. -n: 이 옵션은 비밀번호를 묻지 않고 명령을 실행합니다. sudo 명령으로 비밀번호를 묻는 것을 원하지 않는 백그라운드 작업(또는 쉘 스크립트 내부)으로 몇 가지 명령을 실행하려는 경우 매우 유용합니다. 이 옵션은 비대화형의 약어입니다.
문자열 함수 자바
10. -in: 그것은 다음을 의미합니다. 사용자 . 이 옵션을 사용하면 sudo 명령이 루트 사용자가 아닌 설명된 명령을 실행할 수 있습니다. 지정하려면 UID 사용자 이름 대신 #uid .
11. -H: 그것은 다음을 의미합니다. 집 . 이 옵션은 HOME 환경 변수 우리에게 홈 디렉토리 passwd 파일에 설명된 대로 루트 사용자의 이름입니다. 기본적으로 sudo 명령은 HOME을 변경하지 않습니다.
12. -s: 그것은 다음을 의미합니다. 껍데기 . 이 옵션은 다음을 통해 설명된 쉘을 실행합니다. SHELL 환경 변수 세트 또는 이 쉘이 내부에 설명된 대로 비밀번호 파일.
13. -에스: 그것은 다음을 의미합니다. 표준입력 . 이 옵션을 사용하면 터미널 장치가 아닌 표준 입력을 통해 비밀번호를 읽을 수 있는 sudo 명령이 활성화됩니다.
14. -: 이 옵션은 sudo 명령이 명령줄 인수 처리를 중지해야 함을 보여줍니다. -s 플래그와 함께 사용하면 가장 유용합니다.
15. -a: 그것은 다음을 의미합니다. 인증 유형 . 이 옵션을 사용하면 sudo 명령이 허용된 대로 사용자를 검증하는 경우 설명된 인증 유형을 사용할 수 있습니다. /etc/login/.config .
시스템 관리자는 다음을 포함하여 sudo 관련 인증 방법 목록을 설명할 수 있습니다. '자동 sudo' 안으로 입장 /etc/login/.config .
sudo 명령의 환경 변수
다음은 sudo 명령으로 적용되는 일부 환경 변수입니다.
mysql 사용자 생성
예 아니오. | 꼬리표 | 설명 |
---|---|---|
1. | 편집자 | VISUAL이 수정되지 않은 경우 -e 모드(sudoedit) 내에서 사용할 수 있는 기본 편집기입니다. |
2. | 집 | -H 또는 -s 모드에서(또는 sudo 명령이 옵션, 즉 -enable-shell-sets-home으로 구성된 경우) 사용자(대상)의 homedir로 설정됩니다. |
삼. | 길 | secure_path sudoers 옵션이 고정되면 정상적인 값으로 설정됩니다. |
4. | 껍데기 | -s 옵션으로 실행할 쉘을 결정하는 데 사용할 수 있습니다. |
5. | SUDO_COMMAND | sudo 명령으로 실행되는 명령으로 설정됩니다. |
6. | SUDO_PROMPT | 비밀번호 프롬프트로 사용할 수 있습니다(기본값). |
7. | SUDO_USER | sudo 명령을 요청하는 사용자의 로그인으로 설정됩니다. |
8. | SUDO_UID | sudo 명령을 요청하는 사용자의 uid로 설정됩니다. |
9. | SUDO_GID | sudo 명령을 요청하는 사용자의 gid로 설정됩니다. |
10. | SOUTH_PS1 | 설정된 경우 PS1은 해당 값으로 고정됩니다. |
열하나. | 사용자 | 사용자로 설정됩니다(옵션, 즉 -u가 설명되지 않은 경우 루트). |
12. | 시각적 | 이는 기본 편집기이며 -e 모드(sudoedit) 내에서 사용됩니다. |
sudo 명령의 역사
Cliff Spencer와 Robert Coggeshall은 1980년에 SUNY/Buffalo 컴퓨터 공학과에서 실제 하위 시스템을 작성했습니다. Robert Coggeshall은 sudo를 University of Colorado Boulder로 가져갔습니다. 실질적으로 기능과 코드는 1986년부터 1993년까지 공과대학 및 콜로라도 대학교 볼더 컴퓨터 공학과의 IT 구성원과 Todd C. Miller와 함께 응용 과학에 의해 변경되었습니다.
공개적으로 최신 버전은 1994년부터 Todd .C Miller(OpenBSD 개발자)에 의해 관리되었으며 1999년부터 ISC 스타일 라이센스에 따라 공유되었습니다.
Thomas Claburn은 2009년 11월 Microsoft가 sudo 권한을 갖고 있다는 사실에 대해 이러한 불확실성을 과장했다고 설명했습니다. 좁게 말하면, 주장은 sudo 접근 방식 대신 특정 GUI로 구성되었습니다.
sudo 명령의 디자인
사용자는 su 명령과 달리 수퍼유저 대신 필요한 경우 sudo에 비밀번호를 제공할 수 있습니다. 이는 접근 가능한 사용자가 다른 계정의 비밀번호를 비밀로 유지하지 않고도 적격한 권한을 행사할 수 있도록 허용합니다.
- 구성 파일이 사용자 액세스를 허용하면 인증 후 시스템이 요청된 명령을 요청합니다.
- sudo 명령은 의사 터미널당 유예 시간(일반적으로 5분)에 따라 사용자의 호출 권한을 유지하며 사용자가 암호를 다시 제공할 필요 없이 요청된 사용자로서 다양한 연속 명령을 실행할 수 있도록 허용합니다.
- sudo 명령은 감사 및 보안 기능으로 실행되는 모든 명령을 기록하도록 구성될 수 있습니다.
- 이때 사용자가 sudo 명령을 호출하기 위한 샷이 구성 파일 내부에 나열되지 않고 해당 사용자에게 샷이 기록되었음을 알리는 예외 그림이 표시됩니다.
- 항목은 시스템 내부에 저장되고 루트 사용자에게 메일로 통보됩니다.
sudo 명령 구성
그만큼 /etc/sudoers 파일에는 루트 사용자 또는 기타 나열된 사용자의 권한이 포함되어 있는 동시에 일련의 명령을 실행할 수 있는 권한이 있는 사용자 그룹 또는 사용자 목록이 포함됩니다. 프로그램에 비밀번호가 필요하도록 구성되었을 수 있습니다.
sudo 명령의 영향
일부 시스템 배포판에서는 sudo 명령이 다양한 관리 작업을 위한 다른 수퍼유저 로그인 사용(기본값)을 대체했습니다. 가장 중요한 것은 일부 Apple의 macOS 및 Linux 배포판에서였습니다.
이는 몇 가지 악용을 방지하고 관리 명령에 대한 보다 안전한 로깅을 허용합니다.
RBAC
sudo 명령은 SELinux와 협력하여 역할 기반 액세스 제어 내에서 다양한 유형의 역할 간 전송에 사용될 수 있습니다.
유사한 프로그램 및 도구
visudo는 안전한 방식으로 sudo의 구성 파일을 편집할 수 있는 명령줄 유틸리티입니다. 구문 및 온전성 검사를 수행하고 잠금과 함께 둘 이상의 동시 편집을 방지합니다.
runas 프로그램은 Microsoft Windows에서도 동일한 성능을 제공합니다. 그러나 현재의 긴 명령줄을 하위 항목, 환경 변수 또는 디렉터리에 전달할 수는 없습니다.
하위 사용자를 다른 사용자로 실행하는 데는 도움이 되지만 일반 권한 상승은 지원하지 않습니다. Windows의 경우 각 상태 세부 정보를 전송하고 하위 사용자를 다른 사용자 또는 관리자로 시작할 수 있는 실제 sudo 및 su가 다음과 같이 추가됩니다. 해밀턴 C 쉘 .
자바 tostring 메소드
GUI는 sudo( 그쿠도 특히) 그러나 데비안에서는 더 이상 사용되지 않으며 우분투에서도 더 이상 사용되지 않습니다. 다양한 다른 유형의 사용자 인터페이스는 sudo에서 직접 설계되지 않았지만 다음과 같은 관리 목적을 위해 동일한 권한 상승(임시)을 용이하게 합니다. Mac OS X의 인증 서비스, Microsoft Windows 내부의 사용자 계정 제어 , 그리고 Unix 계열 운영 체제 내부의 pkexec .
OpenBSD 5.8 버전(2015년 10월)부터 기부하다 사용할 수 있습니다. OpenBSD의 기본 시스템 내에서 sudo 명령을 대체하도록 지정되었습니다.
그의 대 sudo
보다 전통적인 Linux 설정에 익숙하다면 루트 권한을 얻기 위해 su 명령을 적용하는 데 익숙합니다. 루트로 효과적으로 로그인하기 위해 su 명령을 실행할 수도 있습니다(루트의 홈이 우리의 홈이 됩니다).
이러한 종류의 배포를 사용하면 경로 사용자로 로그인할 수도 있습니다. 그러나 루트 사용자로 로그인하는 것은 좋은 생각이 아닙니다. su 명령에 의존하고 루트 사용자 로그인을 허용하는 배포판을 적용하는 경우 표준 사용자로 로그인하고 루트 사용자에게 su 명령을 실행합니다.
아마도 우리는 sudo 기반 배포를 사용하여 루트 사용자로 로그인할 수 없다는 것을 알게 될 것입니다. 실제로 Ubuntu와 같은 일부 배포판에서는 루트 사용자 계정이 비활성화되어 있습니다.
루트 사용자로 로그인할 수 없으며 su 명령을 사용하여 루트 사용자가 될 수 없습니다. 관리 권한을 얻기 위해 sudo 명령을 사용하여 이러한 명령을 실행할 수 있습니다.
C 언어의 행렬
sudo 명령 사용법
Linux에서 관리 애플리케이션을 실행하는 방법에는 두 가지가 있습니다. su 명령을 사용하여 수퍼유저 또는 루트 사용자를 변경하거나 sudo 명령을 활용할 수 있습니다.
터미널에서 시간을 활용할 때 sudo는 우리가 자주 사용하게 될 중요한 명령 중 하나입니다. 루트 사용자로 로그인하는 것보다 sudo 명령을 사용하는 것이 루트 비밀번호를 모르는 단일 사용자에게 몇 가지 관리 권한만 부여할 수 있기 때문에 더 보호됩니다.
구현 방법은 사용하는 배포판에 따라 다릅니다. 몇몇 배포판에서는 루트 사용자(예: 오픈수세, 레드햇 , 또는 페도라 ), 일부는 그렇지 않지만 (좋아요 데비안 그리고 우분투 ).
sudo 명령을 사용하는 것은 매우 기본적인 형태로 간단합니다. 예를 들어, 소프트웨어 조각을 설치하려면 dpkg를 실행해야 합니다. 그냥 실행하면 dpkg -i 소프트웨어.deb 표준 사용자로서 명령을 실행하면 사용자에게 명령을 실행할 권한이 없다는 오류 메시지가 표시됩니다.
그렇기 때문에 기본적으로 표준 사용자는 Linux 시스템을 통해 다양한 응용 프로그램을 설치할 수 없습니다. Linux 시스템에 애플리케이션을 설치하려면 슈퍼유저 권한이 필요합니다.
대신 우리는 sudo dpkg -i 소프트웨어.deb 설치를 성공적으로 실행할 수 있도록 명령을 실행합니다.
sudo 명령 설치
sudo 명령 패키지는 대부분의 Linux 배포판에 사전 설치되어 있습니다. 패키지가 시스템에 설치되어 있는지 확인하려면 다음 단계를 따라야 합니다.
- 우선 터미널을 열어주세요.
- sudo를 입력하고 Enter 버튼을 클릭하세요.
- 시스템에 sudo 패키지가 설치되어 있으면 짧은 메시지가 표시됩니다.
- 그렇지 않으면 메시지(예: sudo 명령을 찾을 수 없음)로 알립니다.
- 패키지가 설치되어 있지 않은 경우에는 과잉배포 패키지 관리자를 적용하여 쉽게 설치할 수 있습니다.
Fedora 및 CentOS에 Sudo 설치
$ yum install sudo
Debian 및 Ubuntu에 Sudo 설치
$ apt install sudo