【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 2月 2036 00:06:39 JST Kickoff time: 木, 07 2月 2036 00:06:39 JST Password last set: 木, 10 9月 2020 14:40:55 JST Password can change: 木, 10 9月 2020 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つの方法がある
ファイルマネージャー( Nautilus )から共有
Nautilus にて「ホーム」を右クリック → プロパティ → ローカルネットワーク共有
※共有名は変更する必要がある(username → username_home)
※Read/Write にて共有されてしまう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 9月 10 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 応答のみ送信する
になっているか確認する
確認方法
- ファイル名を指定して実行 →
secpol.msc
と入力
もしくは、
スタート → Windows 管理ツール → ローカル セキュリティ ポリシー をクリック - セキュリティ設定 → ローカルポリシー → セキュリティ オプション をクリック
- ポリシー一覧から
ネットワーク セキュリティ:LAN Manager 認証レベル
を探す - ローカルセキュリティの設定値を確認する
NTLMv2 応答のみ送信する
以外の場合、NTLMv2 応答のみ送信する
に変更する
※Windows 8, 10 の場合、設定値が未定義でもOK
私の環境の場合、SMB V1のみ対応機器とのファイル共有のために、ネットワーク セキュリティ:LAN Manager 認証レベル
がLMとNTLMを送信する(ネゴシエートした場合NTLMv2セッションセキュリティを使う)
になっていたため、Ubuntu の共有フォルダにアクセス出来なかった。
参考にした記事
Ubuntu11.10 ファイル共有についてのmemo
sambaサーバによるファイル共有環境の構築手順メモ
Sambaのユーザー認証とファイルアクセス権の設定