호스트 이름을 검색하려는 sudo 명령


15

최근에 sudoers 파일과 호스트 이름을 / etc / hostname을 통해 변경했습니다. 이 파일을 변경 한 후 sudo 명령에 많은 시간이 걸립니다. 또한 sudo는 호스트 kaagini (내 컴퓨터의 호스트 이름)를 확인할 수 없다고 말합니다.

sudo가 무언가에 권한을 제공하기 위해 호스트 이름을 알아야하는 이유는 무엇입니까 ??

내 sudoers 파일에는 "Defaults env_reset"명령이 있습니다. 비슷한 질문이 있지만 컨텍스트는 원격 로그인이 아닙니다. 로컬 호스트에 오류가 표시됩니다.

문제에 대한 초기 인터넷 검색 결과 / etc / hosts 파일의 실제 호스트 이름은 127.0.0.1이어야합니다. 이것은 내 문제를 해결했습니다. 그러나 내 실제 질문은 : 왜 우리는 sudo에 이것을 요구합니까 ?? 로그인 장소에 관계없이 sudo가 작동해야합니다.



@OliverSalzburg 나는 그 질문을 올바르게 표현했다. 문제가 있으면 알려주세요
prathmesh.kallurkar

답변:


16

/etc/sudoers파일은 여러 서버에 분산 될 수 있도록 설계되었습니다. 이를 위해 파일의 각 권한에는 호스트 부분이 있습니다.

일반적으로이 설정 ALL=은 모든 서버에 대해 권한이 유효하지만 특정 호스트로 설정할 수 있음을 의미합니다.

%sudo    kaagini=(ALL) ALL

sudo가이 규칙을 적용해야한다는 것을 알기 위해서는 실행중인 호스트를 찾아야합니다. /etc/hosts올바른 것에 의존하는 호출을 사용하므로 옳지 않으면 실패합니다.

그 주장 할 수있는 sudo호스트 부분이 설정되어있는 경우 이름 조회를 수행 귀찮게 할 필요가 없습니다 ALL=모든 사용 권한에 대한,하지만 그냥 그런 식으로 작동하지 않습니다 - 실행 규칙을 처리하기 전에 여기서 해결하기 위해 나타납니다 .

sudo는 사용자가 현재 시스템에서 수행 할 수있는 작업을보기 위해 / etc / sudoers 만 읽으므로 유지 관리가 용이합니다. 그러나 서버가 100 개인 관리자는 유지 관리하기 위해 100 개의 서로 다른 / etc / sudoers 파일이 필요할 수 있습니다. sudoers는 권한에 호스트 부분이 있으므로 단일 sudoers 파일을 유지 관리하고이를 모든 시스템에 분배 할 수는 있지만 각 시스템에서 사용자가 수행 할 수있는 작업을 세분화 할 수 있습니다.


답변 해주셔서 감사합니다. 분산 sudoers 파일에서 다시 올 수 있습니까 ?? machineA에서 운영 체제를 실행하고 있습니다. 이 운영 체제에 대한 권한 파일 (/ etc / sudoers)이 다른 시스템에 저장되어 있어야합니다. 또는 당신의 대답은 sudo 명령이 사용자 John과 같은 것을 말할 수 있다는 것을 의미합니다.
prathmesh.kallurkar 8:29에

실제로 유지 관리가 용이합니다. sudo는 / etc / sudoers 만 읽어 현재 시스템에서 사용자가 무엇을 할 수 있는지 확인합니다. 그러나 서버가 100 개인 관리자는 유지 관리하기 위해 100 개의 다른 / etc / sudoers 파일이 필요할 수 있습니다. sudoers는 권한에 호스트 부분이 있으므로 단일 sudoers 파일을 유지 관리하고 모든 시스템에이를 분배 할 수는 있지만 각 시스템에서 사용자가 수행 할 수있는 작업을 세분화 할 수 있습니다.
Paul

질문 하나 더 ... 서버 관리자는 주 sudoers 파일이 변경 될 때마다 새 sudoers 파일을 scp해야합니까? 아니면 sudo가 네트워크를 통해 sudoers 파일을 유지하는 방법을 제공합니까 ??
prathmesh.kallurkar 16:29에

@ prathmesh.kallurkar 아니오, 배포 방법이 내장되어 있지 않지만 이것이 리눅스이므로 정상적인 것입니다. rsync 또는 scp 또는 다른 도구를 사용하여이 부분을 완료합니다.
Paul

1
버그라고 생각합니다 (모든 규칙 만있는 경우 sudo는 호스트 이름을 알 필요가 없습니다). 따라서 bugzilla.sudo.ws/show_bug.cgi?id=916
Matthias Urlichs

1

Matthias Urlichs가 다른 의견으로 제출 한 링크 된 버그 보고서 덕분에 다음 명령으로 문제가 해결되었습니다.

Defaults !fqdn

이 줄을 /etc/sudoers파일 에 넣으십시오.


-3

Puppet 은 Puppet Manifests 파일을 읽어 서버를 자동으로 구성 할 수있는 구성 관리 소프트웨어입니다. 이러한 파일에는 / etc / sudoers 파일의 정의가 포함될 수 있으며,이 파일은 꼭두각시 "마스터"에서 모든 퍼펫 "에이전트"로 푸시 될 수 있습니다. 그런 다음 모든 호스트는 / etc / sudoers 파일의 동일한 사본을 가져옵니다.이 파일에는 HOST 정의가 포함될 수 있으며 일부 호스트에는 일부 명령을 부여 할 수 있습니다 (다른 호스트는 제외).


3
꼭두각시가 무엇인지, 어디서 찾을 수 있는지, 어떻게 문제를 해결하기 위해 어떻게 사용하는지 설명하기 위해 답을 넓힐 수 있습니까? 검토 대기열에서
fixer1234

2
소프트웨어 권장 방법에 대한 팁은 소프트웨어 권장 방법을 참조하십시오 . 최소한 링크, 소프트웨어 자체에 대한 추가 정보 및 문제의 문제를 해결하는 데 사용할 수있는 방법을 제공해야합니다.
DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.