既に rockylinux9 でnisの提供は終わっているのだが、nisでどうしても運用ということもある
っで rockylinux10 での nis 実装を試みた 素直に FreeIPA に移った方がいいかもね
[root@rockylinux10 ~]# cat /etc/redhat-release
Rocky Linux release 10.1 (Red Quartz)
[root@rockylinux10 ~]#[root@rockylinux10 ~]# git clone https://github.com/thkukuk/ypbind-mt
[root@rockylinux10 ~]# cd ypbind-mt/
[root@rockylinux10 ypbind-mt]# git log -1
commit 044299c049dff949647ada4556c9d25290892911 (HEAD -> master, tag: v2.7.2, origin/master, origin/HEAD)
Author: Thorsten Kukuk <kukuk@suse.com>
Date: Fri Jan 31 09:44:12 2020 +0100
Release version 2.7.2
[root@rockylinux10 ypbind-mt]# cd ..
[root@rockylinux10 ~]# tar --exclude-vcs --transform 's/ypbind-mt/ypbind-mt-2.7.2/' -cvzf ypbind-mt-2.7.2.tar.gz ypbind-mtrpmbuildに必要な spec ファイルを rockylinux8 の ypbind から得て
[root@rockylinux10 ~]# rpm -Uvh http://dl.rockylinux.org/pub/rocky/8/AppStream/source/tree/Packages/y/ypbind-2.5-2.el8.src.rpm
[root@rockylinux10 ~]# vi rpmbuild/SPECS/ypbind.specSPECファイルをちょいと修正
|
っで構築
[root@rockylinux10 ~]# mv ypbind-mt-2.7.2.tar.gz rpmbuild/SOURCES/
[root@rockylinux10 ~]# dnf install epel-release -y
[root@rockylinux10 ~]# dnf config-manager --enable crb
[root@rockylinux10 ~]# dnf install dbus-glib-devel libnsl2-devel libtirpc-devel systemd-devel
[root@rockylinux10 ~]# rpmbuild -bb rpmbuild/SPECS/ypbind.spec
[root@rockylinux10 ~]# ls -l rpmbuild/RPMS/x86_64/
total 148
-rw-r--r--. 1 root root 53684 Dec 7 15:31 ypbind-2.7.2-2.el10.x86_64.rpm
-rw-r--r--. 1 root root 61778 Dec 7 15:31 ypbind-debuginfo-2.7.2-2.el10.x86_64.rpm
-rw-r--r--. 1 root root 27355 Dec 7 15:31 ypbind-debugsource-2.7.2-2.el10.x86_64.rpm
[root@rockylinux10 ~]#あとnss_nisとyp-toolsが必要です
[root@rockylinux10 ~]# git clone https://github.com/thkukuk/libnss_nis
[root@rockylinux10 ~]# cd libnss_nis
[root@rockylinux10 libnss_nis]# git log -1
commit 3c206b762ac8557dab3c40ff3a297c9d1bff0d83 (HEAD -> master, tag: v3.4, origin/master, origin/HEAD)
Author: Thorsten Kukuk <kukuk@suse.com>
Date: Wed Aug 27 10:03:40 2025 +0200
Release version 3.4
[root@rockylinux10 libnss_nis]#
[root@rockylinux10 libnss_nis]# cd ..
[root@rockylinux10 ~]# tar --exclude-vcs --transform 's/libnss_nis/libnss_nis-3.4/' -cvzf libnss_nis-3.4.tar.gz libnss_nisこちらも rockylinux8 の nss_nis を拾って spec ファイルを弄ります
[root@rockylinux10 ~]# rpm -Uvh http://dl.rockylinux.org/pub/rocky/8/BaseOS/source/tree/Packages/n/nss_nis-3.0-8.el8.src.rpm
[root@rockylinux10 ~]# vi rpmbuild/SPECS/nss_nis.spec |
[root@rockylinux10 ~]# mv libnss_nis-3.4.tar.gz rpmbuild/SOURCES/
[root@rockylinux10 ~]# rpmbuild -bb rpmbuild/SPECS/nss_nis.spec
[root@rockylinux10 ~]# ls -l rpmbuild/RPMS/x86_64/nss_nis-*
-rw-r--r--. 1 root root 40944 Dec 7 15:38 rpmbuild/RPMS/x86_64/nss_nis-3.4-8.el10.x86_64.rpm
-rw-r--r--. 1 root root 75813 Dec 7 15:38 rpmbuild/RPMS/x86_64/nss_nis-debuginfo-3.4-8.el10.x86_64.rpm
-rw-r--r--. 1 root root 27120 Dec 7 15:38 rpmbuild/RPMS/x86_64/nss_nis-debugsource-3.4-8.el10.x86_64.rpm
[root@rockylinux10 ~]#本家様 https://github.com/thkukuk/yp-tools
での最新版は version 4.2.3 で6年前.
rockylinux8 の yp-tools も version 4.2.3 と最新版なので、rebuild で対応します
[root@rockylinux10 ~]# curl -O http://dl.rockylinux.org/pub/rocky/8/AppStream/source/tree/Packages/y/yp-tools-4.2.3-2.el8.src.rpm
[root@rockylinux10 ~]# rpmbuild --rebuild yp-tools-4.2.3-2.el8.src.rpm
[root@rockylinux10 ~]# ls -l rpmbuild/RPMS/x86_64/yp-tools-*
-rw-r--r--. 1 root root 83149 Dec 7 15:42 rpmbuild/RPMS/x86_64/yp-tools-4.2.3-2.el10.x86_64.rpm
-rw-r--r--. 1 root root 92601 Dec 7 15:42 rpmbuild/RPMS/x86_64/yp-tools-debuginfo-4.2.3-2.el10.x86_64.rpm
-rw-r--r--. 1 root root 26926 Dec 7 15:42 rpmbuild/RPMS/x86_64/yp-tools-debugsource-4.2.3-2.el10.x86_64.rpm
[root@rockylinux10 ~]#そろったのでインストール
[root@rockylinux10 ~]# dnf localinstall \
./rpmbuild/RPMS/x86_64/ypbind-2.7.2-2.el10.x86_64.rpm \
./rpmbuild/RPMS/x86_64/nss_nis-3.4-8.el10.x86_64.rpm \
./rpmbuild/RPMS/x86_64/yp-tools-4.2.3-2.el10.x86_64.rpm
[root@rockylinux10 ~]# vi /etc/yp.conf
domain sybyl server nis
[root@rockylinux10 ~]# systemctl enable ypbind --nowこれで「/etc/yp.conf」を弄って「systemctl enable ypbind --now」を実行すると nis client になれる.
あとnis情報をアカウント認証に繋げるには「/etc/nsswitch.conf」とか弄るのだが、ここは authselect で調整できるようにしたい.
既存で使われている authselect のSRPMを取得して、nisを有効にさせてみる
[root@rockylinux10 ~]# dnf download --source authselect
[root@rockylinux10 ~]# rpm -Uvh authselect-1.5.0-8.el10.src.rpm
[root@rockylinux10 ~]# dnf builddep authselect
[root@rockylinux10 ~]#
[root@rockylinux10 ~]# rpmbuild -ba ~/rpmbuild/SPECS/authselect.spec \
--define "with_nis_profile 1" \
--define "rhel 0"
[root@rockylinux10 ~]# ls -l rpmbuild/RPMS/x86_64/authselect-*
-rw-r--r--. 1 root root 144109 Dec 7 23:17 rpmbuild/RPMS/x86_64/authselect-1.5.0-8.el10.x86_64.rpm
-rw-r--r--. 1 root root 39413 Dec 7 23:17 rpmbuild/RPMS/x86_64/authselect-debuginfo-1.5.0-8.el10.x86_64.rpm
-rw-r--r--. 1 root root 51690 Dec 7 23:17 rpmbuild/RPMS/x86_64/authselect-debugsource-1.5.0-8.el10.x86_64.rpm
-rw-r--r--. 1 root root 13067 Dec 7 23:17 rpmbuild/RPMS/x86_64/authselect-devel-1.5.0-8.el10.x86_64.rpm
-rw-r--r--. 1 root root 210462 Dec 7 23:17 rpmbuild/RPMS/x86_64/authselect-libs-1.5.0-8.el10.x86_64.rpm
-rw-r--r--. 1 root root 97684 Dec 7 23:17 rpmbuild/RPMS/x86_64/authselect-libs-debuginfo-1.5.0-8.el10.x86_64.rpm
[root@rockylinux10 ~]#[root@rockylinux10 ~]# dnf reinstall rpmbuild/RPMS/x86_64/authselect-libs-1.5.0-8.el10.x86_64.rpm
[root@rockylinux10 ~]# authselect list
- local Local users only
- nis Enable NIS for system authentication
- sssd Enable SSSD for system authentication (also for local users only)
- winbind Enable winbind for system authentication
[root@rockylinux10 ~]#
[root@rockylinux10 ~]# authselect select nis --forcenis masterでauto.master, auto.homeを一元管理して、nis clientのmount環境を整備するかならautofsも再調整が必要となります
libnsl2-devel(epel)とlibtirpc-devel(crb)パッケージがあると nis 対応になってくれます
[root@rockylinux10 ~]# dnf download --source autofs
[root@rockylinux10 ~]# rpm -Uvh autofs-5.1.9-13.el10.src.rpm
[root@rockylinux10 ~]# dnf builddep autofs
[root@rockylinux10 ~]# rpmbuild -bb rpmbuild/SPECS/autofs.spec
[root@rockylinux10 ~]# dnf reinstall ./rpmbuild/RPMS/x86_64/autofs-5.1.9-13.el10.x86_64.rpm
[root@rockylinux10 ~]# ls -l rpmbuild/RPMS/x86_64/autofs-*
-rw-r--r--. 1 root root 381498 Dec 8 00:22 rpmbuild/RPMS/x86_64/autofs-5.1.9-13.el10.x86_64.rpm
-rw-r--r--. 1 root root 739023 Dec 8 00:22 rpmbuild/RPMS/x86_64/autofs-debuginfo-5.1.9-13.el10.x86_64.rpm
-rw-r--r--. 1 root root 270953 Dec 8 00:22 rpmbuild/RPMS/x86_64/autofs-debugsource-5.1.9-13.el10.x86_64.rpm
[root@rockylinux10 ~]#(確認)
[root@rockylinux10 ~]# rpm -qpli ./rpmbuild/RPMS/x86_64/autofs-5.1.9-13.el10.x86_64.rpm | less
:
/usr/lib64/autofs/lookup_nis.so
:
/usr/lib64/autofs/lookup_yp.so
:
[root@rockylinux10 ~]#「dnf update」とか実行するとnisの機能のが消されますので「/etc/yum.conf」に下記の行を加えます
exclude=ypbind nss_nis yp-tools authselect-libs autofsnis マスターを rockylinux10 で作ってみます
[root@rockylinux10 ~]# git clone https://github.com/thkukuk/ypserv
[root@rockylinux10 ~]# cd ypserv/
[root@rockylinux10 ypserv]# git log -1
commit 009d67bc5c814581790548b27720ffcb25ff9bef (HEAD -> master, origin/master, origin/HEAD)
Author: Thorsten Kukuk <kukuk@suse.com>
Date: Sun Mar 2 19:58:15 2025 +0100
ypserv.8: fix ypwhich.1 reference
[root@rockylinux10 ypserv]#
[root@rockylinux10 ypserv]# cd ..
[root@rockylinux10 ~]# tar --exclude-vcs --transform 's/ypserv/ypserv-4.2/' -cvzf ypserv-4.2.tar.gz ypserv[root@rockylinux10 ~]# rpm -Uvh http://dl.rockylinux.org/pub/rocky/8/AppStream/source/tree/Packages/y/ypserv-4.1-1.el8.src.rpm
[root@rockylinux10 ~]# vi rpmbuild/SPECS/ypserv.spec |
[root@rockylinux10 ~]# mv ypserv-4.2.tar.gz rpmbuild/SOURCES/
[root@rockylinux10 ~]# dnf install tokyocabinet-devel libnsl2-devel libtirpc-devel systemd-devel
[root@rockylinux10 ~]# rpmbuild -bb rpmbuild/SPECS/ypserv.spec
[root@rockylinux10 ~]# ls -l rpmbuild/RPMS/x86_64/ypserv-*
-rw-r--r--. 1 root root 154616 Dec 8 05:01 rpmbuild/RPMS/x86_64/ypserv-4.2-1.el10.x86_64.rpm
-rw-r--r--. 1 root root 201509 Dec 8 05:01 rpmbuild/RPMS/x86_64/ypserv-debuginfo-4.2-1.el10.x86_64.rpm
-rw-r--r--. 1 root root 64987 Dec 8 05:01 rpmbuild/RPMS/x86_64/ypserv-debugsource-4.2-1.el10.x86_64.rpm
[root@rockylinux10 ~]#「lib/yp_db.c」の部分で厳密にエラーが起こりますが、これはGCCが厳密にコンパイルしているため. chatgptの提案でパッチが提案されたが「lib/yp_db.c」を結構弄るようで却下.
「-Wno-error」を加えて逃げることにした. これで大丈夫って訳ではないのだが、、