ノート
この記事を投稿するときに私が直接問題を見つけたので、後で他の人に役立つなら、この記事をアップロードしてもいいと思います。問題はタイプミスがあるということです。/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