ubuntu26.04でnis

nisマスターの構築

ubuntu 26.04 LTS(desktop)にnis-serverを入れてみます.

root@ubuntu26:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 26.04 LTS"
 :
root@ubuntu26:~#

パッケージのインストール.

root@ubuntu26:~# apt update
root@ubuntu26:~# apt install ypserv   (libnsl2  libnss-nis  make  nscd  rpcbind  yp-tools  ypbind-mtが同時に入ります)

nisドメイン名は、RHEL系なら「echo "NISDOMAIN=sybyl" >> /etc/sysconfig/network」で定義されますが、
ubuntuではypservの起動スクリプト中に「/etc/defaultdomain」を参照してnisドメインを定義していますので

root@ubuntu26:~# echo sybyl > /etc/defaultdomain
 
root@ubuntu26:~#

とします。これでnisドメインの定義は完了.

次にnisクライアントへ提供するマップを定義します. ここでは passwd, group, netgrp, auto.master, auto.home の5種を提供します
それ以外にも提供できますが、使わないマップを提供しても意味がない

「/var/yp/Makefile」を修正します.

--- /var/yp/Makefile.orig       2026-07-07 22:29:32.770250133 +0900
+++ /var/yp/Makefile    2026-07-07 22:30:33.916782240 +0900
@@ -107,7 +107,7 @@
 # If you don't want some of these maps built, feel free to comment
 # them out from this list.
 
-ALL =   passwd group hosts rpc services netid protocols netgrp
+ALL =   passwd group hosts netgrp auto.master auto.home
 #ALL += publickey mail ethers bootparams printcap
 #ALL += amd.home auto.master auto.home auto.local
 #ALL += timezone locale networks netmasks

配布するnisマップのうち、auto.masterとauto.homeは元のファイルがないので空ファイルを用意します.

root@ubuntu26:~# touch /etc/auto.master /etc/auto.home

っでnisマスターを構築する

root@ubuntu26:~# nisdomainname sybyl
root@ubuntu26:~# systemctl enable ypserv --now
 
root@ubuntu26:~# /usr/lib/yp/ypinit -m
 
At this point, we have to construct a list of the hosts which will run NIS
servers.  ubuntu26 is in the list of NIS server hosts.  Please continue to add
the names for the other hosts, one per line.  When you are done with the
list, type a <control D>.
        next host to add:  ubuntu26
        next host to add:
The current list of NIS servers looks like this:
 
ubuntu26
 
Is this correct?  [y/n: y]
We need a few minutes to build the databases...
Building /var/yp/sybyl/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory '/var/yp/sybyl'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating netgroup...
Updating netgroup.byhost...
Updating netgroup.byuser...
Updating auto.master...
Updating auto.home...
Updating shadow.byname...
gmake[1]: Leaving directory '/var/yp/sybyl'
 
ubuntu26 has been set up as a NIS master server.
 
Now you can run ypinit -s ubuntu26 on all slave server.
root@ubuntu26:~#

これでnisマスターが動きました

次に関連で yppasswd を有効にします。「yppasswdd.service」を見ると

root@ubuntu26:~# systemctl cat yppasswdd.service
# /usr/lib/systemd/system/yppasswdd.service
[Unit]
Description=NIS Users Passwords Change Server
Requires=rpcbind.service
Wants=network-online.target
After=network-online.target rpcbind.service
 
[Service]
Type=forking
PIDFile=/run/yppasswdd.pid
Environment=YPPASSWDDARGS= YPCHANGEOK=chsh YPPWDDIR=/etc
EnvironmentFile=-/etc/default/nis
ExecStartPre=/bin/domainname -F /etc/defaultdomain
ExecStart=/usr/sbin/rpc.yppasswdd -D $YPPWDDIR -e $YPCHANGEOK $YPPASSWDDARGS
 
[Install]
WantedBy=multi-user.target
root@ubuntu26:~#

と「/etc/default/nis」の設定次第みたい。またこのファイル「/etc/default/nis」は ypserv.service と ypxfrd.service への設定ファイルでもあるようでその設定も加えた
「systemctl cat ypserv.service」「systemctl cat ypxfrd.service」

root@ubuntu26:~# vi /etc/default/nis
 
YPCHANGEOK="chsh -e chfn"
YPPWDDIR=/etc
YPPASSWDDARGS="--port 834"
 
YPSERVARGS="-p 838"
 
YPXFRDARGS="-p 966"
 
root@ubuntu26:~#

この上で

root@ubuntu26:~# systemctl enable yppasswdd.service --now
 
root@ubuntu26:~# systemctl enable ypxfrd.service --now
 
root@ubuntu26:~# systemctl restart ypserv.service
 
root@ubuntu26:~# lsof -i -P | grep yp
rpc.ypxfr 5878            root   5u  IPv4  30683      0t0  UDP *:966
rpc.ypxfr 5878            root   6u  IPv4  35346      0t0  TCP *:966 (LISTEN)
rpc.ypxfr 5878            root   7u  IPv6  35352      0t0  UDP *:966
rpc.ypxfr 5878            root   8u  IPv6  35358      0t0  TCP *:966 (LISTEN)
rpc.yppas 6807            root   5u  IPv4  37932      0t0  UDP *:834
rpc.yppas 6807            root   6u  IPv4  37937      0t0  TCP *:834 (LISTEN)
rpc.yppas 6807            root   7u  IPv6  36808      0t0  UDP *:834
rpc.yppas 6807            root   8u  IPv6  36813      0t0  TCP *:834 (LISTEN)
ypserv    7230            root   5u  IPv4  39207      0t0  UDP *:838
ypserv    7230            root   6u  IPv4  39216      0t0  TCP *:838 (LISTEN)
ypserv    7230            root   7u  IPv6  39225      0t0  UDP *:838
ypserv    7230            root   8u  IPv6  39232      0t0  TCP *:838 (LISTEN)
root@ubuntu26:~#

以上でnisマスターの設定は完了.

nisクライアント

「apt install nis」でもいいみたいだけど、必要なパッケージだけ入れたいので

root@ubuntu22:~# apt update
 
root@ubuntu22:~# apt install ypbind-mt    (同時にlibnss-nis nscd yp-toolsがインストールされる)

nisマスターのように実際に稼働するスクリプトを見てみると

root@ubuntu24:~# systemctl cat ypbind.service
# /usr/lib/systemd/system/ypbind.service
[Unit]
Description=NIS Binding Service
Requires=rpcbind.service
Wants=network-online.target
After=network-online.target rpcbind.service
Before=systemd-user-sessions.service
Before=nss-user-lookup.target
 
[Service]
Type=forking
PIDFile=/run/ypbind.pid
Environment=YPBINDARGS=
EnvironmentFile=-/etc/default/nis
ExecStartPre=/bin/domainname -F /etc/defaultdomain
ExecStart=/usr/sbin/ypbind $YPBINDARGS
 
[Install]
WantedBy=multi-user.target
root@ubuntu24:~#

こちらもnisdomainは「/etc/defaultdomain」で定めるみたい. 「/etc/yp.conf」にniddomainとypservのip/host名を入れればokっと思ったのだが違うみたい.
どうも「/etc/yp.conf」にはypservの宛先を入れるのみの様子
っで構築

root@ubuntu22:~# echo sybyl > /etc/defaultdomain
root@ubuntu22:~# echo "ypserver ubuntu26" > /etc/yp.conf
 
root@ubuntu22:~# systemctl enable ypbind --now
 
(確認)
root@ubuntu24:~# ypwhich
ubuntu26
root@ubuntu24:~# ypwhich -m
auto.home ubuntu26
passwd.byname ubuntu26
group.bygid ubuntu26
netgroup.byuser ubuntu26
ypservers ubuntu26
passwd.byuid ubuntu26
group.byname ubuntu26
auto.master ubuntu26
netgroup.byhost ubuntu26
shadow.byname ubuntu26
netgroup ubuntu26
hosts.byname ubuntu26
hosts.byaddr ubuntu26
root@ubuntu24:~#

nis情報をnis masterから取得出来ているみたい.
っでnis情報をこのマシンのアカウント系で使えるように「/etc/nsswitch.conf」を修正します

root@ubuntu22:~# vi /etc/nsswitch.conf

:

passwd: files systemd nis
group: files systemd nis
shadow: files nis
automount: nis

:

root@ubuntu22:~#
}}

一応これで完成ですが、挙動が怪しい場合は IPAddressDeny を無効にします

root@ubuntu22:~# sed -i "s/IPAddressDeny=any/#IPAddressDeny=any/" /lib/systemd/system/systemd-logind.service
 
root@ubuntu22:~# systemctl daemon-reload
 
root@ubuntu22:~# systemctl restart systemd-logind.service

ubuntu20.04の場合

vi /etc/autofs.conf
  master_map_name = auto.home
  timeout = 300
  map_type = nis
vi /etc/nsswitch.conf
  automount: nis

sudoの一元管理

nisクライアントのsudoをnisマスターで管理したい.
nisに乗るようにgroupIDを1000番以上に変更して、nis groupマップにsudoエントリーを乗せる.

各nisクライアントから sudo group を削除する

これで行けるみたい

(nis server)
root@slurm:~# lsof |grep sudo
root@slurm:~# groupmod -g 5000 sudo
 
root@slurm:~# cd /var/yp
root@slurm:/var/yp# make
 
 
(nis client)
root@ubuntu22:~# ypcat group
illya:x:1000:
sudo:x:5000:illya
nogroup:x:65534:
 
root@ubuntu22:~# cp /etc/group /etc/group.orig
root@ubuntu22:~#
root@ubuntu22:~# delgroup sudo
Removing group `sudo' ...
Done.
root@ubuntu22:~#

留意点: nscdがnis情報をキャッシュするのでこれが動いていると変更情報の反映が遅れる.

最新の60件
2026-08-09 2026-08-08 2026-08-02 2026-07-30 2026-07-25 2026-07-24 2026-07-20 2026-07-18 2026-07-17 2026-07-16 2026-07-08 2026-07-07 2026-07-06 2026-07-04 2026-07-02 2026-06-27 2026-06-25 2026-06-24 2026-06-21 2026-06-17 2026-06-14 2026-06-13 2026-06-09 2026-06-08 2026-06-06 2026-06-05 2026-06-04 2026-06-03 2026-05-31 2026-05-26 2026-05-23 2026-05-22 2026-05-21 2026-05-20 2026-05-19 2026-05-18 2026-05-12 2026-05-11

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2026-07-08 (水) 00:54:19