명령 줄에서 sudoers에 AD 도메인 사용자 추가


10

데이터베이스 서버로 사용하기 위해 Ubuntu 11.04 서버 VM을 설정하고 있습니다. Windows 자격 증명을 사용하여 사람들이 로그인하고 다른 곳에서 얻은 현재 AD 기반 보안으로 컴퓨터를 작동시킬 수 있다면 모든 사람의 삶이 더 쉬워 질 것입니다.

이것의 첫 번째 다리는 실제로 달성하기가 쉬웠 apt-get install likewise-open으며 비즈니스에 거의 종사했습니다. 내가 겪고있는 문제는 관리자를 sudoers 그룹으로 데려 오는 것입니다. 아무것도 얻을 수없는 것 같습니다. 난 노력 했어:

a) usermod -aG sudoers [username]
b) 여러 형식 (DOMAIN \ user, user @ domain)의 사용자 이름을 sudoers 파일에 추가합니다.

"DOMAIN \ user가 sudoers 파일에 없습니다.이 사건이보고 될 것입니다."라는 메시지가 계속 표시됩니다.

로컬 사용자가 아닌 사용자를 sudoers에 어떻게 추가합니까?

답변:


6

이 문제가 발생하면 다음과 같은 해결책이 있습니다.

편집 /etc/sudoers: 다음 항목으로

먼저 명령 ID를 사용하여 광고 사용자를 확인하십시오.

#id <AD user>( #id domain\\aduser01 )

내 결과 :

SMB\aduser01@linux01:~/Desktop$ id smb\\aduser02
uid=914883676(SMB\aduser02) gid=914883073(SMB\domain^users) groups=914883073(SMB\domain^users),1544(BUILTIN\Administrators),1545(BUILTIN\Users),914883072(SMB\domain^admins)

getent passwd그리고 gid NUMBERS나를 위해 작동하지 않습니다. DOMAIN\\domain^users나를 위해 일한다

%SMB\\domain^users ALL=(ALL) ALL

우리 모두 개인 AD 사용자도 알고 있습니다

SMB\\<aduser01> ALL=(ALL) ALL

2

.local 접미사가있는 긴 도메인 이름이 있습니다.

더 빨리

%domainname\\group ALL=(ALL) ALL

또는

%domainname.local\\group ALL=(ALL) ALL

일했다 ...

그러나 다음과 같이 그룹 이름 만 사용하면 :

%Domain^Admins ALL=(ALL) ALL

효과가있다.


이것이 결국 효과가 있었던 솔루션이었습니다. %Domain^Admins ALL=(ALL) ALL
mjp

2

다른 제안의 문제점은

  • 회사 LAN (또는 VPN)에 액세스 할 수있는 경우에만 작동합니다
  • 항상 모든 컴퓨터에서 sudoers 파일을 유지해야합니다
  • 보너스로, 그들은 나를 위해 일하지 않았다-전혀

대신, 나는 뭔가를 원했다

  • 신임 정보와 sudo 액세스를 모두 캐시합니다.
  • 중앙 관리

실제 솔루션은 SSSD를 사용하고 AD 스키마를 확장하는 것입니다. 이렇게하면 SSSD는 AD에서 sudo 설정 및 사용자 자격 증명을 주기적으로 가져 와서 로컬 캐시를 유지 관리합니다. 그런 다음 sudo 규칙은 AD 개체에 저장되어 워크 스테이션의 sudoers 파일을 건드리지 않고도 컴퓨터, 사용자 및 명령으로 규칙을 제한 할 수 있습니다.

정확한 튜토리얼은 여기에 설명하기에는 너무 길지만 자동화에 도움이되는 단계별 가이드와 일부 스크립트를 찾을 수 있습니다.

TL; DR :

기원 후

최신 버전 잡고 는 sudo를 얻가, 문서 / schema.ActiveDirectory 다음 (도메인 이름에 따라 도메인 경로를 수정해야합니다)를 가져, 파일 :

ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" "CN=Schema,CN=Configuration,DC=ad,DC=foobar,DC=com" -j .

ADSI 편집으로이를 확인하십시오. 스키마 이름 지정 컨텍스트를 열고 sudoRole 클래스를 찾으십시오 .

이제 도메인 루트에 sudoers OU를 작성하십시오 .이 OU는 모든 Linux 워크 스테이션에 대한 모든 sudo 설정을 보유합니다. 이 OU에서 sudoRole 객체를 만듭니다. sudoRole 개체를 만들려면 ADSI 편집을 사용해야하지만 일단 만들어진 후에는 Active Directory 사용자 및 컴퓨터 를 사용하여 수정할 수 있습니다.

하자 내가 컴퓨터 이름이 있다고 가정 foo32linux , 사용자라는 stewie.griffin을 하고 나는 그에게 그 빌려 sudo는 모든 명령을 실행할 수 있도록합니다. 이 경우 sudoers OU 아래에 sudoRole 객체를 만듭니다 . sudoRole의 경우 원하는 모든 이름을 사용할 수 있습니다. 컴퓨터 별 규칙을 사용하기 때문에 컴퓨터 이름을 고수합니다. 이제 다음과 같이 속성을 설정하십시오.

  • sudoHost : foo32linux
  • sudoCommand : 모두
  • sudoUser : stewie.griffin

명령의 경우 / bin / less 또는 기타 와 같은 특정 항목도 사용할 수 있습니다 .

SSSD

최소한 /etc/sssd/sssd.conf에 추가하십시오 :

[sssd]
services = nss, pam, sudo

[domain/AD.FOOBAR.COM]
cache_credentials = True

SSSD는 몇 시간마다 업데이트 된 규칙으로 로컬 캐시를 새로 고치지 만 테스트하는 가장 간단한 방법은 컴퓨터를 재부팅하는 것입니다. 그런 다음 AD 사용자로 로그인하여 다음을 확인하십시오.

sudo -l

해당 사용자 및 컴퓨터에 추가 한 모든 관련 항목이 나열되어야합니다. 쉬워요!


1
시간이 오래 걸리지 만 링크가 유효하지 않기 때문에 여기에 참조 링크와 함께 필수 부분이 포함되는 것이 규칙입니다.
TheWanderer

사실, 나는 핵심 부분, 즉 개념을 추가했습니다. 나는 다른 부분을 체리 픽 선택할 수 있지만 나머지 부분과 큰 그림을 이해하지 못하면 쓸모가 없으므로 요점을 알 수 없습니다. 좋은 것보다 더 해 롭습니다.
bviktor

AskUbuntu의 규칙은 함께 오는 사람이 외부 사이트를 방문하지 않고도 답변을보고 문제를 해결할 수 있어야한다는 규칙입니다.
TheWanderer

1
더 관련 정보를 추가했습니다.
bviktor

1

내가 주제에 대해 찾을 수있는 최고의 정보는 다음과 같습니다.

http://www.mail-archive.com/likewise-open-discuss@lists.likewisesoftware.com/msg00572.html

기본적으로 /etc/sudoersAD의 관리자 그룹 구성원이 모든 권한에 액세스 할 수 있도록 올바른 구성으로 파일 을 수정하도록 요청합니다 .

선택적이고 사용자별로 제한해야하는 경우에도 그렇게 할 수 있습니다. 그러나 getend passwd표시된대로 명령을 사용하여 Linux 시스템에서 사용자 이름이 무엇인지 확인해야합니다 .


정말 감사합니다. 기록을 위해 DOMIAN \\ username은 개인을 위해 작동합니다.
와이엇 바넷

0

Centify direct를 사용하여 도메인 사용자를 / etc / sudoers 파일에 추가했습니다.

(도메인 사용자) ALL = (ALL) ALL


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.