从命令行将AD域用户添加到sudoers


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?

Answers:


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 passwdgid NUMBERS没有为我工作。DOMAIN\\domain^users为我工作

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

众所周知,每个AD用户也都在工作

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

2

我们的域名很长,带有.local sufix,

增强

%domainname\\group ALL=(ALL) ALL

也不是

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

工作...

但是如果我只使用这样的组名:

%Domain^Admins ALL=(ALL) ALL

有用。


这是最终有效的解决方案。%Domain^Admins ALL=(ALL) ALL
mjp

2

其他建议的问题是

  • 只有在您可以访问公司局域网(或VPN)时,它们才起作用
  • 您必须始终在每台计算机上维护sudoers文件
  • 作为奖励,他们根本没有为我工作-根本没有

相反,我想要一些

  • 缓存凭据和sudo访问
  • 集中管理

实际的解决方案是使用SSSD并扩展AD模式。这样,SSSD会从AD定期获取sudo设置和用户凭据,并维护它们的本地缓存。然后将sudo规则存储在AD对象中,您可以在其中将规则限制为计算机,用户和命令,甚至所有这些都无需触摸工作站上的sudoers文件。

确切的教程在这里解释太久了,但是您可以在此处找到分步指南和一些有助于自动化的脚本:

TL; DR:

广告

获取最新版本的sudo,获取doc / 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 Edit进行验证:打开Schema命名上下文并查找sudoRole类。

现在,在您的域根目录上创建sudoers OU,该OU将保存所有Linux工作站的所有sudo设置。在此OU下,创建一个sudoRole对象。要创建sudoRole对象,您必须使用ADSI Edit,但是一旦创建,就可以使用Active Directory用户和计算机对其进行修改。

假设我有一台电脑命名foo32linux,用户名为stewie.griffin,我希望让他运行的所有命令与上补偿须藤。在这种情况下,我将在sudoers OU 下创建一个sudoRole对象。对于sudoRole,您可以使用任意名称-我坚持使用计算机名,因为我使用每台计算机的规则。现在,如下设置其属性:

  • sudoHost:foo32linux
  • sudoCommand:全部
  • sudoUser:stewie.griffin

对于命令,您也可以使用特定的条目,例如/ bin / less或其他。

固态硬盘

至少添加到/etc/sssd/sssd.conf中:

[sssd]
services = nss, pam, sudo

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

SSSD每隔几个小时会使用更新的规则刷新其本地缓存,但是最简单的测试方法是重新启动计算机。然后以AD用户身份登录并检查:

sudo -l

它应该列出您添加到该用户和计算机的所有相关整体。十分简单!


1
可能会很长,但由于链接无效,因此必须在此处包括基本部分,以供参考,这是一个规则。
TheWanderer

实际上,我添加了必不可少的部分,即概念。我可以挑选其他一些部分,但是如果没有其余部分并且不了解全局,它们将毫无用处,所以我看不出重点。弊大于利。
bviktor,2015年

这是AskUbuntu的一条规则,有经验的人需要能够查看您的答案并解决问题,而无需访问外部站点。
TheWanderer 2015年

1
添加了更多相关信息。
bviktor,2015年

1

我可以找到有关此主题的最佳信息:

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

它基本上要求您/etc/sudoers使用正确的配置来修改文件,以使AD管理员组中的人员可以访问所有特权。

如果您需要选择并受用户限制,您也可以这样做。但是它警告您必须确保使用getend passwd所示命令来找出Linux系统上用户的名字。


谢谢真的不知道在哪里看。作为记录,DOMIAN \\ username适用于个人。
Wyatt Barnett

0

使用直接Centify,我已将域用户添加到/ etc / sudoers文件中。

(域用户)ALL =(全部)全部


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.