ノート

ノート

ノート

この記事を投稿するときに私が直接問題を見つけたので、後で他の人に役立つなら、この記事をアップロードしてもいいと思います。問題はタイプミスがあるということです。/etc/nsswitch.conf、私が書いたスドゥールまさかSudoers

これ修道:エントリが最初から存在せず、追加する必要があるため、タイプミスが発生しました。もう一つはパッケージです。libsss-sudoインストールも必要ありません。

郵便はがき

次のように、SSSDを介してLinuxサーバーをADに接続しました。

apt-get install sssd-ad sssd-tools realmd adcli krb5-user libsss-sudo
realm join -U Administrator domain.local

私のADユーザーを使用してログインできますが、今ではADでもsudoルールを管理したいと思います。

私のADサーバーでADスキームを拡張しました。

> wget https://github.com/sudo-project/sudo/blob/main/docs/schema.ActiveDirectory -o schema.ActiveDirectory

私はすべてを変えましたDC=X記入DC=ドメイン、DC=ローカル次に、次を実行します。

> ldifde -i -f schema.ActiveDirectory

今まではそんなに良くなった。 OUを作成し、すべてのsudoルールが必要です。

OU=Sudo-rules,OU=Linux Servers,OU=Computers,OU=Company,DC=domain,DC=local

組織単位でsudo ルールオブジェクトを作成しました。sudoの役割クラス、名前付きLinux 管理者Sudo次のプロパティを編集しました。

sudoCommand: ALL
sudoHost: ALL
sudoRunAs: ALL
sudoUser: %[email protected]

これ[Eメール保護]は、すべてのLinux管理者がメンバーに属するADグループであり、すべてのLinux管理者がすべてのLinuxサーバーへの完全なsudoアクセス権を取得できることを願っています。

これは私のものです。/etc/sssd/sssd.conf:

[sssd]
domains = domain.local
config_file_version = 2
services = nss, pam, sudo

[domain/domain.local]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = DOMAIN.LOCAL
realmd_tags = manages-system joined-with-adcli
id_provider = ad
fallback_homedir = /home/%d/%u
ad_domain = domain.local
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad
sudo_provider = ad

[sudo]

存在する/etc/nsswitch.conf私は以下を追加しました:

sudoers:        sss files

SSSDキャッシュを消去して再起動します。

sss_cache -E
systemctl restart sssd

次に、次のユーザーを使用してログインします。Linuxマネージャ- グループと私が走るときsudo -lわかりました:

Sorry, user [email protected] may not run sudo on linux-host1.

したがって、ADのルールがこれを許可しても、sudoをまったく実行することはできません。

SSSDキャッシュを確認するときにルールを取得したことがわかります。

ldbsearch -H /var/lib/sss/db/cache_domain.local.ldb

次の項目が見つかりました。

# record 28
dn: name=LinuxAdminsSudo,cn=sudorules,cn=custom,cn=domain.local,cn=sysdb
cn: LinuxAdminsSudo
dataExpireTimestamp: 1699953662
entryUSN: 65897179
name: LinuxAdminsSudo
objectCategory: CN=sudoRole,CN=Schema,CN=Configuration,DC=domain,DC=local
objectClass: sudoRule
originalDN: CN=LinuxAdminsSudo,OU=Sudo-rules,OU=Linux Servers,OU=Computers,OU=Company,DC=domain,DC=local
sudoCommand: ALL
sudoHost: ALL
sudoRunAs: ALL
sudoUser: %[email protected]
distinguishedName: name=LinuxAdminsSudo,cn=sudorules,cn=custom,cn=domain.local,cn=sysdb

これは、ADでルールをうまく検索できることを示しています。

大丈夫です、ちょうどタイプミスがありました。/etc/nsswitch.conf投稿の冒頭に記載されています。

答え1

私は間違って書いた。/etc/nsswitch.conf 書くスドゥールまさかSudoers

関連情報