Sambaでファイルサーバを構築しました【CentOS7】
事務所のCentOS7のパソコンに、sambaでWindows10が使うファイルサーバを構築しました。
- ホストネームを変更
- ネットワーク接続
- sambaをインストール
- ユーザを追加
- 共有ディレクトリの作成
- sambaの設定
- SELinuxの設定
- ファイアウォールの設定
- sambaの自動起動設定
- Widows側から動作確認
- hostsファイルの書き換え
ホストネームを変更
ホストネームがデフォルトのままだと分かりにくいので、分かりやすいように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オプションでデバイスを表示してくれます。
この↓サイトを参考に作業しました。
何かの都合で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でスタート→設定→システム→詳細情報→右側の関連設定の中のシステムの詳細設定で確認しました。
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側からファイル名を指定して実行します。
セキュリティ上、これらの↑↓画像の一部を加工してあります。
正しい資格情報を入力すると
無事、ファイルサーバにログインできました。
hostsファイルの書き換え
いちいちIPアドレスを打つのも面倒なので、hostsファイルを書き換えます。
書き換えには管理者権限が必要です。
hostsファイルの場所 Windows10 | ex1-lab
↑こちらを参考にしました。
これで\\fsという名前でファイルサーバを参照することができるようになりました。
編集後記:この記事はシンタックスハイライトが適正なものになっていなくて見づらいですね。記事によってシンタックスハイライトを変える方法を知りません。できるようになったら直します。