Linux 시스템에는 “sudoers”라는 파일이 있습니다. 이것은 권한 시스템의 가장 깊은 수준을 제어하는 텍스트 파일입니다. 사용자가 수퍼유저 액세스 권한을 얻는 것을 허용하거나 거부하고 sudo에 대한 몇 가지 특별한 기본 설정을 보유합니다.
sudoers 파일이란?
sudoers 파일은 “/etc” 디렉토리에서 찾을 수 있는 텍스트 파일입니다(Linux 디렉토리에 대한 자세한 내용은 여기). 주요 목적은 방법을 제어하는 것입니다. sudo 컴퓨터에서 작동하고 수퍼유저 권한으로 실행할 수 있는 사용자 및 그룹을 결정합니다.
또한 sudoers 파일을 사용하면 특정 사용자가 시스템의 다른 사용자로 명령을 실행할 수도 있습니다.
예를 들어 웹 서버가 있는 경우 다른 사용자가 “www-data”로 명령을 실행할 수만 있도록 sudoer를 구성할 수 있습니다.
언제 sudoers 파일을 편집해야 합니까?
Ubuntu와 같은 Linux 시스템을 처음 설치할 때 설치 프로그램은 자동으로 첫 번째 사용자를 sudoers 파일에 추가합니다. 이는 다음을 사용하여 관리 작업을 즉시 실행할 수 있도록 하기 위한 것입니다. sudo 설치 후 명령.

그러나 새 사용자 계정을 만들면 기본적으로 수퍼유저 권한이 없습니다. 수퍼유저 권한을 부여해야 하는 경우 sudoers 파일을 편집하고 이 사용자 계정을 파일에 추가해야 합니다.
어떻게 sudoers를 편집할 수 있습니까?
일반 텍스트 편집기에서 sudoers 파일을 편집하지 마십시오. 이로 인해 파일이 동시에 편집되고 손상되어 관리자 액세스가 거부될 수 있습니다. Sudoers는 다음을 실행하여 편집해야 합니다. visudo 터미널에서 다음과 같이
sudo visudo

사용해야 하는 점 참고하세요 sudo 달리다 visudo. 이렇게 하면 기본적으로 Nano인 터미널의 기본 텍스트 편집기에서 sudoers 파일이 열립니다.

sudoers 파일을 변경하면 무엇을 할 수 있습니까?
위에서 논의한 바와 같이 sudoers 파일의 주요 작업은 sudo를 사용할 수 있는 사용자와 그룹을 정의하는 것입니다. 그러나 이 파일에는 sudo의 동작을 구성할 수 있는 몇 가지 옵션도 포함되어 있습니다.
이러한 옵션 중 일부에는 권한 에스컬레이션의 시간 초과 길이를 변경하는 기능이 포함됩니다. 기본 visudo 편집기 및 pty 사용과 같은 기본 강화를 변경하는 옵션도 있습니다.
sudo 시간 초과 변경
기본적으로 sudo 암호를 입력하면 셸을 닫거나 종료할 때까지 권한이 높아집니다. 이것은 안전하지 않을 수 있으며 일부는 sudo를 사용할 때마다 비밀번호를 입력하는 것을 선호할 수 있습니다.
- 운영
sudo visudo앞에서 말했다시피. - 누르다 Alt + / 문서의 끝으로 이동합니다. Vi 또는 Vim을 사용하는 경우 옮기다 + G 대신에.

- 문서 맨 아래에 새 줄을 만들고 다음 줄을 추가합니다.
Defaults timestamp_timeout=0

이렇게 하면 sudo 시간 제한이 0초로 설정되므로 첫 번째 명령을 실행한 후 0초 동안 sudo 권한을 갖게 됩니다. 다른 간격을 선호하는 경우 대신 해당 값을 초 단위로 입력하십시오.
또한 제한 시간을 “-1″로 설정하여 무한 유예 기간을 제공할 수 있습니다. 그러지 마세요. 언젠가 실수로 시스템에 핵을 박을 수 있는 편리한 방법입니다.
- 누르다 Ctrl 키 + 영형 저장하고 Ctrl 키 + 엑스 나가기 위해서. 반면에 Vi 또는 Vim을 사용하는 경우 다음을 누를 수 있습니다. ESC 그런 다음 입력
:wq나가기 위해서.
누가 무엇을 위해 Sudo를 사용할 수 있는지 제한
쉘을 통해 동일한 시스템에 여러 사용자가 액세스하는 경우 sudo에서 값을 설정하여 액세스를 제어할 수 있습니다.
사용자를 위한 맞춤 규칙을 만드는 것은 매우 쉽습니다. sudoers 파일의 권한 규칙은 다음과 같습니다.
username hostlist = (userlist) commandlist
- 그만큼
username필드는 이 규칙이 적용되는 시스템의 사용자를 나타냅니다. - 그만큼
hostlistsudo에 알려진 시스템 호스트 목록에 이 규칙을 적용하도록 sudo에 지시합니다. 기본적으로 sudo는 로컬 시스템만 호스트로 인식합니다. - 그만큼
userlist사용자 이름 필드가 대체할 수 있는 사용자 계정을 sudo에 알려줍니다. - 마지막으로,
commandlist시스템에서 사용자 이름이 해당 사용자로 실행할 수 있는 프로그램을 나타내는 쉼표로 구분된 목록입니다.
이를 알고 다음 예를 고려하십시오.
ramces ALL=(ALL) ALL
이 행은 ramces 사용자가 자신을 임의의 사용자로 대체하고 모든 호스트에서 명령을 실행할 수 있도록 합니다. 이 때문입니다 ALL “제한 없음”을 의미하는 sudoers 파일의 특수 값입니다.

그러나 이는 사용자에 대해 이 규칙을 설정하는 것이 위험하다는 의미이기도 합니다. 이는 사용자가 모든 명령을 실행하고 모든 파일에 모든 사용자로 액세스할 수 있기 때문입니다.
따라서 더 적절하고 안전한 규칙은 다음과 같습니다.
ramces ALL=(root) ALL
여기서 ramces 사용자는 여전히 루트로 실행할 수 있지만 다른 사용자로 자신을 대체할 수는 없습니다.
사용자 및 그룹의 루트 제한
더 많은 제어를 위해 다음과 같은 줄을 추가하면 “ramces” 사용자만 실행할 수 있습니다. apt update.
ramces ALL=(root) /usr/bin/apt update

넣어 % 사용자 앞에 그룹을 정의합니다. 아래 줄은 “admin” 그룹의 모든 사용자가 루트 수준 권한을 갖도록 허용합니다. 이것은 시스템의 권한 그룹에 의해 정의된 그룹입니다.
%admin ALL=(root) ALL
use_pty로 sudoers 강화하기
sudoers 파일의 또 다른 사용법은 제한된 샌드박스 환경에서만 sudo를 사용하는 것입니다.
인터넷에 지속적으로 연결되어 있는 안전하지 않은 시스템에서 sudo를 실행하는 경우 매우 유용할 수 있습니다. 이를 알고 있으면 “/etc/sudoers” 파일로 이동하고 다음 코드 줄을 입력하여 이 기능을 사용할 수 있습니다.
Defaults use_pty

비밀번호 없이 sudo 사용하기
sudoers 파일에서 활성화할 수 있는 또 다른 옵션은 암호 없이 sudo를 실행하는 기능입니다. 이것은 컴퓨터에서 수퍼유저 명령을 지속적으로 실행하는 경우에 특히 유용할 수 있습니다.
활성화하려면 현재 사용자의 규칙에 단일 태그를 추가하기만 하면 됩니다.
ramces ALL = (root) NOPASSWD: ALL

위의 예와 이 예의 주요 차이점은 NOPASSWD:.
visudo 편집기 변경
마지막으로 실행 중인 Linux 버전에 따라 편집기를 변경하는 두 가지 기본 방법이 있습니다.
Ubuntu의 경우 아래 터미널 명령을 실행해야 합니다.
sudo update-alternatives --config editor
다음과 같은 내용이 표시됩니다.
There are 4 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 10 manual mode Press enter to keep the current choice[*], or type selection number: 3
기본 nano에서 vim을 visudo 편집기로 선택하려면 선택 번호를 누릅니다. 3 그런 다음 Enter 키를 누릅니다.

다른 종류의 Linux의 경우 아래와 같이 “~/.bashrc” 파일에 새 줄을 추가하고 싶을 것입니다.
export EDITOR="vim"
그런 다음 파일을 저장합니다. 그러면 visudo 편집기가 vim으로 설정됩니다.
축하합니다! 이제 sudoers 파일에 대한 기본 편집을 수행하는 방법을 알게 되었습니다. 뿐만 아니라 이제 sudo가 작동하는 방식에 대한 기본 아이디어도 얻었습니다. sudoers 파일을 통해 활성화할 수 있는 추가 옵션도 있습니다.
이 모든 이야기가 Linux에 대해 궁금하게 만들었다면. 오늘 설치할 수 있는 최고의 Linux-libre 배포판에 대해 이야기하는 이 기사를 확인할 수 있습니다.
자주 묻는 질문
1. “(username) is not in the sudoers file” 오류가 발생합니다. 내 sudo 설치가 깨졌습니까?
전혀. 이것은 사용 중인 사용자가 sudoers 파일에 규칙 항목을 가지고 있지 않을 때마다 발생합니다. 이것은 사용자 자신이 sudoers에 없거나 sudoers에 있는 어떤 그룹에도 없을 수 있습니다.
이 문제를 해결하는 것은 비교적 쉽습니다. 먼저 루트 계정에 로그인해야 합니다. 다음을 입력하여 수행할 수 있습니다. su 그런 다음 루트 암호를 입력합니다. 거기에서 다음을 입력할 수 있습니다. sudo visudo sudoers 파일을 입력합니다.
완료되면 마지막으로 해야 할 일은 사용자 이름을 sudoers 파일에 추가하는 것입니다. 예를 들어, 다음은 alice라는 새 계정에 대한 sudoers 파일의 일부입니다.
alice ALL=(root) ALL
2. 사용자 정의 사용자 규칙을 생성할 때 어떤 문제가 있습니까?
사용자 지정 규칙을 생성할 때 발생할 수 있는 문제 중 하나는 와일드카드 문제입니다. 이는 여러 사례에 적용할 수 있는 규칙을 만드는 데 사용할 수 있는 기호입니다. 예를 들어 그룹 관리자가 다음을 실행할 수 있도록 허용하는 규칙입니다. cat “/var”의 모든 파일에서 루트로.
%admin ALL: (root) /bin/cat /var/*
이것의 문제는 이 와일드카드 문자가 공백을 대신할 수도 있다는 것입니다. 따라서 이 방법으로 설정하면 다음과 같은 명령도 허용할 수 있습니다.
sudo cat /var/log.1 /home/bob/secret.txt
따라서 규칙을 생성할 때 와일드카드를 사용하지 않는 것이 좋습니다. 대신 다음 중 하나를 사용할 수 있습니다. su 일회성 작업의 경우 sudo가 필요하지 않도록 파일의 권한을 설정하십시오.
3. 루트로 실행할 때마다 sudo가 시스템 메일을 보내는 것을 방지할 수 있습니까?
예! NOMAIL 태그를 사용하여 sudo가 메일을 보내는 것을 쉽게 방지할 수 있습니다. 예를 들어, 다음은 sudoers 파일의 내 사용자 계정에 대한 규칙 항목입니다.
ramces ALL: (root) NOMAIL: ALL
우리의 활동을 지원해주세요 ❤️
이 글이 마음에 드셨다면, 앞으로도 좋은 콘텐츠를 계속 발행할 수 있도록 팁을 남겨주세요.




















