見出し画像

Appendix (準備)Samba3をソースからインストールする:RockyLinux9

LinuC300の試験範囲は OpenLDAP と Samba ですが、Sambaは Samba3.6 と Smaba4 が関連してくるようです。

300試験 出題範囲

300(Mixed Environment)試験では、Windows、UNIX、Linuxシステムが混在するネットワーク環境で必要とされる重要なスキルに焦点を当てています。

300試験では、Samba 3.6 と Samba 4の両方のドメイン機能とツールを含めることにより、 Samba を包括的にカバーします。 Samba 3.6 の設定は従来どおり重要なトピックです。Samba 4 の追加により、「アクティブディレクトリ ドメインコントローラ」を重要なトピックとして追加しました。

LinuCレベル3 300試験 出題範囲 | LPI-Japan

Samba4は最近のLinuxディストリビューションであればパッケージ管理システム(yum、dnf、apt)で標準リポジトリから簡単にインストールできますが、Samba3.6はそう簡単にはいかず配布元のサーバーにあるソースからインストールする必要があります。
この記事ではSamba3.6をソースからインストールする方法についてご紹介します。

環境

OS:RockyLinux9.2
Samba:Samba3.6.25

Samba3をインストールするための準備

ソースからインストールするためには gcc と gettext が必要になるので、事前にインストールしておきます。
また、この後の工程でconfigureコマンドで様々な機能を有効化する際に、依存関係があるパッケージもインストールしておきます。
・cups-devel:プリンタ共有で必要なCUPSサポートの有効化に必要
・openldap-devel:LDAPサポートの有効化に必要
・libuuid-devel:DNS機能の有効化に必要
・pam-devel:PAM認証機能の有効化に必要

ubuntu@linuc300:~$
ubuntu@linuc300:~$ lxc exec rocky9-samba31 -- bash
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# dnf install -y gcc gettext cups-devel openldap-devel libuuid-devel pam-devel
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# rpm -qa | grep gcc
libgcc-11.3.1-4.3.el9.x86_64
gcc-11.3.1-4.3.el9.x86_64
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# rpm -qa | grep gettext
gettext-libs-0.21-7.el9.x86_64
gettext-0.21-7.el9.x86_64
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# rpm -qa | grep pam
pam-1.5.1-14.el9.x86_64
systemd-pam-252-13.el9_2.x86_64
pam-devel-1.5.1-14.el9.x86_64
[root@rocky9-samba31 ~]# rpm -qa | grep cups
cups-libs-2.3.3op2-16.el9.x86_64
cups-devel-2.3.3op2-16.el9.x86_64
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# rpm -qa | grep openldap
openldap-2.6.2-3.el9.x86_64
openldap-devel-2.6.2-3.el9.x86_64
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# rpm -qa | grep uuid
libuuid-2.37.4-11.el9_2.x86_64
libuuid-devel-2.37.4-11.el9_2.x86_64
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# rpm -qa | grep pam
pam-1.5.1-14.el9.x86_64
systemd-pam-252-13.el9_2.x86_64
pam-devel-1.5.1-14.el9.x86_64
[root@rocky9-samba31 ~]#

Samba3をインストールする

配布元のサーバーにあるSamba3系最新版 samba-3.6.25.tar.gz をcurlコマンドでダウンロードします。

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# curl -LO https://download.samba.org/pub/samba/samba-3.6.25.tar.gz
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ls -l
合計 33322
-rw-r--r-- 1 root root 34121828  527 23:57 samba-3.6.25.tar.gz
[root@rocky9-samba31 ~]#

ダウンロードしたtar.gzファイルをtarコマンドで展開します。

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# tar zxf samba-3.6.25.tar.gz
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ls -l
合計 33325
drwxrwxr-x 30 1000 1000       47  2月 22  2015 samba-3.6.25
-rw-r--r--  1 root root 34121828  5月 27 23:57 samba-3.6.25.tar.gz
[root@rocky9-samba31 ~]#

展開されたsamba-3.6.25ディレクトリにあるsource3というディレクトリにcdコマンドで移動します。

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# cd samba-3.6.25/source3/
[root@rocky9-samba31 source3]# pwd
/root/samba-3.6.25/source3
[root@rocky9-samba31 source3]#

ここからソースをコンパイルしてインストールします。
基本的な手順は ./configure → make → make install です。

[root@rocky9-samba31 source3]#
[root@rocky9-samba31 source3]# ./configure --enable-swat \
                                           --enable-cups \
                                           --with-profiling-data \
                                           --with-ldap \
                                           --with-ads \
                                           --with-dnsupdate \
                                           --with-automount \
                                           --with-pam \
                                           --with-pam_smbpass \
                                           --with-syslog \
                                           --with-utmp \
                                           --with-acl-support \
                                           --with-winbind \
                                           --with-readline \
                                           --with-shared-modules=idmap_ad,idmap_ldap,idmap_rid,idmap_tdb2
[root@rocky9-samba31 source3]# 
[root@rocky9-samba31 source3]# make
[root@rocky9-samba31 source3]# make install
[root@rocky9-samba31 source3]#
  1. ./configure オプション
    カレントディレクトリにある「configure」というスクリプトを実行して環境を整える。
    ./configure --help でインストールオプションを確認することができる。
    (別記事 Appendix Samba3 ./configure --help 参照)
    Samba コンパイル環境に最低限必要なパッケージ - Samba-JP
     Samba3.6では --enable-dns_sd と --with-cifsmountは 不要

  2. make
    コンパイルしてソースコードから実行プログラムを生成する

  3. make install
    コンパイルされた実行プログラムを配置する

PATHを通す

ソースからインストールすると、デフォルトでは「/usr/local/samba」にインストールされます。
このディレクトリは環境変数 PATH には含まれていないためコマンド操作をする際にはフルパスで指定するかコマンドがあるディレクトリに移動してからになります。

[root@rocky9-samba31 source3]#
[root@rocky9-samba31 source3]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[root@rocky9-samba31 source3]#
[root@rocky9-samba31 source3]# smbd --version
bash: smbd: コマンドが見つかりません
[root@rocky9-samba31 source3]#
[root@rocky9-samba31 source3]# /usr/local/samba/sbin/smbd --version
Version 3.6.25
[root@rocky9-samba31 source3]#

これではなにかと面倒なのでPATHを通しておきます。
PATHを通す(=PATHに追加する)にはいくつか方法はありますが、この記事では「/etc/bashrc」に追加しログインするすべてのユーザーに適用されるようにしておきます。

[root@rocky9-samba31 source3]#
[root@rocky9-samba31 source3]# vi /etc/bashrc
 :
 :
# add PATH
PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin <---★この行を追加★
 :
[root@rocky9-samba31 source3]#
[root@rocky9-samba31 source3]# exit
exit
ubuntu@linuc300:~$
ubuntu@linuc300:~$ lxc exec rocky9-samba31 -- bash
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/samba/bin:/usr/local/samba/sbin
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbd --version
Version 3.6.25
[root@rocky9-samba31 ~]#

設定ファイルを配置する

設定ファイルは「/usr/local/samba/lib/smb.conf」です。
インストールするとファイルが配置されていますが、ソースを展開したディレクトリにサンプルファイルがあるのでこれらをコピーしても構いません。
・samba-3.6.25/examples/smb.conf.default
・samba-3.6.25/packaging/RHEL/setup/smb.conf

なお、Linuxでは設定ファイルは /etc に格納するのが一般的なのでこの記事ではシンボリックリンクを設定し、以降「/etc/samba/smb.conf」を設定ファイルとします。
(別記事 Appendix Samba3 /etc/samba/smb.conf 参照)

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# mkdir /etc/samba
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ls -ld /etc/samba
drwxr-xr-x 2 root root 2  528 21:02 /etc/samba
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ln -s /usr/local/samba/lib/smb.conf /etc/samba/smb.conf
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ls -lF /etc/samba/smb.conf
lrwxrwxrwx 1 root root 29  528 21:03 /etc/samba/smb.conf -> /usr/local/samba/lib/smb.conf
[root@rocky9-samba31 ~]#

設定内容は testparam コマンドで確認ができます。
-vオプションを付けることでデフォルト値を表示させることができます。
(別記事 Appendix Samba3 設定初期値 参照)

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[homes]
        comment = Home Directories
        read only = No
        browseable = No

[printers]
        comment = All Printers
        path = /usr/spool/samba
        printable = Yes
        print ok = Yes
        browseable = No
[root@rocky9-samba31 ~]#

Sambaを起動する

smbd と nmbd を起動させます。
まず、smbdを起動させTCPの microsoft‑ds:445 と netbios-ssn:139 が確認できればOKです。

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# /usr/local/samba/sbin/smbd -D
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ss -antl
State      Recv-Q     Send-Q         Local Address:Port           Peer Address:Port     Process
LISTEN     0          50                   0.0.0.0:445                 0.0.0.0:*
LISTEN     0          50                   0.0.0.0:139                 0.0.0.0:*
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# lsof -i:445
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
smbd    26449 root   26u  IPv4  43376      0t0  TCP *:microsoft-ds (LISTEN)
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# lsof -i:139
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
smbd    26449 root   27u  IPv4  43378      0t0  TCP *:netbios-ssn (LISTEN)
[root@rocky9-samba31 ~]#

次にnmbdを起動させUDPの netbios-ns:137 と netbios-dgm:138 が確認できればOKです。

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# /usr/local/samba/sbin/nmbd -D
[root@rocky9-samba31 ~]# ss -anu
State      Recv-Q     Send-Q          Local Address:Port          Peer Address:Port     Process
UNCONN     0          0                     0.0.0.0:68                 0.0.0.0:*
UNCONN     0          0              192.168.56.255:137                0.0.0.0:*
UNCONN     0          0               192.168.56.31:137                0.0.0.0:*
UNCONN     0          0                  10.0.3.255:137                0.0.0.0:*
UNCONN     0          0                   10.0.3.99:137                0.0.0.0:*
UNCONN     0          0                     0.0.0.0:137                0.0.0.0:*
UNCONN     0          0              192.168.56.255:138                0.0.0.0:*
UNCONN     0          0               192.168.56.31:138                0.0.0.0:*
UNCONN     0          0                  10.0.3.255:138                0.0.0.0:*
UNCONN     0          0                   10.0.3.99:138                0.0.0.0:*
UNCONN     0          0                     0.0.0.0:138                0.0.0.0:*
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# lsof -i:137
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nmbd    26481 root    9u  IPv4  44571      0t0  UDP *:netbios-ns
nmbd    26481 root   11u  IPv4  44574      0t0  UDP rocky9-samba31:netbios-ns
nmbd    26481 root   12u  IPv4  44575      0t0  UDP 10.0.3.255:netbios-ns
nmbd    26481 root   15u  IPv4  44578      0t0  UDP rocky9-samba31:netbios-ns
nmbd    26481 root   16u  IPv4  44579      0t0  UDP 192.168.56.255:netbios-ns
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# lsof -i:138
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nmbd    26481 root   10u  IPv4  44572      0t0  UDP *:netbios-dgm
nmbd    26481 root   13u  IPv4  44576      0t0  UDP rocky9-samba31:netbios-dgm
nmbd    26481 root   14u  IPv4  44577      0t0  UDP 10.0.3.255:netbios-dgm
nmbd    26481 root   17u  IPv4  44580      0t0  UDP rocky9-samba31:netbios-dgm
nmbd    26481 root   18u  IPv4  44581      0t0  UDP 192.168.56.255:netbios-dgm
[root@rocky9-samba31 ~]#

サービスに追加する(smbd,nmbd)

Sambaを起動するのに毎回コマンド操作をするのは面倒なので、サービスの起動や停止操作が簡単にできるようにサービスに追加します。

ソースを展開したディレクトリにサービスに追加するためのスクリプトファイルがあるのでこれを/etc/rc.d/init.d/smbにコピーして一部設定を変更します。
・samba-3.6.25/packaging/RHEL/setup/smb.init

変更箇所:
・設定ファイルの指定
・PIDファイルの指定
・smbdコマンドの指定
・nmbdコマンドの指定
・killprocコマンドをpkillコマンドに変更

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# find samba-3.6.25/ -name "smb.init"
samba-3.6.25/packaging/RHEL/setup/smb.init
samba-3.6.25/packaging/RHEL-CTDB/setup/smb.init
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# cp samba-3.6.25/packaging/RHEL/setup/smb.init /etc/rc.d/init.d/smb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# vi /etc/init.d/smb
#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops the Samba smbd and nmbd daemons \
#              used to provide SMB network services.
#
# pidfile: /usr/local/samba/var/locks/smbd.pid <---★この行を変更★
# pidfile: /usr/local/samba/var/locks/nmbd.pid <---★この行を変更★
# config:  /usr/local/samba/lib/smb.conf <---★この行を変更★


# Source function library.
if [ -f /etc/init.d/functions ] ; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 0
fi

# Avoid using root's TMPDIR
unset TMPDIR

# Source networking configuration.
. /etc/sysconfig/network

if [ -f /etc/sysconfig/samba ]; then
   . /etc/sysconfig/samba
fi

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# Check that smb.conf exists.
[ -f /usr/local/samba/lib/smb.conf ] || exit 0 <---★この行を変更★

# Check that we can write to it... so non-root users stop here
[ -w /usr/local/samba/lib/smb.conf ] || exit 0 <---★この行を変更★

# Check whether "netbios disabled" is true
ISNETBIOSDISABLED=$(testparm -s 2>/dev/null | \
        sed -n '/\[global\]/,/^$/p' | \
        grep "disable netbios = Yes" | \
        awk 'BEGIN{FS=" = "}{print $2}')


RETVAL=0


start() {
        KIND="SMB"
        echo -n $"Starting $KIND services: "
        /usr/local/samba/sbin/smbd -D <---★この行を変更★
        RETVAL=$?
        echo
        KIND="NMB"
        if [ x"$ISNETBIOSDISABLED" != x"Yes" ]; then
                echo -n $"Starting $KIND services: "
                /usr/local/samba/sbin/nmbd -D <---★この行を変更★
                RETVAL2=$?
                echo
                [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb || \
                        RETVAL=1
        else
                [ $RETVAL -eq 0 ] && touch /var/lock/subsys/smb || \
                        RETVAL=1
        fi
        return $RETVAL
}

stop() {
        KIND="SMB"
        echo -n $"Shutting down $KIND services: "
        pkill smbd <---★この行を変更★
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /usr/local/samba/var/locks/smbd.pid <---★この行を変更★
        echo
        KIND="NMB"
        if [ x"$ISNETBIOSDISABLED" != x"Yes" ]; then
                echo -n $"Shutting down $KIND services: "
                pkill nmbd <---★この行を変更★
                RETVAL2=$?
                [ $RETVAL2 -eq 0 ] && rm -f /usr/local/samba/var/locks/nmbd.pid <---★この行を変更★
                [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb
                echo ""
        else
                [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/smb
                echo ""
        fi
        return $RETVAL
}

restart() {
        stop
        start
}

reload() {
        echo -n $"Reloading smb.conf file: "
        pkill smbd -HUP <---★この行を変更★
        RETVAL=$?
        echo
        return $RETVAL
}

rhstatus() {
        status smbd
        status nmbd
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  reload)
        reload
        ;;
  status)
        rhstatus
        ;;
  condrestart)
        [ -f /var/lock/subsys/smb ] && restart || :
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
        exit 1
esac

exit $?
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chmod +x /etc/rc.d/init.d/smb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ls -lF /etc/rc.d/init.d/smb
-rwxr-xr-x 1 root root 2445  528 01:04 /etc/rc.d/init.d/smb*
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chkconfig --add smb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chkconfig --list smb

注記: この出力に含まれるのは SysV サービスのみです。ネイティブな
      systemd サービスは含まれません。SysV の設定データはネイティブな
        systemd 設定で上書きされる場合があります。
      systemd サービスを一覧表示する場合は 'systemctl list-unit-files' を使用します。
      特定のターゲットで有効になっているサービスを確認する場合は
      'systemctl list-dependencies [target]'を使用します。

smb             0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@rocky9-samba31 ~]#

サービスに追加する(winbindd)

Sambaを起動するのに毎回コマンド操作をするのは面倒なので、サービスの起動や停止操作が簡単にできるようにサービスに追加します。

ソースを展開したディレクトリにサービスに追加するためのスクリプトファイルがあるのでこれを/etc/rc.d/init.d/winbindにコピーして一部設定を変更します。
・samba-3.6.25/packaging/RHEL/setup/winbind.init

変更箇所:
・設定ファイルの指定
・PIDファイルの指定
・winbinddコマンドの指定
・nmbdコマンドの指定
・killprocコマンドをpkillコマンドに変更

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# find samba-3.6.25/ -name "winbind.init"
samba-3.6.25/packaging/RHEL/setup/winbind.init
samba-3.6.25/packaging/RHEL-CTDB/setup/winbind.init
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# cp samba-3.6.25/packaging/RHEL/setup/winbind.init /etc/rc.d/init.d/winbind
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# vi /etc/init.d/winbind
#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops the Samba winbind daemon
#              #
# pidfile: /usr/local/samba/var/locks/winbindd.pid <---★この行を変更★
# config:  /usr/local/samba/lib/smb.conf <---★この行を変更★


# Source function library.
if [ -f /etc/init.d/functions ] ; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 0
fi

# Avoid using root's TMPDIR
unset TMPDIR

# Source networking configuration.
. /etc/sysconfig/network

if [ -f /etc/sysconfig/samba ]; then
   . /etc/sysconfig/samba
fi

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# Check that smb.conf exists.
[ -f /usr/local/samba/lib/smb.conf ] || exit 0 <---★この行を変更★

RETVAL=0


start() {
        KIND="Winbind"
        echo -n $"Starting $KIND services: "
        /usr/local/samba/sbin/winbindd -D "$WINBINDOPTIONS"
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/winbindd || RETVAL=1
        return $RETVAL
}

stop() {
        echo
        KIND="Winbind"
        echo -n $"Shutting down $KIND services: "
        pkill winbindd
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /usr/local/samba/var/locks/winbindd.pid && rm -f /var/lock/subsys/winbindd <---★この行を変更★
        echo ""
        return $RETVAL
}

restart() {
        stop
        start
}

reload() {
        echo -n $"Reloading smb.conf file: "
        pkill winbindd -HUP
        RETVAL=$?
        echo
        return $RETVAL
}

rhstatus() {
        status winbindd
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  reload)
        reload
        ;;
  status)
        rhstatus
        ;;
  condrestart)
        [ -f /var/lock/subsys/winbindd ] && restart || :
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
        exit 1
esac

exit $?
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chmod +x /etc/rc.d/init.d/winbind
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ls -lF /etc/rc.d/init.d/winbind
-rwxr-xr-x 1 root root 2445  528 01:04 /etc/rc.d/init.d/winbind*
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chkconfig --add winbind
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chkconfig --list winbind

注記: この出力に含まれるのは SysV サービスのみです。ネイティブな
      systemd サービスは含まれません。SysV の設定データはネイティブな
        systemd 設定で上書きされる場合があります。
      systemd サービスを一覧表示する場合は 'systemctl list-unit-files' を使用します。
      特定のターゲットで有効になっているサービスを確認する場合は
      'systemctl list-dependencies [target]'を使用します。

winbind         0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@rocky9-samba31 ~]#

サービスを起動する

サービスを起動する方法(1) serviceコマンド

CentOS6までのSysVinit形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# service smb start
Starting smb (via systemctl):                              [  OK  ]
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 init.d]# service winbind start
Starting winbind (via systemctl):                          [  OK  ]
[root@rocky9-samba31 init.d]#

サービスを起動する方法(2) systemctlコマンド

CentOS7からのsysemd形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl start smb
[root@rocky9-samba31 ~]#

サービスの状態を確認する

サービスの状態を確認する方法(1) serviceコマンド

CentOS6までのSysVinit形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# service smb status
● smb.service - SYSV: Starts and stops the Samba smbd and nmbd daemons used to provide SMB network services.
     Loaded: loaded (/etc/rc.d/init.d/smb; generated)
    Drop-In: /run/systemd/system/service.d
             mqzzz-lxc-service.conf
     Active: active (running) since Sun 2023-05-28 22:02:59 JST; 3min 3s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 1378 ExecStart=/etc/rc.d/init.d/smb start (code=exited, status=0/SUCCESS)
   Main PID: 1390 (nmbd)
      Tasks: 3 (limit: 24384)
     Memory: 2.2M
     CGroup: /system.slice/smb.service
             tq1388 /usr/local/samba/sbin/smbd -D
             tq1390 /usr/local/samba/sbin/nmbd -D
             mq1392 /usr/local/samba/sbin/smbd -D

May 28 22:02:59 rocky9-samba31 systemd[1]: Starting SYSV: Starts and stops the Samba smbd and nmbd daemons used to provide SMB network services....
May 28 22:02:59 rocky9-samba31 smb[1378]: Starting SMB services:
May 28 22:02:59 rocky9-samba31 smb[1378]: Starting NMB services:
May 28 22:02:59 rocky9-samba31 systemd[1]: Started SYSV: Starts and stops the Samba smbd and nmbd daemons used to provide SMB network services..
● smb.service - SYSV: Starts and stops the Samba smbd and nmbd daemons used to provide SMB network services.
     Loaded: loaded (/etc/rc.d/init.d/smb; generated)
    Drop-In: /run/systemd/system/service.d
             mqzzz-lxc-service.conf
     Active: active (running) since Sun 2023-05-28 22:02:59 JST; 3min 3s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 1378 ExecStart=/etc/rc.d/init.d/smb start (code=exited, status=0/SUCCESS)
   Main PID: 1390 (nmbd)
      Tasks: 3 (limit: 24384)
     Memory: 2.2M
     CGroup: /system.slice/smb.service
             tq1388 /usr/local/samba/sbin/smbd -D
             tq1390 /usr/local/samba/sbin/nmbd -D
             mq1392 /usr/local/samba/sbin/smbd -D

May 28 22:02:59 rocky9-samba31 systemd[1]: Starting SYSV: Starts and stops the Samba smbd and nmbd daemons used to provide SMB network services....
May 28 22:02:59 rocky9-samba31 smb[1378]: Starting SMB services:
May 28 22:02:59 rocky9-samba31 smb[1378]: Starting NMB services:
May 28 22:02:59 rocky9-samba31 systemd[1]: Started SYSV: Starts and stops the Samba smbd and nmbd daemons used to provide SMB network services..
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]#  service winbind status
● winbind.service - SYSV: Starts and stops the Samba winbind daemon
     Loaded: loaded (/etc/rc.d/init.d/winbind; generated)
    Drop-In: /run/systemd/system/service.d
             mqzzz-lxc-service.conf
     Active: active (running) since Fri 2023-06-02 23:24:31 JST; 35s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 2484 ExecStart=/etc/rc.d/init.d/winbind start (code=exited, status=0/SUCCESS)
   Main PID: 2489 (winbindd)
      Tasks: 2 (limit: 24384)
     Memory: 1.5M
     CGroup: /system.slice/winbind.service
             tq2489 /usr/local/samba/sbin/winbindd -D
             mq2491 /usr/local/samba/sbin/winbindd -D

Jun 02 23:24:31 rocky9-samba31 systemd[1]: Starting SYSV: Starts and stops the Samba winbind daemon...
Jun 02 23:24:31 rocky9-samba31 winbind[2484]: Starting Winbind services:
Jun 02 23:24:31 rocky9-samba31 systemd[1]: Started SYSV: Starts and stops the Samba winbind daemon.
[root@rocky9-samba31 ~]#

サービスの状態を確認する方法(1) systemctlコマンド

CentOS7からのsysemd形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl status smb
● smb.service - SYSV: Starts and stops the Samba smbd and nmbd daemons used to provide SMB network services.
     Loaded: loaded (/etc/rc.d/init.d/smb; generated)
    Drop-In: /run/systemd/system/service.d
             mqzzz-lxc-service.conf
     Active: active (running) since Sun 2023-05-28 22:02:59 JST; 18s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 1378 ExecStart=/etc/rc.d/init.d/smb start (code=exited, status=0/SUCCESS)
   Main PID: 1390 (nmbd)
      Tasks: 3 (limit: 24384)
     Memory: 2.2M
     CGroup: /system.slice/smb.service
             tq1388 /usr/local/samba/sbin/smbd -D
             tq1390 /usr/local/samba/sbin/nmbd -D
             mq1392 /usr/local/samba/sbin/smbd -D

 528 22:02:59 rocky9-samba31 systemd[1]: Starting SYSV: Starts and stops the Samba smbd and nmbd daemons used to provide SMB network services....
 528 22:02:59 rocky9-samba31 smb[1378]: Starting SMB services:
 528 22:02:59 rocky9-samba31 smb[1378]: Starting NMB services:
 528 22:02:59 rocky9-samba31 systemd[1]: Started SYSV: Starts and stops the Samba smbd and nmbd daemons used to provide SMB network services..
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl status winbind
● winbind.service - SYSV: Starts and stops the Samba winbind daemon
     Loaded: loaded (/etc/rc.d/init.d/winbind; generated)
    Drop-In: /run/systemd/system/service.d
             mqzzz-lxc-service.conf
     Active: active (running) since Fri 2023-06-02 23:24:31 JST; 1min 3s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 2484 ExecStart=/etc/rc.d/init.d/winbind start (code=exited, status=0/SUCCESS)
   Main PID: 2489 (winbindd)
      Tasks: 2 (limit: 24384)
     Memory: 1.5M
     CGroup: /system.slice/winbind.service
             tq2489 /usr/local/samba/sbin/winbindd -D
             mq2491 /usr/local/samba/sbin/winbindd -D

 602 23:24:31 rocky9-samba31 systemd[1]: Starting SYSV: Starts and stops the Samba winbind daemon...
 602 23:24:31 rocky9-samba31 winbind[2484]: Starting Winbind services:
 602 23:24:31 rocky9-samba31 systemd[1]: Started SYSV: Starts and stops the Samba winbind daemon.
[root@rocky9-samba31 ~]#

サービスを停止する

サービスを停止する方法(1) serviceコマンド

CentOS6までのSysVinit形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# service smb stop
Stopping smb (via systemctl):                              [  OK  ]
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# service winbind stop
Stopping winbind (via systemctl):                          [  OK  ]
[root@rocky9-samba31 ~]#

サービスを停止する方法(2) systemctlコマンド

CentOS7からのsysemd形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl stop smb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl stop winbind
[root@rocky9-samba31 ~]#

サービスを再起動する

サービスを再起動する方法(1) serviceコマンド

CentOS6までのSysVinit形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# service smb restart
Restarting smb (via systemctl):                            [  OK  ]
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# service winbind restart
Restarting winbind (via systemctl):                        [  OK  ]
[root@rocky9-samba31 ~]#

サービスを停止する方法(2) systemctlコマンド

CentOS7からのsysemd形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl restart smb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl restart winbind
[root@rocky9-samba31 ~]#

自動起動を有効にする

コンテナが起動したと同時にsmbサービスを起動するように設定します。

自動起動を有効にする方法(1) chkconfigコマンド

CentOS6までのSysVinit形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chkconfig smb on
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chkconfig winbind on
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chkconfig --list

注記: この出力に含まれるのは SysV サービスのみです。ネイティブな
      systemd サービスは含まれません。SysV の設定データはネイティブな
        systemd 設定で上書きされる場合があります。
      systemd サービスを一覧表示する場合は 'systemctl list-unit-files' を使用します。
      特定のターゲットで有効になっているサービスを確認する場合は
      'systemctl list-dependencies [target]'を使用します。

smb             0:off   1:off   2:on    3:on    4:on    5:on    6:off
winbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@rocky9-samba31 ~]#

自動起動を有効にする方法(2) systemctlコマンド

CentOS7からのsysemd形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl enable smb
smb.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable smb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl enable winbind
winbind.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable winbind
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl is-enabled smb
smb.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install is-enabled smb
enabled
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl is-enabled winbind
winbind.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install is-enabled winbind
enabled
[root@rocky9-samba31 ~]#

自動起動を無効にする

コンテナが起動したと同時にsmbサービスを起動するように設定します。

自動起動を無効にする方法(1) chkconfigコマンド

CentOS6までのSysVinit形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chkconfig smb off
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chkconfig winbind off
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# chkconfig --list

注記: この出力に含まれるのは SysV サービスのみです。ネイティブな
      systemd サービスは含まれません。SysV の設定データはネイティブな
        systemd 設定で上書きされる場合があります。
      systemd サービスを一覧表示する場合は 'systemctl list-unit-files' を使用します。
      特定のターゲットで有効になっているサービスを確認する場合は
      'systemctl list-dependencies [target]'を使用します。

smb             0:off   1:off   2:off   3:off   4:off   5:off   6:off
winbind         0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]#

自動起動を無効にする方法(2) systemctlコマンド

CentOS7からのsysemd形式

[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl disable smb
smb.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install disable smb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl disable winbind
winbind.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install disable winbind
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl is-enabled smb
smb.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install is-enabled smb
disabled
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# systemctl is-enabled winbind
winbind.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install is-enabled winbind
disabled
[root@rocky9-samba31 ~]#

おつかれさまでした。

これでSamba3の準備は整いました。
SysVinit時代のミドルウェアをsystemd時代のOSにインストールしているのでソースからインストールするという慣れない作業で準備が大変ですが、ここまでくれば一段落です。

以降 smb.conf を使って設定変更し、サービスを再起動する という操作を繰り返しながらサーバー構築を進めていくことになります。

参考資料


この記事が気に入ったらサポートをしてみませんか?