nisがRHEL9から使えなくなった
でも既存のnisシステムがあるので外せない. なら作ってしまおう.

ここではクライアントのypbindを扱います.

gitでypbindのソースが公開されている
https://github.com/thkukuk/ypbind-mt
同じように
libnss
https://github.com/thkukuk/libnss_nis
yp-tools
https://github.com/thkukuk/yp-tools
と用意されている

ypbind-mt

[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.1 (Blue Onyx)
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# git clone https://github.com/thkukuk/ypbind-mt
[root@rockylinux9 ~]# cd ypbind-mt
[root@rockylinux9 ypbind-mt]# git checkout v2.7.2
[root@rockylinux9 ypbind-mt]# cd ..
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# tar --exclude-vcs --transform 's/ypbind-mt/ypbind-mt-2.7.2/' -cvzf ypbind-mt-2.7.2.tar.gz ypbind-mt

rockylinux8のypbindのsrpmを取得してそれをテンプレートに作ってみる. それって単に「rpmbuild --rebuild」でよくね?って思うが最新バージョンにしたかったので

[root@rockylinux9 ~]# curl -O http://dl.rockylinux.org/pub/rocky/8/AppStream/source/tree/Packages/y/ypbind-2.5-2.el8.src.rpm
[root@rockylinux9 ~]# rpm -Uvh ypbind-2.5-2.el8.src.rpm
[root@rockylinux9 ~]# vi rpmbuild/SPECS/ypbind.spec

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

--- rpmbuild/SPECS/ypbind.spec.orig     2021-04-12 18:07:59.000000000 +0900
+++ rpmbuild/SPECS/ypbind.spec  2022-12-24 16:28:51.346494889 +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

gitから取得したソースを rpmbuild/SOURCES に移してrpmbuildする

[root@rockylinux9 ~]# dnf --enablerepo=devel install dbus-glib-devel libnsl2-devel libtirpc-devel systemd-devel
 
[root@rockylinux9 ~]# cp ypbind-mt-2.7.2.tar.gz rpmbuild/SOURCES/
[root@rockylinux9 ~]# rpmbuild -bb rpmbuild/SPECS/ypbind.spec
[root@rockylinux9 ~]# ls -l rpmbuild/RPMS/x86_64/
total 148
-rw-r--r--. 1 root root 53366 Dec 24 16:28 ypbind-2.7.2-2.el9.x86_64.rpm
-rw-r--r--. 1 root root 61825 Dec 24 16:28 ypbind-debuginfo-2.7.2-2.el9.x86_64.rpm
-rw-r--r--. 1 root root 27261 Dec 24 16:28 ypbind-debugsource-2.7.2-2.el9.x86_64.rpm
[root@rockylinux9 ~]#

このypbindを入れれば..になりますが、あとnss_nisとyp-toolsが必要です

nss_nis

同じように

[root@rockylinux9 ~]# git clone https://github.com/thkukuk/libnss_nis
[root@rockylinux9 ~]# cd libnss_nis
[root@rockylinux9 libnss_nis]# git checkout v3.1
[root@rockylinux9 libnss_nis]# cd ..
[root@rockylinux9 ~]# tar --exclude-vcs --transform 's/libnss_nis/libnss_nis-3.1/' -cvzf libnss_nis-3.1.tar.gz libnss_nis
[root@rockylinux9 ~]# curl -O http://dl.rockylinux.org/pub/rocky/8/BaseOS/source/tree/Packages/n/nss_nis-3.0-8.el8.src.rpm
[root@rockylinux9 ~]# rpm -Uvh nss_nis-3.0-8.el8.src.rpm
[root@rockylinux9 ~]# vi rpmbuild/SPECS/nss_nis.spec
--- rpmbuild/SPECS/nss_nis.spec.orig    2021-04-12 14:14:54.000000000 +0900
+++ rpmbuild/SPECS/nss_nis.spec 2022-12-24 16:48:08.980099140 +0900
@@ -1,11 +1,11 @@
 Name:           nss_nis
-Version:        3.0
+Version:        3.1
 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
[root@rockylinux9 ~]# cp libnss_nis-3.1.tar.gz rpmbuild/SOURCES/
[root@rockylinux9 ~]# rpmbuild -bb rpmbuild/SPECS/nss_nis.spec
[root@rockylinux9 ~]# ls -l rpmbuild/RPMS/x86_64/nss_nis-*
-rw-r--r--. 1 root root 41595 Dec 24 16:48 rpmbuild/RPMS/x86_64/nss_nis-3.1-8.el9.x86_64.rpm
-rw-r--r--. 1 root root 78677 Dec 24 16:48 rpmbuild/RPMS/x86_64/nss_nis-debuginfo-3.1-8.el9.x86_64.rpm
-rw-r--r--. 1 root root 28081 Dec 24 16:48 rpmbuild/RPMS/x86_64/nss_nis-debugsource-3.1-8.el9.x86_64.rpm
[root@rockylinux9 ~]#

yp-tools

git由来のversionを調べたら Rokylinux8 と同じ 4.2.3 なので「rpmbuild --rebuild」で済ます

[root@rockylinux9 ~]# curl -O http://dl.rockylinux.org/pub/rocky/8/AppStream/source/tree/Packages/y/yp-tools-4.2.3-1.el8.src.rpm
 
[root@rockylinux9 ~]# rpmbuild --rebuild yp-tools-4.2.3-1.el8.src.rpm
[root@rockylinux9 ~]# ls -l rpmbuild/RPMS/x86_64/yp-tools-*
-rw-r--r--. 1 root root 83243 Dec 24 16:59 rpmbuild/RPMS/x86_64/yp-tools-4.2.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 93508 Dec 24 16:59 rpmbuild/RPMS/x86_64/yp-tools-debuginfo-4.2.3-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 27644 Dec 24 16:59 rpmbuild/RPMS/x86_64/yp-tools-debugsource-4.2.3-1.el9.x86_64.rpm
[root@rockylinux9 ~]#

nisをインストール

っでインストール

[root@rockylinux9 ~]# dnf localinstall rpmbuild/RPMS/x86_64/ypbind-2.7.2-2.el9.x86_64.rpm \
                                       rpmbuild/RPMS/x86_64/nss_nis-3.1-8.el9.x86_64.rpm  \
                                       rpmbuild/RPMS/x86_64/yp-tools-4.2.3-1.el9.x86_64.rpm
 
[root@rockylinux9 ~]# vi /etc/yp.conf
domain sybyl server nis
 
[root@rockylinux9 ~]# systemctl enable ypbind --now

これで直接pamやnsswitch.confを修正させてnis対応にすることができるが、RHEL9の行儀に倣えばauthselectを使う事になる
っが、RHEL9で提供される authselect はRHEL9の方針でnisのサポートは当然抜けている.

本来のauthselectはnisもカバー範囲でオリジナルをみると今時点もnisをサポートしている
https://github.com/authselect/authselect

なのでsrpmを取得してnis排除を無効にしてみた

[root@rockylinux9 ~]# curl -O https://dl.rockylinux.org/pub/rocky/9/BaseOS/source/tree/Packages/a/authselect-1.2.5-1.el9.src.rpm
[root@rockylinux9 ~]# rpm -Uvh authselect-1.2.5-1.el9.src.rpm
[root@rockylinux9 ~]# vi rpmbuild/SPECS/authselect.spec
--- rpmbuild/SPECS/authselect.spec.orig 2022-10-30 13:30:01.000000000 +0900
+++ rpmbuild/SPECS/authselect.spec      2022-12-24 17:39:29.221644991 +0900
@@ -14,7 +14,7 @@
 Patch0901:  0901-rhel9-remove-mention-of-Fedora-Change-page-in-compat.patch
 Patch0902:  0902-rhel9-remove-ecryptfs-support.patch
 Patch0903:  0903-rhel9-Revert-profiles-add-support-for-resolved.patch
-Patch0904:  0904-rhel9-remove-nis-support.patch
+#Patch0904:  0904-rhel9-remove-nis-support.patch
 
 %global makedir %{_builddir}/%{name}-%{version}
 
@@ -150,6 +150,7 @@
 %dir %{_datadir}/authselect/vendor
 %dir %{_datadir}/authselect/default
 %dir %{_datadir}/authselect/default/minimal/
+%dir %{_datadir}/authselect/default/nis/
 %dir %{_datadir}/authselect/default/sssd/
 %dir %{_datadir}/authselect/default/winbind/
 %{_datadir}/authselect/default/minimal/dconf-db
@@ -162,6 +163,16 @@
 %{_datadir}/authselect/default/minimal/REQUIREMENTS
 %{_datadir}/authselect/default/minimal/smartcard-auth
 %{_datadir}/authselect/default/minimal/system-auth
+%{_datadir}/authselect/default/nis/dconf-db
+%{_datadir}/authselect/default/nis/dconf-locks
+%{_datadir}/authselect/default/nis/fingerprint-auth
+%{_datadir}/authselect/default/nis/nsswitch.conf
+%{_datadir}/authselect/default/nis/password-auth
+%{_datadir}/authselect/default/nis/postlogin
+%{_datadir}/authselect/default/nis/README
+%{_datadir}/authselect/default/nis/REQUIREMENTS
+%{_datadir}/authselect/default/nis/smartcard-auth
+%{_datadir}/authselect/default/nis/system-auth
 %{_datadir}/authselect/default/sssd/dconf-db
 %{_datadir}/authselect/default/sssd/dconf-locks
 %{_datadir}/authselect/default/sssd/fingerprint-auth
[root@rockylinux9 ~]# dnf --enablerepo=devel install libcmocka-devel popt-devel po4a python3-devel
[root@rockylinux9 ~]# rpmbuild -bb rpmbuild/SPECS/authselect.spec
[root@rockylinux9 ~]# ls -l rpmbuild/RPMS/x86_64/authselect-*
-rw-r--r--. 1 root root 143683 Dec 24 17:41 rpmbuild/RPMS/x86_64/authselect-1.2.5-1.el9.x86_64.rpm
-rw-r--r--. 1 root root  34508 Dec 24 17:41 rpmbuild/RPMS/x86_64/authselect-compat-1.2.5-1.el9.x86_64.rpm
-rw-r--r--. 1 root root  40416 Dec 24 17:41 rpmbuild/RPMS/x86_64/authselect-debuginfo-1.2.5-1.el9.x86_64.rpm
-rw-r--r--. 1 root root  52525 Dec 24 17:41 rpmbuild/RPMS/x86_64/authselect-debugsource-1.2.5-1.el9.x86_64.rpm
-rw-r--r--. 1 root root  13478 Dec 24 17:41 rpmbuild/RPMS/x86_64/authselect-devel-1.2.5-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 230325 Dec 24 17:41 rpmbuild/RPMS/x86_64/authselect-libs-1.2.5-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 100432 Dec 24 17:41 rpmbuild/RPMS/x86_64/authselect-libs-debuginfo-1.2.5-1.el9.x86_64.rpm
[root@rockylinux9 ~]#
 
[root@rockylinux9 ~]# dnf reinstall rpmbuild/RPMS/x86_64/authselect-libs-1.2.5-1.el9.x86_64.rpm
 
[root@rockylinux9 ~]# authselect list
- minimal        Local users only for minimal installations
- nis            Enable NIS for system authentication
- sssd           Enable SSSD for system authentication (also for local users only)
- winbind        Enable winbind for system authentication
[root@rockylinux9 ~]#
 
 
 
[root@rockylinux9 ~]# authselect select nis --force

これでnisサーバからアカウント情報が引けます.

RHEL9でサポートから外したnisを復活させてみたけど、自己責任. でもそもそもRHELとか使ってもRHELは瑕疵に賠償はせんよな

autofs

忘れてたautofsもnis対応に戻します

[root@rockylinux9 ~]# curl -O http://dl.rockylinux.org/pub/rocky/9/devel/source/tree/Packages/a/autofs-5.1.7-31.el9.src.rpm
[root@rockylinux9 ~]# rpm -Uvh autofs-5.1.7-31.el9.src.rpm
[root@rockylinux9 ~]# vi rpmbuild/SOURCES/autofs-5.1.7-fix-dangling-symlink-creation-if-nis-support-is-not-available.patch
--- rpmbuild/SOURCES/autofs-5.1.7-fix-dangling-symlink-creation-if-nis-support-is-not-available.patch.orig      2022-12-25 14:51:33.725378859 +0900
+++ rpmbuild/SOURCES/autofs-5.1.7-fix-dangling-symlink-creation-if-nis-support-is-not-available.patch   2022-12-25 14:51:40.132430213 +0900
@@ -21,15 +21,3 @@
 
  25/01/2021 autofs-5.1.7
  - make bind mounts propagation slave by default.
---- autofs-5.1.7.orig/modules/Makefile
-+++ autofs-5.1.7/modules/Makefile
-@@ -77,7 +77,9 @@ install: all
-       install -c $(MODS) -m 755 $(INSTALLROOT)$(autofslibdir)
-       -rm -f $(INSTALLROOT)$(autofslibdir)/mount_smbfs.so
-       ln -fs lookup_file.so $(INSTALLROOT)$(autofslibdir)/lookup_files.so
-+ifeq ($(YPCLNT), 1)
-       ln -fs lookup_yp.so $(INSTALLROOT)$(autofslibdir)/lookup_nis.so
-+endif
- ifeq ($(LDAP), 1)
-       ln -fs lookup_ldap.so $(INSTALLROOT)$(autofslibdir)/lookup_ldaps.so
- endif
[root@rockylinux9 ~]# rpmbuild -bb rpmbuild/SPECS/autofs.spec
 
[root@rockylinux9 ~]# ls -l rpmbuild/RPMS/x86_64/autofs-*
-rw-r--r--. 1 root root 378858 Dec 25 14:52 rpmbuild/RPMS/x86_64/autofs-5.1.7-31.el9.x86_64.rpm
-rw-r--r--. 1 root root 733195 Dec 25 14:52 rpmbuild/RPMS/x86_64/autofs-debuginfo-5.1.7-31.el9.x86_64.rpm
-rw-r--r--. 1 root root 268578 Dec 25 14:52 rpmbuild/RPMS/x86_64/autofs-debugsource-5.1.7-31.el9.x86_64.rpm
[root@rockylinux9 ~]#
 
[root@rockylinux9 ~]# dnf install nfs-utils
[root@rockylinux9 ~]# dnf localinstall rpmbuild/RPMS/x86_64/autofs-5.1.7-31.el9.x86_64.rpm
 
(既にautofsが入っていたら)
[root@rockylinux9 ~]# dnf reinstall rpmbuild/RPMS/x86_64/autofs-5.1.7-31.el9.x86_64.rpm

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2022-12-25 (日) 15:06:07 (87d)