0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LinuC 202「Sambaの設定と管理」を見てSambaサーバ(CentOS7)-Sambaクライアント(Mac OSX)間でファイル共有

Last updated at Posted at 2020-08-30

LinuC 202「2.11.1 Sambaの設定と管理」を見て、Sambaサーバ(CentOS7)-Sambaクライアント(Mac OSX)間でファイル共有をしてみた。
(以降、Microsoftネットワーク云々の話があるけど、全くWindows端末が登場しなかったりする)

この記事のアジェンダ

  • Microsoftネットワークの基本概念について
  • ファイル共有できるようにsmb.confをカスタマイズ
  • Sambaのユーティリティを紹介

Microsoftネットワークの基本概念

図で説明したほうがよさそうだけど、ひとまずテキストで説明。

  • ワークグループ

    • コンピュータを一括りにまとめる単位
  • マスターブラウザ

    • ワークグループ内のホストを管理するホスト
    • セグメント上に1台存在する
  • ドメイン

    • NTドメイン
      • Windows NTで利用されるユーザ管理の仕組み
      • ホストをドメイン単位でグループ化
      • DNSのドメインとは別物なので注意
    • ADドメイン
      • Windows 2000 Server以降で採用されているディレクトリサービス
      • NTドメインと異なりツリーで大規模なドメインを管理できる
  • ドメインコントローラ (認証サーバ)

    • ドメイン内のユーザにログオン認証を提供
    • ドメインにログオンすれば共有リソースに認証なしでアクセスできるようになる
  • NetBIOS

    • MicrosoftネットワークのAPI
    • ホストにNetBIOS名を割り当て、識別する
  • WINS

    • NetBIOSをTCP/IP上で使えるようにするためにNetBIOS over TCP/IPという仕組みがある
    • NetBIOS over TCP/IPでIPとNetBIOS名の名前解決をする時に使う
    • WINS: WIndows Internet Naming Service

ファイル共有できるようにsmb.confをカスタマイズ

Sambaは次の3つのプロセスが連携している。

  • smbd ファイル共有、認証
  • nmbd ブラウジング、NetBIOS名前解決、WINSサーバ
  • winbindd Winbind機能

*windinddは必須ではないっぽい

設定は /etc/samba/smb.conf ファイルで行う。
smb.confは [global]セクション, [homes]セクション, [printers]セクション, 自作セクションで構成されている。
以下、1つずつ詳細を見ていく。なお、今回はプリンタ共有の話([printers]セクション)は省略。

[global]セクション

Sambaの全体設定を行うパート

ひとまずファイル共有したい場合は次のように設定する。

/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server role = AUTO
server string = SAMBA SERVER Version %v
netbios name = buzz
security = user
passdb backend = tdbsam
dos charset = CP932
wins support = yes
# printing = cups
# printcap name = cups
load printers = no
disable spoolss = yes
# cups options = raw

workgroup = WORKGROUP # Sambaサーバが所属するワークグループ名
server role = AUTO # 動作モード (AUTOでsecurityパラメータに従った動作になる)
server string = SAMBA SERVER Version %v # サーバの説明
netbios name = buzz # NetBIOS名
security = user # 認証方法 (Sambaユーザのアカウントとパスワードで認証)
passdb backend = tdbsam # バイナリ形式のデータベースにユーザ情報を格納
dos charset = CP932
wins support = yes # WINSサーバとして動作させる
load printers = no
disable spoolss = yes

* securityパラメータの補足
ドメインコントローラ認証の場合 security = DOMAIN と設定する
ADドメインにkerberos認証を行う場合 security = ADS と設定する

[homes]セクション

UNIXユーザのホームディレクトリ共有設定を行うパート

/etc/samba/smb.conf
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes

comment = Home Directories
valid users = %S, %D%w%S # アクセス可能なユーザを指定
browseable = No # ブラウジングした時に表示されるか? YesでもNoでも共有名を直指定するとアクセスはできる
read only = No # 書き込みを許可するか? (Noなら書き込み許可)
inherit acls = Yes

自作セクション

任意の自作セクションを設定するパート
今回の例では[Share]という自作セクションを設定した

/etc/samba/smb.conf
[Share]
comment = Share Folder for All Users
path = /home/share/
browsable = yes
read only = no

comment = Share Folder for All Users
path = /home/share/ # 共有ディレクトリパス
browsable = yes # ブラウジングした時に表示されるか?
read only = no # 書き込みを許可するか?

Sambaのユーティリティを紹介

設定チェック、Sambaユーザ管理、Linux用Sambaクライアントなどユーティリティを紹介。

testparm 設定チェック

  • オプション
    • -s 構文チェック後にEnterを押さずにsmb.confを表示
    • -v デフォルトパラメータも表示
# testparm -s
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

# Global parameters
[global]
       disable spoolss = Yes
       dos charset = CP932
       load printers = No
       security = USER
       server string = SAMBA SERVER Version %v
       wins support = Yes
       idmap config * : backend = tdb


[homes]
       browseable = No
       comment = Home Directories
       inherit acls = Yes
       read only = No
       valid users = %S %D%w%S


[Share]
       comment = Share Folder for All Users
       path = /home/share/
       read only = No

pdbedit Sambaユーザ管理

- Samba 3.0以降で対応している
- オプション
   - -L Sambaユーザ一覧表示
   - -a Sambaユーザ追加
   - -x Sambaユーザ削除
  • Sambaユーザ一覧表示 (-Lオプション)
# pdbedit -L
samba-paper:10001:samba paper

・Sambaユーザ追加 (-aオプション)

# pdbedit -a -u samba-paper -f "samba paper"
new password:
retype new password:
Unix username:        samba-paper
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-3964642020-3879586777-578649929-1001
Primary Group SID:    S-1-5-21-3964642020-3879586777-578649929-513
Full Name:            samba paper
Home Directory:       \\fs\samba-paper
HomeDir Drive:
Logon Script:
Profile Path:         \\fs\samba-paper\profile
Domain:               FS
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          Thu, 07 Feb 2036 00:06:39 JST
Kickoff time:         Thu, 07 Feb 2036 00:06:39 JST
Password last set:    Thu, 13 Aug 2020 17:23:43 JST
Password can change:  Thu, 13 Aug 2020 17:23:43 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

注意点

  • 追加しようとしているSambaユーザがUNIXユーザ上に存在していることが前提条件
  • Windowsがパスワード暗号化で使用するアルゴリズムとLinuxが使用するアルゴリズムが異なるため、
    /etc/passwd, /etc/shadowを利用した認証ができない
# pdbedit -a -u samba-buzz -f "samba buzz"
new password:
retype new password:
Failed to add entry for user samba-buzz.

# grep samba-buzz /etc/passwd
#

UNIXユーザ上にsamba-buzzが存在しないため、pdbeditコマンドで新規ユーザ追加しようとしてもエラーになる

・Sambaユーザの削除

# pdbedit -x samba-buzz

smbpasswd Sambaユーザのパスワード変更

  • オプション
    • -d Sambaユーザを無効化
    • -e Sambaユーザを有効化
    • -x Sambaユーザを削除

・Sambaユーザのパスワード変更

# smbpasswd samba-buzz
New SMB password:
Retype new SMB password:

nmblookup NetBIOS名の問い合わせ

  • DNS名前解決で使う dig, nslookup では名前解決のテストができない

  • ホストが存在するかの確認

# nmblookup buzz
xxx.xxx.xxx.xxx buzz<00>

buzzというホストが名前解決できるよう。

  • WORKGROUP内のホストを検索
# nmblookup WORKGROUP
xxx.xxx.xxx.xxx WORKGROUP<00>

smbclient Linux用Sambaクライアント

  • LinuxがMicrosoftネットワークの共有リソースにアクセスするためのユーティリティ

  • オプション

    • -L リスト表示
    • -N 認証を行わない
    • -U <ユーザ> 接続するユーザを指定
  • 共有リソース//buzz/shareにsamba-paperユーザでアクセス

# smbclient //buzz/share -U samba-paper
Enter WORKGROUP\samba-paper's password:
Try "help" to get a list of possible commands.
smb: \> pwd
Current directory is \\buzz\share\
smb: \> ls
  .                                   D        0  Fri Aug 14 11:20:40 2020
  ..                                  D        0  Thu Aug 13 17:22:46 2020
  hello.txt                           N       14  Fri Aug 14 11:20:40 2020

                21110356 blocks of size 1024. 16698572 blocks available
```


- Anonymousで認証せずリスト表示

```
# smbclient -L buzz -N
Anonymous login successful

      Sharename       Type      Comment
      ---------       ----      -------
      Share           Disk      Share Folder for All Users
      IPC$            IPC       IPC Service (SAMBA SERVER Version 4.10.4)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful

      Server               Comment
      ---------            -------

      Workgroup            Master
      ---------            -------
      WORKGROUP            BUZZ
```

### Sambaクライアント(Mac OSX)からSambaサーバへアクセス

[移動] -> [サーバへ接続]して、以下のようにsmbプロトコルを利用してSambaにアクセスする。

smb://xxx.xxx.xxx.xxx

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?