MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
インストール - Sambaのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
インストール - Samba
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Sambaは、Linux上でWindowsのネットワーク機能を実現するソフトウェアである。<br> Sambaを導入すると、Windowsのファイルサーバと同じ役割を果たす、または、WindowsファイルサーバをLinuxから利用することもできる。<br> つまり、Windowsファイルサーバのクライアント機能も持っている。<br> <br> その他、プリンタサーバの機能や、企業で使用されるWindowsドメイン(Active Directory)のサーバになる機能も持つ。<br> Samba 4以降において、Windowsのドメインコントローラとなることができるため、既存のWindowsサーバを丸ごと置き換えることも可能である。<br> <br> Sambaを使用してファイルサーバを構築するには、クライアント端末からアクセスができるようにするため、既存のネットワークに接続する必要がある。<br> また、サーバを静的IPアドレスに設定することが必要である。<br> <br> <center> {| class="wikitable" | style="background-color:#fefefe;" |- ! style="background-color:#66CCFF;" | サーバプロセス ! style="background-color:#66CCFF;" | 説明 |- | smbd || ファイル共有、認証等 |- | nmbd || ブラウジング機能、NetBIOS名前解決、WINSサーバ等 |- | winbindd || Winbind機能 |} </center> <br> <center> {| class="wikitable" | style="background-color:#fefefe;" |- ! style="background-color:#66CCFF;" | ポート番号 ! style="background-color:#66CCFF;" | 説明 |- | 137 / UDP || NetBIOS名前解決やブラウジング |- | 138 / UDP || NetBIOS名前解決やドメインログオン |- | 139 / TCP || ファイル共有 |- | 445 / TCP || ファイル共有 |} </center> <br><br> == Sambaのインストール == ==== パッケージ管理システムからインストール ==== 最新パッケージリストを取得する。<br> # CentOS sudo yum update # SUSE sudo zypper update # Raspberry Pi sudo apt-get update <br> Sambaをインストールする。<br> # CentOS sudo yum install samba samba-client # SUSE sudo zypper install samba samba-client # Raspberry Pi sudo apt-get install samba <br> ==== ソースコードからインストール ==== Sambaのビルドに必要なライブラリをインストールする。<br> Kerberos 1.15.1以降が必要となることに注意する。<br> # CentOS sudo yum install tar gcc gdb rpcgen docbook-style-xsl dbus-devel readline-devel zlib-devel gnutls-devel systemd-devel \ gpgme-devel keyutils-libs-devel krb5-workstation jansson-devel libacl-devel libaio-devel cups-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 \ python36-devel python3-cryptography python3-dns python3-gpg python3-markdown # SUSE sudo zypper install tar acl attr autoconf bison flex ccache hostname gawk sed rsync pkgconfig htop lcov rpcgen rpcsvc-proto-devel \ tree patch procps psmisc rng-tools gcc gdb glib2-devel glibc-locale ncurses-devel readline-devel zlib-devel dbus-1-devel \ libicu-devel libcap-devel libpcap-devel libjansson-devel keyutils-devel krb5-server krb5-client krb5-devel \ libacl-devel libaio-devel libarchive-devel libattr-devel libblkid-devel libtasn1-devel systemd-devel \ libxml2-devel libxslt libxslt-devel docbook_4 docbook5-xsl-stylesheets lmdb lmdb-devel openldap2-devel pam-devel \ gnutls-devel gpgme-devel popt-devel cups-devel libbsd-devel libnsl-devel liburing2-devel libbd_dm-devel \ perl perl-ExtUtils-MakeMaker perl-Parse-Yapp perl-Archive-Tar-Wrapper perl-JSON perl-JSON-XS perl-Test-Base \ python3-devel python3-cryptography python3-dnspython python3-gpg python3-Markdown python3-semanage \ python3-talloc-devel python3-iso8601 python3-pyasn1 python3-setproctitle policycoreutils-python \ libtalloc-devel libcmocka-devel libtdb-devel tracker-devel libnscd-devel libuuid-devel libunwind-devel \ xfsprogs-devel glusterfs-devel libtirpc-devel libntirpc-devel libavahi-devel chrpath libcephfs-devel \ lsb-release system-user-nobody dnf-utils \ bind-utils # 内部DNSサーバを使用する場合 # Raspberry Pi # インストールには、BIND DNSサーバを含んでいる # もし、Sambaにおいて、内部DNSサーバを使用する場合、BINDパッケージは省略できる # ただし、ダイナミックDNSのサポートを有効にするため、nsupdateを含むパッケージが必要となる sudo apt-get install acl attr autoconf bison flex pkg-config \ build-essential gdb libncurses5-dev libreadline-dev \ debhelper dnsutils docbook-xml docbook-xsl xsltproc krb5-user \ libacl1-dev libaio-dev libarchive-dev libattr1-dev libblkid-dev libbsd-dev \ libcap-dev libcups2-dev libgnutls28-dev nettle-dev libgpgme-dev libjansson-dev \ libldap2-dev libpam0g-dev libpopt-dev \ perl perl-modules libparse-yapp-perl libjson-perl \ python-all-dev python-dev python3-dev python-crypto python-dbg python-dnspython \ python3-dnspython python-gpgme python3-gpgme python-markdown python3-markdown \ zlib1g-dev liblmdb-dev lmdb-utilsa \ bind9utils # 内部DNSサーバを使用する場合 <br> [https://download.samba.org/pub/samba/ Sambaの公式Webサイト]にアクセスして、ソースコードをダウンロードする。<br> ダウンロードしたファイルを解凍する。<br> tar xf samba-<バージョン>.tar.gz cd samba-<バージョン> <br> Sambaをビルドおよびインストールする。<br> <u>ビルドディレクトリを作成する場合、Sambaのビルドに失敗することに注意する。</u><br> ./configure --prefix=<Sambaのインストールディレクトリ> --enable-cups --with-systemd --systemd-install-services make -j $(nproc) make install <br> SambaのSystemdサービスファイルを、/etc/systemd/systemディレクトリにコピーする。<br> sudo cp /<Sambaのインストールディレクトリ>/lib/systemd/system/* /etc/systemd/system <br> SambaのSystemdサービスファイルを読み込む。<br> sudo systemctl daemon-reload <br><br> == Sambaの設定 == Sambaの設定ファイルを作成する。<br> # パッケージ管理システムからSambaをインストールしている場合 sudo vi /etc/samba/smb.conf # ソースコードからSambaをインストールしている場合 vi /<Sambaのインストールディレクトリ>/etc/smb.conf <br> # /<Sambaのインストールディレクトリ>/etc/smb.confファイル # smb.conf is the main Samba configuration file. # Samba全体の設定 [global] unix charset = UTF-8 dos charset = CP932 server string = Samba Server %v workgroup = <Windowsネットワーク名またはドメイン名) 例. WORKGROUP> passdb backend = tdbsam printing = cups printcap name = cups printcap cache time = 750 cups options = raw map to guest = Bad User logon path = \\%L\profiles\.msprofile logon home = \\%L\%U\.9xprofile logon drive = P: usershare allow guests = Yes security = USER smb passwd file = <Sambaのユーザパスワードファイルのパス(smbpasswdコマンドを使用する場合) 例. /<Sambaのインストールディレクトリ>/etc/samba/smbpasswd> guest account = nobody unix password sync = no log file = <Sambaのログファイルのパス 例. /var/log/samba/log.%m> max log size = 50 socket options = <ソケットプオプション 例. TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192> dns proxy = No # アクセス制限(許可する範囲) hosts allow = <許可するIPアドレスまたはドメイン名 例. 192.168.1. 127.0. myhost.mynet.edu.au> # Linuxユーザの各ホームディレクトリを一括して共有するためのセクション # 各ユーザごとにホームディレクトリの共有を定義する必要がない [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes guest ok = No [profiles] comment = Network Profiles Service path = %H read only = No store dos attributes = Yes create mask = 0600 directory mask = 0700 guest ok = No [users] comment = All users path = /home read only = No inherit acls = Yes veto files = /aquota.user/groups/shares/ [groups] comment = All groups path = /home/groups read only = No inherit acls = Yes guest ok = No # 共有名が存在するプリンタ (ユーザ名はprintcap) # サービスにゲストのアクセス許可が無く、クライアントからユーザ名が与えられていない場合は、ユーザ名はプリンタの名前に設定される [printers] comment = All Printers path = /var/tmp printable = Yes # プリンタ共有として利用する print ok = Yes # プリンタ共有として利用する create mask = 0600 browseable = No # Windowsがプリンタドライバの自動ダウンロードを行う際の共有名を指定する特殊なセクション # Windows側でプリンタドライバが無い場合、[print$]セクションからドライバを検索する [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @ntadmin root force group = ntadmin create mask = 0664 directory mask = 0775 # 任意の共有ディレクトリ [<共有ディレクトリ名 例. Share>] comment = Samba on Linux path = <共有ディレクトリのパス 例. /home/<ユーザ名>/Public> # 共有ディレクトリのパスを指定する read only = No # 読み込みのみにするかどうかを指定する writable = Yes # 書き込みを許可するかどうかを指定する #read list = <ユーザ名またはグループ名> # 読み込みが例外的に許可されるユーザを指定する (グループを指定する時は@<グループ名>を使用する) #write list = <ユーザ名またはグループ名> # 書き込みが例外的に許可されるユーザを指定する (グループを指定する時は@<グループ名>を使用する) browsable = Yes # ブラウジングした時に表示されるかどうかを指定する # ただし、共有名を直接指定する場合もアクセスすることができる public = Yes # ゲストログインを許可するかどうかを指定する (publicキーとguest okキーは同じ意味) guest ok = Yes # ゲストログインを許可するかどうかを指定する (publicキーとguest okキーは同じ意味) #force user = <ユーザ名> # 共有内に作成するファイルおよびディレクトリにおいて、所有者を強制的に指定したユーザにする #force group = <グループ名> # 共有内に作成するファイルおよびディレクトリにおいて、所有グループを強制的に指定したグループにする #veto files = <ファイル名およびディレクトリ名> # 表示およびアクセスさせないファイルやディレクトリを指定する #hide dot files = No # 隠し属性を適用するかどうかを指定する #hide files = <ファイル名およびディレクトリ名> # ファイルおよびディレクトリを表示させないファイル名またはディレクトリ名を指定する # ただし、アクセスは可能である #available = Yes #valid users = <Sambaのユーザ名1またはグループ名1> <Sambaのユーザ名2またはグループ名2> ... # アクセス可能なユーザを指定する (グループを指定する時は@<グループ名>を使用する) <br> Sambaの設定ファイルが正常に設定されているかどうかを確認する。<br> cd <Sambaのインストールディレクトリ> sudo ./testparm <br><br> == Sambaの起動および停止 == Sambaを起動する。<br> sudo systemctl start smb nmb <br> もし、ソースコードからSambaをインストールしている場合において、Sambaが起動しない場合、/<Sambaのインストールディレクトリ>/var/run/ncalrpcディレクトリを削除する。<br> sudo rm -r /<Sambaのインストールディレクトリ>/var/run/ncalrpc <br> Sambaを再起動する。<br> sudo systemctl restart smb nmb <br> Sambaを停止する。<br> sudo systemctl stop smb nmb <br><br> == Sambaの設定 == ホームディレクトリにSambaで使用する共有ディレクトリを作成する。<br> mkdir ~/Common <br> Samba の設定ファイルであるsmb.confを編集する。<br> sudo vi /etc/samba/smb.conf <br> smb.confの末尾に以下の記述を追加して保存する。<br> # [global]セクションの直下に、以下の2行を追記する unix charset = UTF-8 dos charset = CP932 # [global]セクションのworkgroupキー # ドメインを設定している場合は変更する workgroup = WORKGROUP # [global]セクションのhosts allowキーおよび各共有設定のセクションに追記 # アクセス制限を行う場合は、アクセスを許可するIPアドレスを指定する hosts allow = 192.168.2. 192.168.1.20/24 # 126行目あたり : 認証なしでアクセスする場合は追記する security = <ユーザ名> passdb backend = tdbsam map to guest = Bad User # 末尾に以下を追記する [Common] comment = Shared Directory on Samba path = /home/<ユーザ名>/Common read only = no browsable = yes public = no guest ok = no available = yes valid users = <Sambaに登録したユーザ名1> <Sambaに登録したユーザ名2> <Sambaに登録したユーザ名3> ... #force user = <サーバのユーザ名> <br> 設定項目の意味を、以下に示す。<br> * available, valid users *: 以下の2つをセットで設定する時、hogeユーザ以外はログインできない。 *: available = yes *: valid users = hoge *: <br> * force user *: どのユーザでログインしても、内部的にhogeでログインして接続する。この時、そのユーザ名とパスワードが求められる。 *: force user = hoge *: <br> * public, guest ok *: パスワードなしでアクセスするためguestを許可する。publicキーとguest okキーは同じ意味のキーである。 *: public = yes *: guest ok = yes *: <br> * map to guest *: Sambaにアクセスする時、有効なユーザとして認証されなかった場合の動作を指定するパラメータである。 *: <br> *: 設定値を以下に示す。 ** Never **: 不正なパスワードによるユーザのログイン要求を拒否して、ゲスト認証は許可しない。 ** Bad User **: 存在するユーザに対する不正なパスワードによるログイン要求は拒否する。 **: 存在しないユーザを指定された場合は、ゲスト認証であるとみなして、guest accountパラメータに定義されたユーザでログインする。 ** Bad Password **:存在しないユーザを指定された場合に加えて、存在するユーザに対する不正なパスワードによるログイン要求も、ゲスト認証であるとみなして、 **: guest accountパラメータに定義されたユーザでログインする。 ** Bad Uid **: Sambaがドメインモードのセキュリティで構成されている環境において、認証が成功したにも関わらずUNIX側のユーザアカウントが存在しない場合に、 **: guest accountパラメータに定義されたユーザでログインする。 **: ただし、Sambaでwinbinddが機能している場合、WindowsのユーザがUnixのユーザとして動作できるようになるため、 **: 認証に成功したにも関わらずUNIX側のユーザアカウントが存在しない、ということは発生しない。 **: そのため、winbinddが機能するSamba 3以降ではBad Uidはほとんど利用されていない。 **: <br> **: なお、Samab 2.x系では、Bad Uidがデフォルトとして設定されている。 <br> Sambaを再起動する。<br> sudo systemctl restart smbd sudo systemctl restart nmbd <br> ファイアーウォールを有効にしている場合は、Sambaサービスの許可が必要である。<br> sudo firewall-cmd --permanent --add-service=samba または sudp firewall-cmd --permanent --add-port=445/tcp sudo firewall-cmd --reload <br> SELinuxを有効にしている場合は、SELinuxコンテキストの変更が必要である。<br> sudo setsebool -P samba_enable_home_dirs on sudo restorecon -R /home/<ユーザ名>/Common <br><br> == 動作の確認 == Windowsからアクセスする場合、エクスプローラまたは[ファイル名を指定して実行]にて、<br> 以下に示すように、IPアドレスまたはホスト名を入力して、共有ディレクトリが表示できるか確認する。<br> \\<サーバのIPアドレス> または \\<サーバのホスト名> <br><br> == Sambaへのユーザ登録 == Sambaは独自でユーザの管理をするので、Sambaへのユーザ登録をすることができる。<br> <br> Sambaと通常サーバは、別々にユーザを管理するが、同一のユーザ名とパスワードで問題ない。<br> クライアントからSambaにアクセスしたときに、認証画面において、ユーザ名とパスワードを入力することになる。<br> <br> Sambaのユーザ名とパスワードを登録する方法を、以下に示す。<br> <u>ただし、登録できるユーザは、既にサーバに存在するユーザのみである。</u><br> <br> また、Sambaのユーザ登録のコマンドは、Samba2.xでは<code>smbpasswd</code>コマンド、Samba3.xでは<code>pdbedit</code>コマンドとなる。<br> # Sambaのユーザ名の一覧を表示 sudo pdbedit -L # 詳細なユーザ名の一覧を表示 sudo pdbedit -vL # smbpasswdスタイルでSambaのユーザ名の一覧を表示 sudo pdbedit -wL # ユーザを登録する (パスワードを2回入力して設定する) sudo pdbedit -a <ユーザ名> # Sambaのユーザを削除する sudo pdbedit -x <ユーザ名> <br> Sambaユーザのパスワードを変更する場合、<code>smbpasswd</code>コマンドを使用する。<br> sudo smbpasswd <ユーザ名> <br> 次に、/etc/samba/smb.confファイルを以下のように編集する。<br> sudo vi /etc/samba/smb.conf <br> # /etc/samba/smb.confファイル public = no # force user = pi # コメントする valid users = <登録するユーザ名> <br> 最後に、Sambaを再起動する。<br> sudo systemctl restart smbd sudo systemctl restart nmbd <br> Sambaユーザのパスワードがサーバとは別管理になる理由は、<br> Linuxのパスワード管理の暗号化方式と、Sambaのパスワード管理の暗号化方式が異なるためである。<br> Sambaは、Windowsのパスワード管理の暗号化に合わせているため、同一のユーザ名とパスワードであっても、Sambaに登録をする。<br> <br> 暗号化方式を統一することもできるが、セキュリティ面から標準の設定の方がよい。<br> <br><br> __FORCETOC__ [[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
インストール - Samba
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse