명령 줄에서 sudoers에 AD 도메인 사용자 추가 쉬웠 apt-get install likewise-open으며

데이터베이스 서버로 사용하기 위해 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에 어떻게 추가합니까?



답변

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

편집 /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


답변

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

더 빨리

%domainname\\group ALL=(ALL) ALL

또는

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

일했다 …

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

%Domain^Admins ALL=(ALL) ALL

효과가있다.


답변

다른 제안의 문제점은

  • 회사 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

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


답변

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

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

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

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


답변

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

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


답변

나는 일반적인 명령을 사용

sudo usermod -a -G sudo DOMAIN\username

및 교체 DOMAIN\user와 함께 DOMAIN\\\username.


답변