みんな大好き Oracle Linux 9

そんな Linuxで、ユーザー管理するのって、大っ嫌いですよね

だったら、管理しないようにしてしまいましょう

とは言うものの 流石にそれは無理な話しなんです

会社で使う時は、どうしても必要ですな

でも、いちいち誰かが使うからユーザー作って下さいって言われて adduser するとか、それでもって管理台帳って、だるーーー

ということで愚痴は、こんぐらいにしといて

こんな面倒なユーザー管理をWindowsServerのActiveDirectoryと連携させて一元管理しようぜって話だ

だいたいの会社では Windowsドメインでユーザー管理してるだろうから、この認証機構にLinuxも参加させれば、少しは楽になるかもね

じゃー、早速、いってみようか


必須パッケージは、以下なんで、rootでさくっとインストールお願いします
dnf install oddjob oddjob-mkhomedir
dnf install krb5-workstation
dnf install realmd adcli
dnf install authselect

 

前提として、ActiveDirectoryのDNSに参加しておいて下さいね。

 

次に sssdを使う必要があるんですが、なぜか使えなくなってるんで、なんとかします。

このファイルを作成します。

/etc/sssd/sssd.conf

[sssd]
config_file_version = 2
services = nss, pam
domains = LOCAL
 
[nss]
#Backfill cache at 75%, do not cache bad lookups,
# no in-mem cache
entry_cache_nowait_percentage = 75
### 1 Hour caching for non existent user
entry_negative_timeout = 3600
 
[pam]
pam_id_timeout = 600
 
[domain/LOCAL]
# Prior to 1.15, must use older files provider
id_provider = proxy
proxy_lib_name = files
# Disable authentication, files provider 
# always provides local access, enumerate files
auth_provider = none
access_provider = permit
enumerate = true

 

で、以下をrootで実行だね

chmod og-r /etc/sssd/sssd.conf
systemctl restart sssd
authselect select sssd with-mkhomedir --force

 

これで、無事 sssd が起動しているはずだよね

後、初期ログインでホームディレクトリ強制作成設定です

 

※注意
sssdのservicesキャッシュが、バグってる可能性がありそうだ

以前、エンディアンが狂う場合があったので、使わないようにすべきかも
/etc/nsswitch.conf
services:   sss files   <- sss を消すと使わなくなる

 

次に ActiveDirectoryに参加させてもらいましょう

realm discover YOURDOMAIN.COM
realm join -U [ドメイン管理者ユーザー] YOURDOMAIN.COM

このコマンド実行後に ドメイン管理者ユーザーのパスワードを入力する必要があります。

YOURDOMAIN.COM は、読み替えて下さいね

 

さー最後に sshの設定ですよ

/etc/ssh/sshd_config を 修正ですね。以下が有効になるようにして下さい。

PasswordAuthentication yes
UsePAM yes

もし、/etc/ssh/sshd_config.d/ の中で、PasswordAuthentication yes や UsePAM yes を上書きするような設定があればコメントアウトしておきましょう

systemctl restart ssh

で、sshdを再起動すれば完成です

 

ssh接続する時は、 [ADユーザー]@[ADドメイン]@[サーバー] となります

teratermなんかだと、[ADユーザー]@[ADドメイン] となりますね

 

ログイン出来るグループの制限や、色々と設定出来ます

/etc/sssd/sssd.conf に追加されたドメインの [domain/hogehoge]セクションが追加されているはずです

ここに、以下のようにすると、 domain users だけがログイン可能となりますね

access_provider = simple
simple_allow_groups = domain users

 


おまけで、ActiveDirectoryと連携することで、gitなんかも連携可能なんですね

Windowsとかだと TortoiseGitとかを使いますよね。

SSH経由でgitリポジトリからCloneする時に、SSH接続先が、ActiveDirectoryと連携された OracleLinux9だとSSO的な動作になってパスワードレスになるんですな

なんとすばらしい、もう、SSH鍵無くなってもーたとか、鍵下さーいとかって言われなくて済みますよ

 

gitインストールだね

dnf install git

 

git管理者ユーザーを作っときます

adduser --shell /usr/bin/git-shell git

 

リポジトリ作成   適当なパスに作ってますよ

mkdir -p /mnt/gitrepo.git
git init --bare /mnt/gitrepo.git
chown -R git:git /mnt/gitrepo.git

 

ここがポイント

ドメイングループにグループを変更します

chown -R :”domain このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。” /mnt/gitrepo.git
chmod g+ws -R /mnt/gitrepo.git
cd /mnt/gitrepo.git
umask 0002

domain users は、ActiveDirectoryのグループですね

 

で、TortoiseGitからCloneすればOkです

 ssh://このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。@gitsvr.hogehoge.co.jp:/mnt/gitrepo.git

 

でも detected dubious ownership ってエラー出ましたよね

実は、gitは、所有者と異なるユーザーがリポジトリをいじくると文句を言うように設計されています。

これを黙らせるには、ユーザーのssh接続先で以下のようにリポジトリが安全だと宣言する必要があるんですよね。

git config --global --add safe.directory /mnt/gitrepo.git

 

これで、無事、ActiveDirectory連携な git も使えるようになりました。

git pull や push がパスワードレスでアクセス出来ますね

実は、ssh+svnでも同様の動作になるんですよ

 

 

 

Joomla templates by a4joomla