見出し画像

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

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

なお、Red Hat Enterprise Linux(RHEL)系のOS(CentOS、RockyLinux、AlmaLinuxなど)ではパッケージ版のSamba4ではActiveDirectoryドメインコントローラーを構築できないという機能制限があるようなので、Sambaサーバーの用途によってパッケージ版で良いのか、ソースからインストールする必要があるのか、十分に確認が必要かと思います。

Red Hat Enterprise Linux / CentOS / Scientific Linux
Version 7 and 8
# yum install samba

The samba package only supports Samba as a domain member and NT4 PDC or BDC. Red Hat does not provide packages for running Samba as an AD DC. As an alternative:
・Build Samba. For details, see Build Samba from Source.
・Use 3rd-party packages with AD support from a trusted source.

Distribution-specific Package Installation - SambaWiki

この記事ではRockyLinux9にSamba4をソースからインストールする方法についてご紹介します。
(参考)
Package Dependencies Required to Build Samba - SambaWiki


環境

  • OS:RockyLinux 9.2

  • Samba:Samba 4.18.4

EPELリポジトリをインストールする

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# dnf install -y epel-release
[root@rocky9-samba43 ~]#

CRBリポジトリを有効化する

CRBとはCentOS8までPowerToolと呼ばれていたようです。

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# dnf repolist --all | grep crb
crb                     Rocky Linux 9 - CRB                               無効化 ★
crb-debug               Rocky Linux 9 - CRB - Debug                       無効化
crb-source              Rocky Linux 9 - CRB - Source                      無効化
[root@rocky9-samba43 ~]# dnf config-manager --set-enabled crb
[root@rocky9-samba43 ~]# dnf repolist --all | grep crb
crb                     Rocky Linux 9 - CRB                               有効化 ★
crb-debug               Rocky Linux 9 - CRB - Debug                       無効化
crb-source              Rocky Linux 9 - CRB - Source                      無効化
[root@rocky9-samba43 ~]#

必要なバッケージをインストールする

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# dnf install -y \
                         docbook-style-xsl gcc gdb gnutls-devel gpgme-devel \
                         jansson-devel keyutils-libs-devel krb5-workstation \
                         libacl-devel libaio-devel libarchive-devel libattr-devel \
                         libblkid-devel libtasn1 libtasn1-tools libxml2-devel \
                         libxslt lmdb-devel openldap-devel pam-devel perl \
                         perl-ExtUtils-MakeMaker perl-Parse-Yapp popt-devel \
                         python3-cryptography python3-dns python3-gpg python3-devel \
                         readline-devel rpcgen systemd-devel tar zlib-devel \
                         cups-devel flex bison dbus-devel python3-markdown perl-JSON
[root@rocky9-samba43 ~]#

Samba4をインストールする

https://www.samba.org/ から最新版を入手する。

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# curl -LO https://download.samba.org/pub/samba/stable/samba-4.18.4.tar.gz
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# ls -l
合計 40059
-rw-r--r-- 1 root root 41311410  75 23:19 samba-4.18.4.tar.gz
[root@rocky9-samba43 ~]#

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

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# tar zxf samba-4.18.4.tar.gz
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# ls -l
合計 40073
drwxr-xr-x 35 root root       72  7月  5 23:26 samba-4.18.4
-rw-r--r--  1 root root 41311410  7月  5 23:19 samba-4.18.4.tar.gz
[root@rocky9-samba43 ~]#

展開されたsamba-4.18.4ディレクトリにcdコマンドで移動します。

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# cd samba-4.18.4
[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# pwd
/root/samba-4.18.4
[root@rocky9-samba43 samba-4.18.4]#

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

[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# ./configure
   :
   :
'configure' finished successfully (47.367s)
[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# make
   :
   :
'build' finished successfully (10m48.507s)
[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# make install
   :
   :
'install' finished successfully (2m57.868s)
[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# /usr/local/samba/sbin/smbd --version
Version 4.18.4
[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# /usr/local/samba/sbin/nmbd --version
Version 4.18.4
[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# /usr/local/samba/sbin/winbindd --version
Version 4.18.4
[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# /usr/local/samba/sbin/samba --version
Version 4.18.4
[root@rocky9-samba43 samba-4.18.4]#

ビルドされた環境を確認する

[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# /usr/local/samba/sbin/smbd -b

Paths:
   SBINDIR: /usr/local/samba/sbin
   BINDIR: /usr/local/samba/bin
   CONFIGFILE: /usr/local/samba/etc/smb.conf
   LOGFILEBASE: /usr/local/samba/var
   LMHOSTSFILE: /usr/local/samba/etc/lmhosts
   LIBDIR: /usr/local/samba/lib
   DATADIR: /usr/local/samba/share
   SAMBA_DATADIR: /usr/local/samba/share/samba
   MODULESDIR: /usr/local/samba/lib
   SHLIBEXT: so
   LOCKDIR: /usr/local/samba/var/lock
   STATEDIR: /usr/local/samba/var/locks
   CACHEDIR: /usr/local/samba/var/cache
   PIDDIR: /usr/local/samba/var/run
   SMB_PASSWD_FILE: /usr/local/samba/private/smbpasswd
   PRIVATE_DIR: /usr/local/samba/private
   BINDDNS_DIR: /usr/local/samba/bind-dns

System Headers:
   HAVE_SYS_ACL_H
   HAVE_SYS_AUXV_H
   HAVE_SYS_CDEFS_H
   HAVE_SYS_DIR_H
   HAVE_SYS_EPOLL_H
   HAVE_SYS_EVENTFD_H
   HAVE_SYS_FCNTL_H
   HAVE_SYS_FILE_H
   HAVE_SYS_INOTIFY_H
   HAVE_SYS_IOCTL_H
   HAVE_SYS_IPC_H
   HAVE_SYS_KERNEL_PROC_CORE_PATTERN
   HAVE_SYS_MMAN_H
   HAVE_SYS_MOUNT_H
   HAVE_SYS_PARAM_H
   HAVE_SYS_PRCTL_H
   HAVE_SYS_QUOTAS
   HAVE_SYS_QUOTA_H
   HAVE_SYS_RANDOM_H
   HAVE_SYS_RESOURCE_H
   HAVE_SYS_SELECT_H
   HAVE_SYS_SENDFILE_H
   HAVE_SYS_SHM_H
   HAVE_SYS_SOCKET_H
   HAVE_SYS_STATFS_H
   HAVE_SYS_STATVFS_H
   HAVE_SYS_STAT_H
   HAVE_SYS_SYSCALL_H
   HAVE_SYS_SYSLOG_H
   HAVE_SYS_SYSMACROS_H
   HAVE_SYS_TERMIOS_H
   HAVE_SYS_TIMEB_H
   HAVE_SYS_TIMES_H
   HAVE_SYS_TIME_H
   HAVE_SYS_TYPES_H
   HAVE_SYS_UCONTEXT_H
   HAVE_SYS_UIO_H
   HAVE_SYS_UNISTD_H
   HAVE_SYS_UN_H
   HAVE_SYS_UTSNAME_H
   HAVE_SYS_VFS_H
   HAVE_SYS_WAIT_H
   HAVE_SYS_XATTR_H

Headers:
   HAVE_ACL_LIBACL_H
   HAVE_ALLOCA_H
   HAVE_ARCHIVE_H
   HAVE_ARPA_INET_H
   HAVE_ARPA_NAMESER_H
   HAVE_ASM_TYPES_H
   HAVE_ASM_UNISTD_H
   HAVE_ASSERT_H
   HAVE_ATTR_ATTRIBUTES_H
   HAVE_ATTR_XATTR_H
   HAVE_COM_ERR_H
   HAVE_CONFIG_H
   HAVE_CRYPT_H
   HAVE_CTYPE_H
   HAVE_CUPS_CUPS_H
   HAVE_CUPS_LANGUAGE_H
   HAVE_CURSES_H
   HAVE_DBUS_DBUS_H
   HAVE_DIRENT_H
   HAVE_DLFCN_H
   HAVE_ENDIAN_H
   HAVE_ERRNO_H
   HAVE_ERR_H
   HAVE_EXECINFO_H
   HAVE_FCNTL_H
   HAVE_FLOAT_H
   HAVE_FNMATCH_H
   HAVE_FORM_H
   HAVE_FTW_H
   HAVE_GETOPT_H
   HAVE_GLIB_H
   HAVE_GLOB_H
   HAVE_GNUTLS_GNUTLS_H
   HAVE_GPFS_H
   HAVE_GPGME_H
   HAVE_GRP_H
   HAVE_GSSAPI_GSSAPI_H
   HAVE_GSSAPI_GSSAPI_KRB5_H
   HAVE_GSSAPI_GSSAPI_SPNEGO_H
   HAVE_ICONV_H
   HAVE_IFADDRS_H
   HAVE_INTTYPES_H
   HAVE_KRB5_H
   HAVE_KRB5_LOCATE_PLUGIN_H
   HAVE_LANGINFO_H
   HAVE_LASTLOG_H
   HAVE_LBER_H
   HAVE_LDAP_H
   HAVE_LIBGEN_H
   HAVE_LIBINTL_H
   HAVE_LIMITS_H
   HAVE_LINUX_ETHTOOL_H
   HAVE_LINUX_FALLOC_H
   HAVE_LINUX_FCNTL_H
   HAVE_LINUX_FS_H
   HAVE_LINUX_IOCTL_H
   HAVE_LINUX_NETLINK_H
   HAVE_LINUX_OPENAT2_H
   HAVE_LINUX_RTNETLINK_H
   HAVE_LINUX_SOCKIOS_H
   HAVE_LINUX_TYPES_H
   HAVE_LMDB_H
   HAVE_LOCALE_H
   HAVE_MALLOC_H
   HAVE_MEMORY_H
   HAVE_MENU_H
   HAVE_MNTENT_H
   HAVE_NCURSES_H
   HAVE_NETDB_H
   HAVE_NETINET_IN_H
   HAVE_NETINET_IN_SYSTM_H
   HAVE_NETINET_IP_H
   HAVE_NETINET_TCP_H
   HAVE_NET_IF_H
   HAVE_NSS_H
   HAVE_PANEL_H
   HAVE_POLL_H
   HAVE_POPT_H
   HAVE_PTHREAD_H
   HAVE_PTY_H
   HAVE_PWD_H
   HAVE_PYTHON_H
   HAVE_READLINE_HISTORY_H
   HAVE_READLINE_READLINE_H
   HAVE_RESOLV_H
   HAVE_SASL_SASL_H
   HAVE_SCHED_H
   HAVE_SECURITY_PAM_APPL_H
   HAVE_SECURITY_PAM_EXT_H
   HAVE_SECURITY_PAM_MODULES_H
   HAVE_SECURITY__PAM_MACROS_H
   HAVE_SETJMP_H
   HAVE_SHADOW_H
   HAVE_SIGNAL_H
   HAVE_STDARG_H
   HAVE_STDATOMIC_H
   HAVE_STDBOOL_H
   HAVE_STDDEF_H
   HAVE_STDINT_H
   HAVE_STDIO_H
   HAVE_STDLIB_H
   HAVE_STRINGS_H
   HAVE_STRING_H
   HAVE_SYSCALL_H
   HAVE_SYSLOG_H
   HAVE_TERMCAP_H
   HAVE_TERMIOS_H
   HAVE_TERMIO_H
   HAVE_TERM_H
   HAVE_TIME_H
   HAVE_UNISTD_H
   HAVE_UTIME_H
   HAVE_ZLIB_H

UTMP Options:
   HAVE_GETUTMPX
   HAVE_UTMPX_H
   HAVE_UTMP_H
   HAVE_UT_UT_EXIT
   HAVE_UT_UT_HOST
   HAVE_UT_UT_ID
   HAVE_UT_UT_NAME
   HAVE_UT_UT_PID
   HAVE_UT_UT_TIME
   HAVE_UT_UT_TV
   HAVE_UT_UT_TYPE
   HAVE_UT_UT_USER
   PUTUTLINE_RETURNS_UTMP
   SIZEOF_UTMP_UT_LINE
   WITH_UTMP

HAVE_* Defines:
   HAVE_64_BIT_SIZE_T_FOR_LMDB
   HAVE_ACL_GET_FILE
   HAVE_ADDR_TYPE_IN_KRB5_ADDRESS
   HAVE_ADS
   HAVE_AP_OPTS_USE_SUBKEY
   HAVE_ARCHIVE_READ_FREE
   HAVE_ARCHIVE_READ_SUPPORT_FILTER_ALL
   HAVE_ASPRINTF
   HAVE_ATEXIT
   HAVE_ATOMIC_THREAD_FENCE
   HAVE_ATOMIC_THREAD_FENCE_SUPPORT
   HAVE_BACKTRACE
   HAVE_BACKTRACE_SYMBOLS
   HAVE_BASENAME
   HAVE_BER_SCANF
   HAVE_BER_SOCKBUF_ADD_IO
   HAVE_BER_TAG_T
   HAVE_BINDTEXTDOMAIN
   HAVE_BIND_TEXTDOMAIN_CODESET
   HAVE_BLKCNT_T
   HAVE_BLKSIZE_T
   HAVE_BOOL
   HAVE_BZERO
   HAVE_C99_VSNPRINTF
   HAVE_CHARSET_CP850
   HAVE_CHARSET_UTF_8
   HAVE_CHECKSUM_IN_KRB5_CHECKSUM
   HAVE_CHMOD
   HAVE_CHOWN
   HAVE_CHROOT
   HAVE_CLEARENV
   HAVE_CLOCK_GETTIME
   HAVE_CLOCK_MONOTONIC
   HAVE_CLOCK_PROCESS_CPUTIME_ID
   HAVE_CLOCK_REALTIME
   HAVE_CLOSEFROM
   HAVE_COMPARISON_FN_T
   HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS
   HAVE_CONNECT
   HAVE_CONSTRUCTOR_ATTRIBUTE
   HAVE_COPY_FILE_RANGE
   HAVE_CPPFUNCTION
   HAVE_CRYPT
   HAVE_CRYPT_R
   HAVE_CRYPT_RN
   HAVE_CUPS
   HAVE_DBUS_1
   HAVE_DECL_ASPRINTF
   HAVE_DECL_BINDTEXTDOMAIN
   HAVE_DECL_BIND_TEXTDOMAIN_CODESET
   HAVE_DECL_DGETTEXT
   HAVE_DECL_DLOPEN
   HAVE_DECL_EWOULDBLOCK
   HAVE_DECL_FDATASYNC
   HAVE_DECL_FS_COMPR_FL
   HAVE_DECL_FS_IOC_GETFLAGS
   HAVE_DECL_GETGRENT_R
   HAVE_DECL_GETPWENT_R
   HAVE_DECL_GETTEXT
   HAVE_DECL_GETTIMEOFDAY
   HAVE_DECL_H_ERRNO
   HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE
   HAVE_DECL_KRB5_GET_CREDENTIALS_FOR_USER
   HAVE_DECL_KRB5_PAC_GET_BUFFER
   HAVE_DECL_MALLOC
   HAVE_DECL_MEMALIGN
   HAVE_DECL_PTHREAD_MUTEX_ROBUST
   HAVE_DECL_READAHEAD
   HAVE_DECL_RL_EVENT_HOOK
   HAVE_DECL_SNPRINTF
   HAVE_DECL_STRPTIME
   HAVE_DECL_TEXTDOMAIN
   HAVE_DECL_VASPRINTF
   HAVE_DECL_VSNPRINTF
   HAVE_DECL__RES
   HAVE_DESTRUCTOR_ATTRIBUTE
   HAVE_DEVICE_MAJOR_FN
   HAVE_DEVICE_MINOR_FN
   HAVE_DGETTEXT
   HAVE_DIRENT_D_OFF
   HAVE_DIRFD
   HAVE_DIRFD_DECL
   HAVE_DIRNAME
   HAVE_DLCLOSE
   HAVE_DLERROR
   HAVE_DLOPEN
   HAVE_DLSYM
   HAVE_DN_EXPAND
   HAVE_DPRINTF
   HAVE_DUP2
   HAVE_ENCTYPE_AES128_CTS_HMAC_SHA1_96
   HAVE_ENCTYPE_AES256_CTS_HMAC_SHA1_96
   HAVE_ENCTYPE_ARCFOUR_HMAC
   HAVE_ENCTYPE_ARCFOUR_HMAC_MD5
   HAVE_ENCTYPE_ARCFOUR_HMAC_MD5_56
   HAVE_ENDHOSTENT
   HAVE_ENDMNTENT
   HAVE_ENVIRON_DECL
   HAVE_EPOLL
   HAVE_EPOLL_CREATE
   HAVE_ERR
   HAVE_ERRNO_DECL
   HAVE_ERRX
   HAVE_ETHTOOL
   HAVE_ETYPE_IN_ENCRYPTEDDATA
   HAVE_EVENTFD
   HAVE_EXECL
   HAVE_E_DATA_POINTER_IN_KRB5_ERROR
   HAVE_FALLOCATE
   HAVE_FALLOC_FL_PUNCH_HOLE
   HAVE_FALLTHROUGH_ATTRIBUTE
   HAVE_FCHMOD
   HAVE_FCHOWN
   HAVE_FCNTL_LOCK
   HAVE_FDATASYNC
   HAVE_FDOPENDIR
   HAVE_FLAGS_IN_KRB5_CREDS
   HAVE_FLOCK
   HAVE_FMEMOPEN
   HAVE_FREEADDRINFO
   HAVE_FREEIFADDRS
   HAVE_FREE_CHECKSUM
   HAVE_FRSIZE
   HAVE_FSEEKO
   HAVE_FSID_INT
   HAVE_FSYNC
   HAVE_FTRUNCATE
   HAVE_FTRUNCATE_EXTEND
   HAVE_FUNCTION_MACRO
   HAVE_FUTIMENS
   HAVE_F_OWNER_EX
   HAVE_F_SETLEASE_DECL
   HAVE_GAI_STRERROR
   HAVE_GCC_VOLATILE_MEMORY_PROTECTION
   HAVE_GETADDRINFO
   HAVE_GETAUXVAL
   HAVE_GETCWD
   HAVE_GETDOMAINNAME
   HAVE_GETGRENT
   HAVE_GETGRENT_R
   HAVE_GETGRENT_R_DECL
   HAVE_GETGRGID_R
   HAVE_GETGRNAM
   HAVE_GETGRNAM_R
   HAVE_GETGROUPLIST
   HAVE_GETHOSTBYADDR
   HAVE_GETHOSTBYNAME
   HAVE_GETHOSTBYNAME_R
   HAVE_GETHOSTENT
   HAVE_GETHOSTENT_R
   HAVE_GETHOSTNAME
   HAVE_GETIFADDRS
   HAVE_GETMNTENT
   HAVE_GETNAMEINFO
   HAVE_GETPAGESIZE
   HAVE_GETPGRP
   HAVE_GETPWENT_R
   HAVE_GETPWENT_R_DECL
   HAVE_GETPWNAM
   HAVE_GETPWNAM_R
   HAVE_GETPWUID_R
   HAVE_GETRANDOM
   HAVE_GETRLIMIT
   HAVE_GETSPNAM
   HAVE_GETTEXT
   HAVE_GETTIMEOFDAY_TZ_VOID
   HAVE_GETUTXENT
   HAVE_GETXATTR
   HAVE_GET_CURRENT_DIR_NAME
   HAVE_GLIB
   HAVE_GLIB_2_0
   HAVE_GLOB
   HAVE_GNUTLS
   HAVE_GNUTLS_AEAD_CIPHER_ENCRYPTV2
   HAVE_GNUTLS_AES_CFB8
   HAVE_GNUTLS_AES_CMAC
   HAVE_GNUTLS_FIPS_MODE_SUPPORTED
   HAVE_GNUTLS_PBKDF2
   HAVE_GNUTLS_PKCS7_GET_EMBEDDED_DATA_OID
   HAVE_GNUTLS_SET_DEFAULT_PRIORITY_APPEND
   HAVE_GPFS
   HAVE_GPGME
   HAVE_GPGME_NEW
   HAVE_GRANTPT
   HAVE_GSSAPI
   HAVE_GSSKRB5_EXTRACT_AUTHZ_DATA_FROM_SEC_CONTEXT
   HAVE_GSSKRB5_GET_SUBKEY
   HAVE_GSS_DISPLAY_STATUS
   HAVE_GSS_EXPORT_CRED
   HAVE_GSS_IMPORT_CRED
   HAVE_GSS_INQUIRE_SEC_CONTEXT_BY_OID
   HAVE_GSS_KRB5_CRED_NO_CI_FLAGS_X
   HAVE_GSS_KRB5_EXPORT_LUCID_SEC_CONTEXT
   HAVE_GSS_KRB5_IMPORT_CRED
   HAVE_GSS_OID_EQUAL
   HAVE_GSS_WRAP_IOV
   HAVE_HISTORY_LIST
   HAVE_HSTRERROR
   HAVE_HTTPCONNECT
   HAVE_HTTPCONNECT2
   HAVE_HTTPCONNECTENCRYPT
   HAVE_H_ERRNO
   HAVE_ICONV
   HAVE_ICONV_ERRNO_ILLEGAL_MULTIBYTE
   HAVE_ICONV_OPEN
   HAVE_IF_NAMEINDEX
   HAVE_IF_NAMETOINDEX
   HAVE_IMMEDIATE_STRUCTURES
   HAVE_INET_ATON
   HAVE_INET_NTOA
   HAVE_INET_NTOP
   HAVE_INET_PTON
   HAVE_INITGROUPS
   HAVE_INITIALIZE_KRB5_ERROR_TABLE
   HAVE_INITSCR
   HAVE_INNETGR
   HAVE_INOTIFY
   HAVE_INOTIFY_INIT
   HAVE_INO_T
   HAVE_INT16_T
   HAVE_INT32_T
   HAVE_INT64_T
   HAVE_INT8_T
   HAVE_INTPTR_T
   HAVE_IPRINT
   HAVE_IPV6
   HAVE_IPV6_V6ONLY
   HAVE_IRUSEROK
   HAVE_ISATTY
   HAVE_ITEM_COUNT
   HAVE_JANSSON
   HAVE_JSON_OBJECT
   HAVE_KERNEL_OPLOCKS_LINUX
   HAVE_KRB5
   HAVE_KRB5_ADDLOG_FUNC_NEED_CONTEXT
   HAVE_KRB5_ADDRESSES
   HAVE_KRB5_AUTH_CON_SETKEY
   HAVE_KRB5_CC_COPY_CACHE
   HAVE_KRB5_CC_GET_LIFETIME
   HAVE_KRB5_CONFIG_GET_BOOL_DEFAULT
   HAVE_KRB5_CONST_PAC
   HAVE_KRB5_CREATE_CHECKSUM
   HAVE_KRB5_CRYPTO
   HAVE_KRB5_CRYPTO_DESTROY
   HAVE_KRB5_CRYPTO_INIT
   HAVE_KRB5_C_VERIFY_CHECKSUM
   HAVE_KRB5_DATA_COPY
   HAVE_KRB5_ENCTYPE_TO_STRING
   HAVE_KRB5_ENCTYPE_TO_STRING_WITH_KRB5_CONTEXT_ARG
   HAVE_KRB5_FREE_ERROR_CONTENTS
   HAVE_KRB5_FREE_HOST_REALM
   HAVE_KRB5_FREE_UNPARSED_NAME
   HAVE_KRB5_FWD_TGT_CREDS
   HAVE_KRB5_GET_CREDS
   HAVE_KRB5_GET_CREDS_OPT_ALLOC
   HAVE_KRB5_GET_CREDS_OPT_SET_IMPERSONATE
   HAVE_KRB5_GET_DEFAULT_IN_TKT_ETYPES
   HAVE_KRB5_GET_HOST_REALM
   HAVE_KRB5_GET_INIT_CREDS_KEYBLOCK
   HAVE_KRB5_GET_INIT_CREDS_OPT_ALLOC
   HAVE_KRB5_GET_INIT_CREDS_OPT_FREE
   HAVE_KRB5_GET_INIT_CREDS_OPT_GET_ERROR
   HAVE_KRB5_GET_INIT_CREDS_OPT_SET_PAC_REQUEST
   HAVE_KRB5_GET_PW_SALT
   HAVE_KRB5_GET_RENEWED_CREDS
   HAVE_KRB5_KEYBLOCK_INIT
   HAVE_KRB5_KEYBLOCK_KEYVALUE
   HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK
   HAVE_KRB5_KRBHST_GET_ADDRINFO
   HAVE_KRB5_KRBHST_INIT
   HAVE_KRB5_KT_COMPARE
   HAVE_KRB5_KT_FREE_ENTRY
   HAVE_KRB5_KU_OTHER_CKSUM
   HAVE_KRB5_MAKE_PRINCIPAL
   HAVE_KRB5_MK_REQ_EXTENDED
   HAVE_KRB5_PDU_NONE_DECL
   HAVE_KRB5_PRINCIPAL_COMPARE_ANY_REALM
   HAVE_KRB5_PRINCIPAL_GET_COMP_STRING
   HAVE_KRB5_PRINCIPAL_GET_NUM_COMP
   HAVE_KRB5_PRINCIPAL_GET_REALM
   HAVE_KRB5_PRINCIPAL_GET_TYPE
   HAVE_KRB5_PRINCIPAL_SET_REALM
   HAVE_KRB5_PRINCIPAL_SET_TYPE
   HAVE_KRB5_PROMPT_TYPE
   HAVE_KRB5_REALM_TYPE
   HAVE_KRB5_SET_DEFAULT_IN_TKT_ETYPES
   HAVE_KRB5_SET_REAL_TIME
   HAVE_KRB5_STRING_TO_KEY
   HAVE_KRB5_STRING_TO_KEY_SALT
   HAVE_KRB5_WARNX
   HAVE_KRB_STRUCT_WINSIZE
   HAVE_LARGEFILE
   HAVE_LBER_LOG_PRINT_FN
   HAVE_LCHOWN
   HAVE_LDAP
   HAVE_LDAP_ADD_RESULT_ENTRY
   HAVE_LDAP_INIT
   HAVE_LDAP_INITIALIZE
   HAVE_LDAP_INIT_FD
   HAVE_LDAP_OPT_SOCKBUF
   HAVE_LDAP_SASL_WRAPPING
   HAVE_LDAP_SET_REBIND_PROC
   HAVE_LDWRAP
   HAVE_LIBACL
   HAVE_LIBARCHIVE
   HAVE_LIBCRYPT
   HAVE_LIBCUPS
   HAVE_LIBDBUS_1
   HAVE_LIBFORM
   HAVE_LIBGLIB_2_0
   HAVE_LIBGPGME
   HAVE_LIBJANSSON
   HAVE_LIBKRB5
   HAVE_LIBLBER
   HAVE_LIBLDAP
   HAVE_LIBLMDB
   HAVE_LIBMENU
   HAVE_LIBNCURSES
   HAVE_LIBPAM
   HAVE_LIBPANEL
   HAVE_LIBPOPT
   HAVE_LIBREADLINE
   HAVE_LIBREPLACE
   HAVE_LIBRESOLV
   HAVE_LIBSYSTEMD
   HAVE_LIBTASN1
   HAVE_LIBZ
   HAVE_LINK
   HAVE_LINUX_FALLOCATE
   HAVE_LINUX_INOTIFY
   HAVE_LINUX_IOCTL
   HAVE_LINUX_READAHEAD
   HAVE_LINUX_SPLICE
   HAVE_LINUX_THREAD_CREDENTIALS
   HAVE_LITTLE_ENDIAN
   HAVE_LMDB
   HAVE_LOFF_T
   HAVE_LONGJMP
   HAVE_LONG_LONG
   HAVE_LSEEK_HOLE_DATA
   HAVE_LSTAT
   HAVE_LUTIMES
   HAVE_MAKEDEV
   HAVE_MALLINFO
   HAVE_MDB_ENV_CREATE
   HAVE_MEMALIGN
   HAVE_MEMCPY
   HAVE_MEMMEM
   HAVE_MEMMOVE
   HAVE_MEMSET
   HAVE_MKDIR_MODE
   HAVE_MKDTEMP
   HAVE_MKNOD
   HAVE_MKNODAT
   HAVE_MKOSTEMP
   HAVE_MKTIME
   HAVE_MLOCK
   HAVE_MLOCKALL
   HAVE_MMAP
   HAVE_MREMAP
   HAVE_MUNLOCK
   HAVE_MUNLOCKALL
   HAVE_NATIVE_ICONV
   HAVE_NCURSES
   HAVE_NETGROUP
   HAVE_NEW_FIELD
   HAVE_NEW_FORM
   HAVE_NEW_LIBREADLINE
   HAVE_NEW_PANEL
   HAVE_NFTW
   HAVE_OFD_LOCKS
   HAVE_OPENAT
   HAVE_OPENPTY
   HAVE_OPEN_O_DIRECT
   HAVE_PAM_GET_DATA
   HAVE_PAM_RADIO_TYPE
   HAVE_PAM_RHOST
   HAVE_PAM_START
   HAVE_PAM_TTY
   HAVE_PAM_VSYSLOG
   HAVE_PATHCONF
   HAVE_PEERCRED
   HAVE_PIPE
   HAVE_POLL
   HAVE_POPT
   HAVE_POPTGETCONTEXT
   HAVE_POSIX_ACLS
   HAVE_POSIX_FADVISE
   HAVE_POSIX_FALLOCATE
   HAVE_POSIX_MEMALIGN
   HAVE_POSIX_OPENPT
   HAVE_PRCTL
   HAVE_PREAD
   HAVE_PREAD_DECL
   HAVE_PRINTF
   HAVE_PROGRAM_INVOCATION_SHORT_NAME
   HAVE_PTHREAD
   HAVE_PTHREAD_ATTR_INIT
   HAVE_PTHREAD_CREATE
   HAVE_PTHREAD_MUTEXATTR_SETROBUST
   HAVE_PTHREAD_MUTEX_CONSISTENT
   HAVE_PTRDIFF_T
   HAVE_PUTENV
   HAVE_PUTUTLINE
   HAVE_PUTUTXLINE
   HAVE_PWRITE
   HAVE_PWRITE_DECL
   HAVE_PYEMBED
   HAVE_PYEXT
   HAVE_QUOTACTL_LINUX
   HAVE_RAND
   HAVE_RANDOM
   HAVE_RCMD
   HAVE_READAHEAD_DECL
   HAVE_READLINK
   HAVE_READV
   HAVE_REALPATH
   HAVE_RENAME
   HAVE_RES_NSEARCH
   HAVE_RES_SEARCH
   HAVE_RL_COMPLETION_MATCHES
   HAVE_ROBUST_MUTEXES
   HAVE_RW_HINTS
   HAVE_SA_FAMILY_T
   HAVE_SA_SIGINFO_DECL
   HAVE_SECURE_GETENV
   HAVE_SECURE_MKSTEMP
   HAVE_SELECT
   HAVE_SENDFILE
   HAVE_SENDMSG
   HAVE_SETBUFFER
   HAVE_SETEGID
   HAVE_SETENV
   HAVE_SETENV_DECL
   HAVE_SETEUID
   HAVE_SETGID
   HAVE_SETGROUPS
   HAVE_SETHOSTENT
   HAVE_SETITIMER
   HAVE_SETLINEBUF
   HAVE_SETLOCALE
   HAVE_SETMNTENT
   HAVE_SETPGID
   HAVE_SETREGID
   HAVE_SETRESGID
   HAVE_SETRESGID_DECL
   HAVE_SETRESUID
   HAVE_SETRESUID_DECL
   HAVE_SETREUID
   HAVE_SETSID
   HAVE_SETUID
   HAVE_SET_MENU_ITEMS
   HAVE_SHARED_MMAP
   HAVE_SHOW_PANEL
   HAVE_SIGACTION
   HAVE_SIGBLOCK
   HAVE_SIGGETMASK
   HAVE_SIGLONGJMP
   HAVE_SIGPROCMASK
   HAVE_SIGSET
   HAVE_SIGSETMASK
   HAVE_SIG_ATOMIC_T_TYPE
   HAVE_SIMPLE_C_PROG
   HAVE_SIZE_T
   HAVE_SNPRINTF
   HAVE_SOCKET
   HAVE_SOCKETPAIR
   HAVE_SOCKLEN_T
   HAVE_SPLICE_DECL
   HAVE_SRAND
   HAVE_SRANDOM
   HAVE_SSIZE_T
   HAVE_SS_FAMILY
   HAVE_STATFS_F_FSID
   HAVE_STATVFS
   HAVE_STATVFS_F_FLAG
   HAVE_STAT_HIRES_TIMESTAMPS
   HAVE_STAT_ST_BLKSIZE
   HAVE_STAT_ST_BLOCKS
   HAVE_STRCASECMP
   HAVE_STRCASESTR
   HAVE_STRCHR
   HAVE_STRCPY
   HAVE_STRDUP
   HAVE_STRERROR
   HAVE_STRERROR_R
   HAVE_STRFTIME
   HAVE_STRNCASECMP
   HAVE_STRNCPY
   HAVE_STRNDUP
   HAVE_STRNLEN
   HAVE_STRPBRK
   HAVE_STRPTIME
   HAVE_STRSEP
   HAVE_STRSIGNAL
   HAVE_STRTOK_R
   HAVE_STRTOL
   HAVE_STRTOLL
   HAVE_STRTOQ
   HAVE_STRTOULL
   HAVE_STRTOUQ
   HAVE_STRUCT_ADDRINFO
   HAVE_STRUCT_IFADDRS
   HAVE_STRUCT_MSGHDR_MSG_CONTROL
   HAVE_STRUCT_SIGEVENT
   HAVE_STRUCT_SIGEVENT_SIGEV_VALUE_SIVAL_PTR
   HAVE_STRUCT_SOCKADDR
   HAVE_STRUCT_SOCKADDR_IN6
   HAVE_STRUCT_SOCKADDR_STORAGE
   HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
   HAVE_STRUCT_STAT_ST_RDEV
   HAVE_STRUCT_TIMESPEC
   HAVE_STRUCT_WINSIZE
   HAVE_ST_RDEV
   HAVE_SWAB
   HAVE_SYMLINK
   HAVE_SYSCALL
   HAVE_SYSCONF
   HAVE_SYSLOG
   HAVE_TCP_USER_TIMEOUT
   HAVE_TEXTDOMAIN
   HAVE_TGETENT
   HAVE_TIMEGM
   HAVE_UCONTEXT_T
   HAVE_UINT16_T
   HAVE_UINT32_T
   HAVE_UINT64_T
   HAVE_UINT8_T
   HAVE_UINTPTR_T
   HAVE_UMASK
   HAVE_UNAME
   HAVE_UNIXSOCKET
   HAVE_UNSETENV
   HAVE_UNSHARE_CLONE_FS
   HAVE_UPDWTMP
   HAVE_UPDWTMPX
   HAVE_USLEEP
   HAVE_UTIMBUF
   HAVE_UTIME
   HAVE_UTIMENSAT
   HAVE_UTIMES
   HAVE_UX_UT_HOST
   HAVE_U_CHAR
   HAVE_U_INT32_T
   HAVE_VASPRINTF
   HAVE_VA_COPY
   HAVE_VDPRINTF
   HAVE_VISIBILITY_ATTR
   HAVE_VOLATILE
   HAVE_VSNPRINTF
   HAVE_VSYSLOG
   HAVE_WAIT4
   HAVE_WAITPID
   HAVE_WARN
   HAVE_WARNX
   HAVE_WNO_FORMAT_TRUNCATION
   HAVE_WNO_STRICT_OVERFLOW
   HAVE_WNO_UNUSED_FUNCTION
   HAVE_WORKING_STRPTIME
   HAVE_WRITEV
   HAVE_WS_XPIXEL
   HAVE_WS_YPIXEL
   HAVE_XATTR_SUPPORT
   HAVE_XATTR_XATTR
   HAVE_ZLIB
   HAVE__RES
   HAVE__VA_ARGS__MACRO
   HAVE___ATOMIC_ADD_FETCH
   HAVE___ATOMIC_ADD_LOAD
   HAVE___ATTRIBUTE__
   HAVE___SYNC_ADD_AND_FETCH
   HAVE___SYNC_FETCH_AND_ADD
   HAVE___THREAD

--with Options:
   WITH_ADS
   WITH_AUTOMOUNT
   WITH_PAM
   WITH_PAM_MODULES
   WITH_PTHREADPOOL
   WITH_QUOTAS
   WITH_SMB1SERVER
   WITH_SPOTLIGHT
   WITH_SYSLOG
   WITH_TEVENT_GLIB_GLUE
   WITH_WINBIND

Build Options:
   AD_DC_BUILD_IS_ENABLED
   ALLOW_GNUTLS_AEAD_CIPHER_ENCRYPTV2_AES_CCM
   ALLOW_GNUTLS_AEAD_CIPHER_ENCRYPTV2_AES_GCM
   BOOL_DEFINED
   BROKEN_NISPLUS_INCLUDE_FILES
   COMPILER_SUPPORTS_LL
   CONFIG_H_IS_FROM_SAMBA
   DEFAULT_DOS_CHARSET
   DEFAULT_UNIX_CHARSET
   ENABLE_GPGME
   GETCWD_TAKES_NULL
   INLINE_MACRO
   KRB5_CONST_PAC_GET_BUFFER
   KRB5_CREDS_OPT_FREE_REQUIRES_CONTEXT
   KRB5_PRINC_REALM_RETURNS_REALM
   LDAP_DEPRECATED
   LDAP_SET_REBIND_PROC_ARGS
   LIBREPLACE_NETWORK_CHECKS
   LINUX
   LINUX_SENDFILE_API
   REALPATH_TAKES_NULL
   RETSIGTYPE
   SAMBA4_USES_HEIMDAL
   SEEKDIR_RETURNS_VOID
   SHLIBEXT
   SIZEOF_BLKCNT_T_8
   SIZEOF_BOOL
   SIZEOF_CHAR
   SIZEOF_DEV_T
   SIZEOF_INO_T
   SIZEOF_INT
   SIZEOF_INT16_T
   SIZEOF_INT32_T
   SIZEOF_INT64_T
   SIZEOF_INT8_T
   SIZEOF_LONG
   SIZEOF_LONG_LONG
   SIZEOF_OFF_T
   SIZEOF_SHORT
   SIZEOF_SIZE_T
   SIZEOF_SSIZE_T
   SIZEOF_TIME_T
   SIZEOF_UINT16_T
   SIZEOF_UINT32_T
   SIZEOF_UINT64_T
   SIZEOF_UINT8_T
   SIZEOF_VOID_P
   SRCDIR
   STAT_STATVFS
   STAT_ST_BLOCKSIZE
   STDC_HEADERS
   STRING_SHARED_MODULES
   STRING_STATIC_MODULES
   SUMMARY_PASSES
   SYSCONF_SC_NGROUPS_MAX
   SYSCONF_SC_NPROCESSORS_ONLN
   SYSCONF_SC_PAGESIZE
   SYSTEM_UNAME_MACHINE
   SYSTEM_UNAME_RELEASE
   SYSTEM_UNAME_SYSNAME
   SYSTEM_UNAME_VERSION
   TALLOC_BUILD_VERSION_MAJOR
   TALLOC_BUILD_VERSION_MINOR
   TALLOC_BUILD_VERSION_RELEASE
   TEVENT_NUM_SIGNALS
   TIME_T_MAX
   TIME_T_SIGNED
   TIME_WITH_SYS_TIME
   USE_TDB_MUTEX_LOCKING
   USING_EMBEDDED_HEIMDAL
   USING_SYSTEM_POPT
   VALUEOF_GNUTLS_CIPHER_AES_128_CFB8
   VALUEOF_GNUTLS_MAC_AES_CMAC_128
   VALUEOF_NSIG
   VALUEOF_SIGRTMAX
   VALUEOF_SIGRTMIN
   VALUEOF__NSIG
   VOID_RETSIGTYPE
   WINEXE_LDFLAGS
   WORKING_GETCONF_LFS_CFLAGS
   XSLTPROC_MANPAGES
   _GNU_SOURCE
   _HAVE_SENDFILE
   _POSIX_FALLOCATE_CAPABLE_LIBC
   _SAMBA_BUILD_
   _XOPEN_SOURCE_EXTENDED
   __TIME_T_MAX
   idmap_ad_init
   idmap_autorid_init
   idmap_hash_init
   idmap_rfc2307_init
   idmap_rid_init
   idmap_script_init
   idmap_tdb2_init
   offset_t
   static_decl_auth
   static_decl_charset
   static_decl_gpext
   static_decl_idmap
   static_decl_nss_info
   static_decl_pdb
   static_decl_perfcount
   static_decl_vfs
   static_init_auth
   static_init_charset
   static_init_gpext
   static_init_idmap
   static_init_nss_info
   static_init_pdb
   static_init_perfcount
   static_init_vfs
   uint_t
   vfs_acl_tdb_init
   vfs_acl_xattr_init
   vfs_aio_fork_init
   vfs_aio_pthread_init
   vfs_audit_init
   vfs_btrfs_init
   vfs_cap_init
   vfs_catia_init
   vfs_commit_init
   vfs_crossrename_init
   vfs_default_quota_init
   vfs_dirsort_init
   vfs_expand_msdfs_init
   vfs_extd_audit_init
   vfs_fake_perms_init
   vfs_fileid_init
   vfs_fruit_init
   vfs_full_audit_init
   vfs_glusterfs_fuse_init
   vfs_gpfs_init
   vfs_linux_xfs_sgid_init
   vfs_media_harmony_init
   vfs_offline_init
   vfs_posix_eadb_init
   vfs_preopen_init
   vfs_readahead_init
   vfs_readonly_init
   vfs_recycle_init
   vfs_shadow_copy2_init
   vfs_shadow_copy_init
   vfs_shell_snap_init
   vfs_snapper_init
   vfs_streams_depot_init
   vfs_streams_xattr_init
   vfs_syncops_init
   vfs_time_audit_init
   vfs_unityed_media_init
   vfs_virusfilter_init
   vfs_widelinks_init
   vfs_worm_init
   vfs_xattr_tdb_init

Cluster support features:
   NONE

Type sizes:
   sizeof(char):         1
   sizeof(int):          4
   sizeof(long):         8
   sizeof(long long):    8
   sizeof(uint8_t):      1
   sizeof(uint16_t):     2
   sizeof(uint32_t):     4
   sizeof(short):        2
   sizeof(void*):        8
   sizeof(size_t):       8
   sizeof(off_t):        8
   sizeof(ino_t):        8
   sizeof(dev_t):        8

Builtin modules:
   vfs_default vfs_not_implemented vfs_posixacl auth_builtin auth_sam auth_winbind pdb_smbpasswd pdb_tdbsam auth_unix nss_info_template idmap_tdb idmap_passdb idmap_nss pdb_samba_dsdb auth_samba4 vfs_dfs_samba4 pdb_ldapsam idmap_ldap
[root@rocky9-samba43 samba-4.18.4]#

PATHを通す

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

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

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

[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# vi /etc/bashrc
 :
 :
# add PATH
PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin <---★この行を追加★
 :
[root@rocky9-samba43 samba-4.18.4]#
[root@rocky9-samba43 samba-4.18.4]# exit
exit
ubuntu@linuc300:~$
ubuntu@linuc300:~$ lxc exec rocky9-samba43 -- bash
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# 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-samba43 ~]#
[root@rocky9-samba43 ~]# smbd --version
Version 4.18.4
[root@rocky9-samba43 ~]#

ライブラリを配置する

libnss_winbind.soとpam_winbind.soを配置する。
(別記事 394.2 認証と許可およびWinbind 参照)

[root@rocky9-samba42 ~]#
[root@rocky9-samba42 ~]# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib64/libnss_winbind.so.2
[root@rocky9-samba42 ~]#
[root@rocky9-samba42 ~]# ldconfig
[root@rocky9-samba42 ~]#
[root@rocky9-samba42 ~]# ldconfig -p | grep winbind
        libnss_winbind.so.2 (libc6,x86-64) => /lib64/libnss_winbind.so.2
[root@rocky9-samba42 ~]#
[root@rocky9-samba42 ~]#
[root@rocky9-samba42 ~]# ln -s /usr/local/samba/lib/security/pam_winbind.so /lib64/security/pam_winbind.so
[root@rocky9-samba42 ~]#

設定ファイルを配置する

設定ファイルは「/usr/local/samba/etc/smb.conf」です。
インストールするとファイルが配置されていますが、ソースを展開したディレクトリにサンプルファイル(samba-4.18.4/examples/smb.conf.default)があるのでこれをコピーします。
(別記事 Appendix ソースからインストールしたSamba4のsmb.conf 参照)

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# smbd -b | grep CONFIGFILE
   CONFIGFILE: /usr/local/samba/etc/smb.conf
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# cp samba-4.18.4/examples/smb.conf.default /usr/local/samba/etc/smb.conf
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# ls -la /usr/local/samba/etc/smb.conf
-rw-r--r-- 1 root root 7933  76 00:27 /usr/local/samba/etc/smb.conf
[root@rocky9-samba43 ~]#

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

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# testparm -s
Load smb config files from /usr/local/samba/etc/smb.conf
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)

Server role: ROLE_STANDALONE

# Global parameters
[global]
        dns proxy = No
        log file = /usr/local/samba/var/log.%m
        max log size = 50
        server role = standalone server
        server string = Samba Server
        workgroup = MYGROUP
        idmap config * : backend = tdb


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


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

サービスに追加する

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

ソースを展開したディレクトリにサービスに追加するためのスクリプトファイルがあるのでこれを/etc/systemd/system/にコピーします。
・samba-4.18.4/bin/default/packaging/systemd/smb.service
・samba-4.18.4/bin/default/packaging/systemd/nmb.service
・samba-4.18.4/bin/default/packaging/systemd/winbind.service
・samba-4.18.4/bin/default/packaging/systemd/samba.service

Samba単体でファイルサーバーを構築したり、既存のドメインに参加するならsmb,nmb,winbindを使う、Sambaでドメインコントローラーを構築するならsambaを使う。

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# ls -l samba-4.18.4/bin/default/packaging/systemd/
合計 4
-rw-r--r-- 1 root root 456  75 23:47 nmb.service
-rw-r--r-- 1 root root 458  75 23:47 samba.service
-rw-r--r-- 1 root root 502  75 23:47 smb.service
-rw-r--r-- 1 root root 437  75 23:47 winbind.service
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# cp samba-4.18.4/bin/default/packaging/systemd/* /etc/systemd/system/
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# ls -l /etc/systemd/system/
合計 11
lrwxrwxrwx 1 root root  37  311 11:09 ctrl-alt-del.target -> /usr/lib/systemd/system/reboot.target
lrwxrwxrwx 1 root root  57  311 11:17 dbus-org.freedesktop.nm-dispatcher.service -> /usr/lib/systemd/system/NetworkManager-dispatcher.service
lrwxrwxrwx 1 root root  43  311 11:10 dbus.service -> /usr/lib/systemd/system/dbus-broker.service
drwxr-xr-x 2 root root   3  311 11:09 getty.target.wants
drwxr-xr-x 2 root root   6  311 11:17 multi-user.target.wants
drwxr-xr-x 2 root root   3  311 11:17 network-online.target.wants
-rw-r--r-- 1 root root 439  76 01:11 nmb.service      <---★
-rw-r--r-- 1 root root 458  76 01:11 samba.service    <---★
-rw-r--r-- 1 root root 485  76 01:11 smb.service      <---★
drwxr-xr-x 2 root root   3  311 11:09 sockets.target.wants
drwxr-xr-x 2 root root   7  311 11:10 sysinit.target.wants
drwxr-xr-x 2 root root   5  75 23:09 timers.target.wants
-rw-r--r-- 1 root root 424  76 01:12 winbind.service  <---★
[root@rocky9-samba43 ~]#

サービスを起動する

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

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

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

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

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

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl status smb
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl status nmb
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl status winbind
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl status samba
[root@rocky9-samba43 ~]#

サービスを停止する

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl stop smb
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl stop nmb
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl stop winbind
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl stop samba
[root@rocky9-samba43 ~]#

サービスを再起動する

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl restart smb
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl restart nmb
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl restart winbind
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl restart samba
[root@rocky9-samba43 ~]#

自動起動を有効にする

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl enable smb
[root@rocky9-samba43 ~]# systemctl is-enabled smb
enabled
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl enable nmb
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl is-enabled nmb
enabled
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl enable winbind
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl is-enabled winbind
enabled
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl enable samba
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl is-enabled samba
enabled
[root@rocky9-samba43 ~]#

自動起動を無効にする

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl disable smb
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl is-enabled smb
disabled
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl disable nmb
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl is-enabled nmb
disabled
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl disable winbind
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl is-enabled winbind
disabled
[root@rocky9-samba43 ~]#

[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl disable samba
[root@rocky9-samba43 ~]#
[root@rocky9-samba43 ~]# systemctl is-enabled samba
disabled
[root@rocky9-samba43 ~]#

おつかれさまでした。

これでSamba4の準備は整いました。
今回はRockyLinux9でdnf(yum)コマンドでインストールできるパッケージ版のSambaではドメインコントローラーの構築ができないという機能制限があるためソースからインストールすることになりましたが、単にファイルサーバーとして動かすけ、既存のドメインに参加するだけなど、パッケージ版の機能制限に該当しなければパッケージ版が楽チンで良いと思います。

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


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