#author("2025-12-07T15:02:26+00:00","default:sysosa","sysosa")
#author("2025-12-07T20:09:47+00:00","default:sysosa","sysosa")
既に rockylinux9 でnisの提供は終わっているのだが、nisでどうしても運用ということもある
っで rockylinux10 での nis 実装を試みた
っで rockylinux10 での nis 実装を試みた   &size(10){素直に FreeIPA に移った方がいいかもね};

#code(nonumber){{
[root@rockylinux10 ~]# cat /etc/redhat-release
Rocky Linux release 10.1 (Red Quartz)

[root@rockylinux10 ~]#
}}

***ypbind-mt [#b6b4c075]
#code(nonumber){{
[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-mt
}}
rpmbuildに必要な spec ファイルを rockylinux8 の ypbind から得てみる
rpmbuildに必要な spec ファイルを rockylinux8 の ypbind から得て
#code(nonumber){{
[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.spec
}}

SPECファイルをちょいと修正

#code(diff,nonumber){{
--- rpmbuild/SPECS/ypbind.spec.orig     2021-04-12 18:07:59.000000000 +0900
+++ rpmbuild/SPECS/ypbind.spec  2025-12-07 14:50:51.416924779 +0900
@@ -1,7 +1,7 @@
 Summary: The NIS daemon which binds NIS clients to an NIS domain
 Name: ypbind
 Epoch: 3
-Version: 2.5
+Version: 2.7.2
 Release: 2%{?dist}
 License: GPLv2
 Group: System Environment/Daemons
@@ -58,7 +58,7 @@
 %patch1 -p1 -b .gettextdomain
 %patch2 -p1 -b .helpman
 #%patch3 -p1 -b .systemdso
-%patch4 -b .gettext_version
+#%patch4 -b .gettext_version

 autoreconf -fiv
}}
っで構築
#code(nonumber){{
[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が必要です

***nss_nis [#re19ffea]
#code(nonumber){{
[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 ファイルを弄ります
#code(nonumber){{
[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
}}

#code(diff,nonumber){{
--- rpmbuild/SPECS/nss_nis.spec.orig    2025-12-07 15:36:02.915918747 +0900
+++ rpmbuild/SPECS/nss_nis.spec 2025-12-07 15:36:28.432590734 +0900
@@ -1,11 +1,11 @@
 Name:           nss_nis
-Version:        3.0
+Version:        3.4
 Release:        8%{?dist}
 Summary:        Name Service Switch (NSS) module using NIS
 License:        LGPLv2+
 Group:          System Environment/Base
 Url:            https://github.com/thkukuk/libnss_nis
-Source:         https://github.com/thkukuk/libnss_nis/archive/v%{version}.tar.gz
+Source:         https://github.com/thkukuk/libnss_nis/archive/v%{version}.tar.gz#/libnss_nis-%{version}.tar.gz

 # https://github.com/systemd/systemd/issues/7074
 Source2:        nss_nis.conf
}}
#code(nonumber){{
[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 ~]#
}}

***yp-tools [#c1add5c1]
本家様 [[https://github.com/thkukuk/yp-tools>+https://github.com/thkukuk/yp-tools]] での最新版は version 4.2.3 で6年前. rockylinux8 の yp-tools も version 4.2.3 なので
rockylinux8 の yp-tools を rebuild で対応する
本家様 [[https://github.com/thkukuk/yp-tools>+https://github.com/thkukuk/yp-tools]] での最新版は version 4.2.3 で6年前.
rockylinux8 の yp-tools も version 4.2.3 と最新版なので、rebuild で対応します
#code(nonumber){{
[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 ~]#
}}

***nis clientを構築 [#e525b62f]
そろったのでインストール
#code(nonumber){{
[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 ~]#
[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 で調整できるようにしたい.

一応これでnis clientになれるが、「/etc/nsswitch.conf」とか弄りたくないので authselect で調整できるようにしたい.

***authselect [#jc0a7a2d]
既存で使われている authselect のSRPMを取得して、nisを有効にさせてみる
#code(nonumber){{
[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 ~]# rpm -qpli ./rpmbuild/RPMS/x86_64/authselect-libs-1.5.0-8.el10.x86_64.rpm |less
 :
/usr/share/authselect/default/nis
/usr/share/authselect/default/nis/README
/usr/share/authselect/default/nis/REQUIREMENTS
/usr/share/authselect/default/nis/dconf-db
/usr/share/authselect/default/nis/dconf-locks
/usr/share/authselect/default/nis/fingerprint-auth
/usr/share/authselect/default/nis/nsswitch.conf
/usr/share/authselect/default/nis/password-auth
/usr/share/authselect/default/nis/postlogin
/usr/share/authselect/default/nis/smartcard-auth
/usr/share/authselect/default/nis/system-auth
 :
[root@rockylinux10 ~]#
}}

#code(nonumber){{
[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 --force
}}

***autofs [#zc8a98fb]
nis masterでauto.master, auto.homeを一元管理して、nis clientのmount環境を整備するかならautofsも再調整が必要となります
&size(10){libnsl2-devel(epel)とlibtirpc-devel(crb)パッケージがあると nis 対応になってくれます};

#code(nonumber){{
[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 ~]#
}}
(確認)
#code(nonumber){{
[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 ~]#
}}
***update禁止 [#s085231e]
「dnf update」とか実行するとnisの機能のが消されますので「/etc/yum.conf」に下記の行を加えます
#code(nonumber){{
exclude=ypbind nss_nis yp-tools authselect-libs autofs
}}




***ypserv [#bc9bfbef]
nis マスターを rockylinux10 で作ってみます
#code(nonumber){{
[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
}}
#code(nonumber){{
[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
}}
#code(diff,nonumber){{
--- rpmbuild/SPECS/ypserv.spec.orig     2022-04-17 10:11:09.000000000 +0900
+++ rpmbuild/SPECS/ypserv.spec  2025-12-08 05:00:24.690960526 +0900
@@ -3,11 +3,11 @@
 Summary: The NIS (Network Information Service) server
 Url: http://www.linux-nis.org/nis/ypserv/index.html
 Name: ypserv
-Version: 4.1
+Version: 4.2
 Release: 1%{?dist}
 License: GPLv2
 Group: System Environment/Daemons
-Source0: https://github.com/thkukuk/%{name}/archive/v%{version}.tar.gz
+Source0: https://github.com/thkukuk/%{name}/archive/v%{version}.tar.gz#/ypserv-%{version}.tar.gz
 Source1: ypserv.service
 Source2: yppasswdd.service
 Source3: ypxfrd.service
@@ -86,7 +86,7 @@
 %ifarch s390 s390x
 export CFLAGS="$RPM_OPT_FLAGS -fPIC"
 %else
-export CFLAGS="$RPM_OPT_FLAGS -fpic"
+export CFLAGS="$RPM_OPT_FLAGS -fpic -Wno-error"
 %endif
}}
#code(nonumber){{
[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」を加えて逃げることにした. これで大丈夫って訳ではないのだが、、


1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS