tsuyoshin’s Tech Blog

https://qrunch.net/@tsuyoshin から移転してきました。

【Ubuntu】【Samba】 フォルダの共有設定

OS新規インストール時のフォルダ共有設定の覚書
本内容は [Ubuntu 18.04.5 LTS] にて行っている

ユーザーの登録

OSセットアップ時に登録したユーザーではネットワークアクセス出来ないので、Samba用に同名のユーザーを登録

# セットアップ時と同じ名前にする(ここでは username を使用)
$ sudo pdbedit -a username
new password:
retype new password:
Unix username:        username
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-xxxxxx
Primary Group SID:    S-1-5-21-xxxxxx
Full Name:            username
Home Directory:       \\ubuntu64\username
HomeDir Drive:        
Logon Script:         
Profile Path:         \\ubuntu64\username\profile
Domain:               UBUNTU64
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          木, 07  22036 00:06:39 JST
Kickoff time:         木, 07  22036 00:06:39 JST
Password last set:    木, 10  92020 14:40:55 JST
Password can change:  木, 10  92020 14:40:55 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

ユーザーが登録されたか確認

$ sudo pdbedit -L
username:1000:username

ホームディレクトリの共有

下記2つの方法がある

  1. ファイルマネージャー( Nautilus )から共有
    Nautilus にて「ホーム」を右クリック → プロパティ → ローカルネットワーク共有
    ※共有名は変更する必要がある(username → username_home)
    ※Read/Write にて共有されてしまう

  2. smb.conf ファイルを編集
    /etc/samba/smb.conf ファイルをルート権限で開き、下記編集する

#======================= Share Definitions =======================

# Un-comment the following (and tweak the other settings below to suit)
# to enable the default home directory shares. This will share each
# user's home directory as \\server\username

# [homes] は、予約されているので変更できない
[homes]
   comment = Home Directories
   # フォルダ共有で表示されたくない場合、no にする
   # no にしてもユーザー名(username)でフォルダ共有が行われる
   # yes の場合、homes, username の二つのフォルダが表示される
   browseable = no

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
   # デフォルトはリードオンリー、書き込みたい場合 no に変更する
   read only = yes

samba を再起動する

$ sudo service smbd restart

ファイルマネージャー( Nautilus )からの共有をリードオンリーにする

Nautilus からの共有は、Read/Write にて設定されてしまう
リードオンリーに変更したい場合、下記方法で行う

# Nautilus から設定した共有情報は下記フォルダに格納されている
# /var/lib/samba/usershares/
$ ls -l /var/lib/samba/usershares/
合計 4
-rw-r--r-- 1 username username 154  910 17:47 tmp

# 共有情報を表示する
$ net usershare info
[tmp]
path=/home/username/ダウンロード/tmp
comment=
usershare_acl=Everyone:R,UBUNTU64\username:F,
guest_ok=n

下記行にてアクセス権限の設定を行っている

usershare_acl=Everyone:R,UBUNTU64\username:F,

:R = リードオンリー、:F = フルアクセス
フルアクセスをリードオンリーに変更する

ここでは、/var/lib/samba/usershares/tmp ファイルを編集する

usershare_acl=Everyone:R,UBUNTU64\username:R,

samba を再起動する

$ sudo service smbd restart

これでリードオンリーにて共有される

Windows PC から Ubuntu の共有フォルダにアクセス出来ない場合

Ubuntu の共有フォルダは表示されるが、正しいユーザー名・パスワードを入力してもアクセスが拒否される場合
Windows PCのネットワーク セキュリティ:LAN Manager 認証レベルNTLMv2 応答のみ送信するになっているか確認する

確認方法
  1. ファイル名を指定して実行 → secpol.mscと入力
     もしくは、
    スタート → Windows 管理ツール → ローカル セキュリティ ポリシー をクリック
  2. セキュリティ設定 → ローカルポリシー → セキュリティ オプション をクリック
  3. ポリシー一覧からネットワーク セキュリティ:LAN Manager 認証レベルを探す
  4. ローカルセキュリティの設定値を確認する
    NTLMv2 応答のみ送信する以外の場合、NTLMv2 応答のみ送信するに変更する
    Windows 8, 10 の場合、設定値が未定義でもOK

私の環境の場合、SMB V1のみ対応機器とのファイル共有のために、ネットワーク セキュリティ:LAN Manager 認証レベルLMとNTLMを送信する(ネゴシエートした場合NTLMv2セッションセキュリティを使う)になっていたため、Ubuntu の共有フォルダにアクセス出来なかった。


参考にした記事
Ubuntu11.10 ファイル共有についてのmemo
sambaサーバによるファイル共有環境の構築手順メモ
Sambaのユーザー認証とファイルアクセス権の設定