Ubuntu Server 22.04.2 LTS
バージョン確認
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy
sambaのインストール
$ sudo apt install samba
Samba バージョン
$ smbd -V
Version 4.15.13-Ubuntu ( Desktop ubutu 22.10 では Version 4.16.4-Ubuntu)
2.FWの穴あけ
ufwのインストールしてある場合
# ファイアーウォールにポート許可追加
$ sudo ufw allow 139
$ sudo ufw allow 445
3.共有フォルダを作成
共有の名称: share
共有のファイルを置く場所: /share
workgroup = WORKGROUP
ファイルを管理するlinux ユーザー/グループ: winshare:winshare
# useradd winshare
# mkdir /share
# mkdir /home/share (見直し中)/rl-root と /rl-home でサイズの大きい方を選択 df -h コマンドで確認
ディレクトリの所有権者を設定
chown [オプション] ユーザー[:グループ] ファイル
# chown winshare:winshare /share
# chown winshare:winshare /home/share
アクセス権(パーミッション)の変更 - chmod
https://kazmax.zpp.jp/linux_beginner/chmod.html
# chmod g+ws /share
# chmod g+ws /home/share
4.sambaの設定
# nano /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
guest account = winshare #/share に設定したユーザー 追加
map to guest = bad Password #間違ったパスワードでも利用できる
[share]
path = /share 共有するディレクトリ
path = /home/share
public = yes 一般公開する設定
writable = yes 書き込み可能である設定
smb.confの編集を反映させるため下記コマンド実行
sudo systemctl restart smbd nmbd
sambaを有効にする
sudo systemctl enable smbd nmbd
windowsからアクセス
エクスプローラを表示してホルダ名として「\\サーバー名」と入力して接続
接続できない場合はIPアドレスを入力してください
(下記は IP接続した例です )
この時点でのExcelでは保護ビューが働きます
(Rocky Linuxでは共有へのユーザー別アクセス権を設定することにより表示されなくなりますが 残念ながらできませんでした) おそらく SELinux がうまくインストールできれば解決するかも?
共有へのアクセス権設定
ユーザの作成
useradd [オプション] ユーザー名
-G グループリスト ユーザーが属するセカンダリグループのリストを指定する(空白を含まず「,」区切りで指定)
SSHで直接ログインする必要がなければパスワード設定不要(SSH接続はパスワード無しでは接続できない)
# useradd -G winshare user1
samba専用ユーザーの作成 pdbedit
pdbedit
http://www.samba.gr.jp/project/translation/3.5/htmldocs/manpages-3/pdbedit.8.html
-u username
操作 (表示・追加・削除など) の対象とするユーザー名を指定する。 追加・削除・変更操作においては必須であり、 表示操作においては任意である。
-a
ユーザーをデータベースに追加する際に指定する。 ユーザー名を -u オプションで指定する必要がある。 ユーザーを追加する際、 pdbedit はユーザーのパスワードの入力を求める。
実行は管理ユーザー権限で実行する必要がある
# pdbedit -a -u user1
new password:
retype new password:
Unix username: user1
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1812951810-453011933-105716575-1000
Primary Group SID: S-1-5-21-1812951810-453011933-105716575-513
Full Name:
Home Directory: \\NTAKAHOST\user1
HomeDir Drive:
Logon Script:
Profile Path: \\NTAKAHOST\user1\profile
Domain: NTAKAHOST
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: 木, 13 4月 2023 09:44:38 JST
Password can change: 木, 13 4月 2023 09:44:38 JST
Password must change: never
Last bad password : 0
Bad password count : 0
#
同様の方法でファイル共有に必要なユーザーを追加する
# pdbedit -a -u user2
new password:
retype new password:
Unix username: user2
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1812951810-453011933-105716575-1001
Primary Group SID: S-1-5-21-1812951810-453011933-105716575-513
Full Name:
Home Directory: \\NTAKAHOST\user2
HomeDir Drive:
Logon Script:
Profile Path: \\NTAKAHOST\user2\profile
Domain: NTAKAHOST
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: 木, 13 4月 2023 12:49:49 JST
Password can change: 木, 13 4月 2023 12:49:49 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
#
もう一度pdbeditコマンドを実行すればパスワード変更できる
注:ユーザーを削除する場合はlinuxユーザーだけでなくsambaのユーザーも削除する必要がある
sambaユーザー設定の削除
-x
データベースからユーザーを削除する際に指定する。 ユーザー名は -u オプションで指定する必要がある。
# pdbedit -x -u user2
Sambaのユーザーアクセス設定
# nano /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
guest account = winshare
map to guest = bad Password #間違ったパスワードでも利用できる
map to guest = Never #ゲスト認証を許可しない
[share]
path = /share 共有するディレクトリ
path = /home/share
public = no 一般公開する設定:noに変更
writable = yes 書き込み可能である設定
#共有ホルダ設定
valid users = user1,user2,user3 アクセスできるユーザー
read list = user3 読み込みのみができるユーザー
smb.confの編集を反映させるため下記コマンド実行
sudo systemctl restart smbd nmbd
(解決)サーバー(NAS)上のエクセルを開くと毎回保護ビューで表示される