Gumma_de_Sharoushiのブログ

群馬で社労士として開業をめざします。→開業しました。

Sambaでファイルサーバを構築しました【CentOS7】

事務所のCentOS7のパソコンに、sambaでWindows10が使うファイルサーバを構築しました。

ホストネームを変更

ホストネームがデフォルトのままだと分かりにくいので、分かりやすいようにfs(FileServer)に変更します。

#hostname
localhost.localdomain
#hostnamectl set-hostname fs
#hostname
fs
#
ネットワーク接続

ネットワークに接続します。

すみませんこの部分、作業手順を記録するのを忘れたので、適当です。

ネットワークに接続していないから、SSHも使えないのでteratermも使えず、ログが残っていません><

 

確か、最初にデバイスを確認し、切断されていたので/etc/sysconfig/network-scripts/の下にあるデバイス設定ファイルを変更しました。

 

 いちいちアドレスが変わるのもめんどいので、固定アドレスにしました。

なお、ifconfigは使えませんでした。

[root@fs ~]# ifconfig
-bash: ifconfig: コマンドが見つかりません

いまどきは、nmcli(ネットワークマネージャーコマンドラインかな?)を使うみたいです。

[root@fs ~]# nmcli d
DEVICE  TYPE      STATE     CONNECTION
enp3s0  ethernet  接続済み  enp3s0
lo      loopback  管理無し  --

nmcliのdオプションでデバイスを表示してくれます。

 

この↓サイトを参考に作業しました。

centos7 ネットワーク設定 - Qiita

 

何かの都合でnmtuiも使いました。

 

ハードコピーが残ってないのが残念です。

sambaをインストール

ネットワークが使えるようになったら、いよいよsambaをインストールします。


[root@fs ~]# yum -y install samba-common
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.jaist.ac.jp
 :
 :
 (以下省略)

ついでに、SELinuxのsemanageコマンドが使えるように、policycoreutils-pythonもインストールしておきます。私はCentOS7を最小インストールしていたので、この作業が必須でした(最小インストールだとsemanegeコマンドがインストールされません)。

[root@fs ~]# yum -y install policycoreutils-python
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.jaist.ac.jp
 :
 :
 (以下省略)

 

ユーザを追加

ユーザを追加します。このユーザはWindowsでも使うので、同じIDにしておきます。


[root@fs ~]# useradd sr000
[root@fs ~]# passwd sr000
ユーザー sr000 のパスワードを変更。
新しいパスワード:
よくないパスワード: このパスワードは 8 未満の文字列です。
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
[root@fs ~]# pdbedit -a -u sr000
new password:
retype new password:
Unix username:        sr000
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-******************************
Primary Group SID:    S-1-5-21-******************************
Full Name:
Home Directory:       \\fs\sr000
HomeDir Drive:
Logon Script:
Profile Path:         \\fs\sr000\profile
Domain:               FS
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:    土, 02  4月 2022 15:50:24 JST
Password can change:  土, 02  4月 2022 15:50:24 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@fs ~]#

↑のユーザsr000はテスト用です。実際にはこのユーザはWindowsでは使っていません(セキュリティ上、本当のユーザは表示しません)。

共有ディレクトリの作成

全ユーザーでフルアクセスできる共有ディレクトリを作成します。

この↓サイトを参考にしました。

Windowsファイルサーバー構築(Samba) - CentOSで自宅サーバー構築


[root@fs ~]# mkdir /home/samba
[root@fs ~]# 
[root@fs ~]# chown nobody:nobody /home/samba/
[root@fs ~]# 
[root@fs ~]# chmod 777 samba

共有ディレクトリの名前はsambaにしました。

sambaの設定

sambaの設定をいじります。

ほぼこちら↓のサイトと同じようにしました。

Windowsファイルサーバー構築(Samba) - CentOSで自宅サーバー構築

また、こちら↓のサイトも参考にしました。

Sambaサーバの環境構築手順 - hana_shinのLinux技術ブログ


[root@fs ~]# cat /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
        unix charset = UTF-8
        dos charset = CP932
        mangled names = no
        vfs objects = catia
        catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
        workgroup = WORKGROUP
        hosts allow = 192.168.11. 127.

        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[homes]
        comment = Home Directories
        path = %H/samba
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes
        vfs objects = recycle
        recycle:repository = .recycle
        recycle:keeptree = no
        recycle:versions = yes
        recycle:touch = no
        recycle:maxsize = 0
        recycle:exclude = *.tmp ~$*

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775

[public]
   comment = Public Stuff
   path = /home/samba
   public = yes
   writable = yes
   only guest = yes
   vfs objects = recycle
   recycle:repository = .recycle
   recycle:keeptree = no
   recycle:versions = yes
   recycle:touch = no
   recycle:maxsize = 0
   recycle:exclude = *.tmp ~$*
[root@fs ~]#

workgroup名はWindows側と同一にしないといけないので、Windowsでスタート→設定→システム→詳細情報→右側の関連設定の中のシステムの詳細設定で確認しました。

f:id:Gumma_de_Sharoushi:20220402180311p:plain

システムの詳細設定

f:id:Gumma_de_Sharoushi:20220402175750p:plain

SELinuxの設定

SELinuxを有効にしたまま、sambaだけ無効にします。


[root@fs ~]# semanage fcontext -a -t samba_share_t "/home/samba(/.*)?"
[root@fs ~]# restorecon -R -v /home/samba
restorecon reset /home/samba context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:samba_share_t:s0
[root@fs ~]#

こちらのサイトを参考にしました。

SELinuxを有効にしたままCentOS 7にsamba経由でWindowsからアクセスできるようにする方法 - コンピューター好きのブログ

↑こちらのサイトでは/mnt/USB-HDDへのアクセスを許可するようにしてあります。

この/mnt/USB-HDDの部分を、/home/sambaに変えました。

 

ファイアウォールの設定

ファイアウォールを恒久的に通過させます。

 


[root@fs selinux]# firewall-cmd --add-service=samba --permanent
success
[root@fs selinux]# firewall-cmd --reload
success
[root@fs selinux]#

 

sambaの自動起動設定

システムが起動したらsambaも起動するように設定します。


[root@fs ~]# systemctl is-enabled smb
disabled
[root@fs ~]# systemctl enable smb
[root@fs ~]# systemctl is-enabled smb
enabled
[root@fs ~]# systemctl is-enabled nmb
disabled
[root@fs ~]# systemctl enable nmb
[root@fs ~]# systemctl is-enabled nmb
enabled
[root@fs ~]#

 

 あとはsambaを起動して作業終了です。systemctlでstartしてもよかったのですが、私はいろいろ設定をいじったので、rebootしました。

 

Widows側から動作確認

Widows側からファイル名を指定して実行します。

f:id:Gumma_de_Sharoushi:20220403095519p:plain

ファイル名を指定して実行

セキュリティ上、これらの↑↓画像の一部を加工してあります。

f:id:Gumma_de_Sharoushi:20220403100344p:plain

資格情報の入力


正しい資格情報を入力すると

f:id:Gumma_de_Sharoushi:20220403100603p:plain

ファイルサーバを閲覧できました

無事、ファイルサーバにログインできました。

 

hostsファイルの書き換え

いちいちIPアドレスを打つのも面倒なので、hostsファイルを書き換えます。

書き換えには管理者権限が必要です。

hostsファイルの場所 Windows10 | ex1-lab

 

↑こちらを参考にしました。

f:id:Gumma_de_Sharoushi:20220403102027p:plain

名前解決してファイルサーバを閲覧できました

これで\\fsという名前でファイルサーバを参照することができるようになりました。

 

 

編集後記:この記事はシンタックスハイライトが適正なものになっていなくて見づらいですね。記事によってシンタックスハイライトを変える方法を知りません。できるようになったら直します。