web-dev-qa-db-ja.com

コマンドラインからADドメインユーザーをsudoersに追加します

データベースサーバーとして使用するために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 is not in sudoers file。このインシデントは報告されます。」と言われます。

では、非ローカルユーザーをsudoersに追加するにはどうすればよいですか?

10
Wyatt Barnett

私はこの問題に遭遇し、これが私の解決策です:

/etc/sudoers:を次のエントリで編集します

最初にコマンドIDを使用してaduserを確認します

#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
6
Jao Madn

.localサフィックスが付いた長いドメイン名があります。

太く

%domainname\\group ALL=(ALL) ALL

また

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

働いた...

しかし、次のようなグループ名のみを使用する場合:

%Domain^Admins ALL=(ALL) ALL

できます。

2
user387622

他の提案の問題は

  • 企業LAN(または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クラスを探します。

ドメインルートにsudoersOUを作成します。このOUは、すべてのLinuxワークステーションのすべてのSudo設定を保持します。このOUの下で、sudoRoleオブジェクトを作成します。 sudoRoleオブジェクトを作成するには、ADSI Editを使用する必要がありますが、作成したら、Active Directoryユーザーとコンピューターを使用して変更できます。

foo32linuxという名前のコンピューターがあり、stewie.griffinと呼ばれるユーザーがいて、すべてのコマンドをSudoで実行できるようにしたいとします。そのコンプで。この場合、sudoersOUの下にsudoRoleオブジェクトを作成します。 sudoRoleには、任意の名前を使用できます。コンピューターごとのルールを使用しているため、コンピューター名を使用します。次に、その属性を次のように設定します。

  • sudoHost:foo32linux
  • sudoCommand:ALL
  • 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

そのユーザーとコンピューターに追加したすべての関連する全体をリストする必要があります。かんたん!

2
bviktor

この件に関して見つけられる最高の情報はこちらです:

http://www.mail-archive.com/[email protected]/msg00572.html

基本的に、ADの管理者グループのユーザーがすべての特権にアクセスできるように、正しい構成で/etc/sudoersファイルを変更するように求められます。

ユーザーによる選択と制限が必要な場合は、それも行うことができます。しかし、示されているようにgetend passwdコマンドを使用して、Linuxシステム上のユーザー名が何であるかを確認する必要があることを警告しています。

一般的なコマンドを使用します

Sudo usermod -a -G Sudo DOMAIN\username 

DOMAIN\userDOMAIN\\\usernameに置き換えます。

0

Centify directを使用して、ドメインユーザーを/ etc/sudoersファイルに追加しました。

(ドメインユーザー)ALL =(ALL)ALL

0
user160720