ファイル共有あれこれ
ファイル共有で仕事を効率良く
社内SEとして勤め始めてすぐ、
「あれ?あのExcelファイルどこ?」
と、従業員のパソコンを何台も探し回って見つからず、ヘルプを求められたり、
「昨日、残業して修正した数値が元にもどってる!?」
と、せっかく作成したファイルを上書きされてしまって、どうにか出来ないか?という相談をよく受けました。
そして、提案して導入したのが、ファイルサーバーになります。
といっても、技術的な話は殆どご理解頂けないので、
「全員が共通でファイルを置ける場所を作っておけば、ファイルを探し回ったりせずに済みますよ」
と利点を挙げるのと、個人でも手が届く価格のNAS (Network Attached Storage)=ナス から導入を図ったのはいうまでもありません。
NASはLANなど、ネットワーク(Network)に接続(Attache)するハードディスクなどの領域(Storage)で、普通に設置すると、ネットワーク上の全てのパソコンからNASを閲覧したり、書き込みしたりできます。
事務所の全員で共有するファイルなどは、NAS上の共有フォルダに置いておけば、探し回る必要がなくなって便利ですね。
NASなら、パソコン販売店やAmazonで購入してきて、接続するだけでもある程度の事は可能なので、オススメです。
さて、「これにて一件落着」と言いたいところなのですが、こうして社員全員の共有の置き場ができてしばらくすると、次の要望にレベルアップします。
「人事に関するファイルは、他の社員に見せたくないのだが」
「管理職のファイルは他の社員に(以下略)」
と、見せたい人、見せたくない人を分けたくなってくるようです。
まぁ、確かに人事ファイルを全員が閲覧できると困りものですし、役員会議みたいな資料も一般社員には閲覧させられません。
たいていのNASは初期設定では、誰でも書き込みや削除ができる領域が作られていますから、そこに人事や管理職のファイルを置くと、全員に見えてしまいます。場合によっては書き換えされてしまうかもしれません。
そういうご要望があるときは、NASには大抵、管理用アプリが付属していますから、アクセス権を割り振る事で、上記のご希望を叶える事ができます。
イメージはBUFFALOさんのLS210Dの設定画面ですが、
このように新しいユーザーをパスワード付きで作成します。
次に、このように新しい共有フォルダを作成ます。
作った共有フォルダに、その新ユーザーのみにアクセス権を与えると、そのフォルダに接続しようとすると、
このようにユーザー名とパスワードを要求されます。
人事や管理職だけにユーザー名とパスワードを教えておけば、知らない社員はフォルダの中を見る事ができません。
さて、こうしてパスワード付きの領域を作成して暫くは何事もなかったのですが、偉い方から、
「フォルダを役員だけ見られるようにできないかね?」
とのヘルプ要請に発展しました。
どうも、そこに「重要なファイルがある場所」が、接続にID/PASSが必要と判っていても、全員に表示されていると気分的によろしくないようです。
技術者は、IDとパスがで保護されていれば、大丈夫だろう と納得します。
外部からのアタックと違い、もし社内にパスワード総当たりなどの手段でこれを破ろうとするような不心得者があれば、作業の進捗や通信量などから判るからです。
でも、偉い人にはやはりそこに見えているのは、何かの拍子にパスワード保護が解けて見えてしまうのではないか? と不安を誘うようです。
ここまでくると、NASでは少し荷が重くなり、そうした機能を持っていないNASもありますので、あまり高額でない機器を選んで、ファイルサーバーの役目をするサーバー機の導入を提案しました。
従業員の給料一ヶ月分くらい出せば、けっこうなマシンが入手できるのですが、出す時にやはり渋られたのはお約束です。
サーバー機は、サーバー向けのOSを載せたコンピュータの事で、「パソコン」よりは耐久性のある部品が使用されている事が多いです。
サーバー向けOSとしては、Windows Server やLinux(リナックス)などがあります。
今回の例では別記事の通り、OSが入っていないサーバー機を導入し、CentOSというLinux系のOSをインストールしました。
# yum -y install samba
そこに上記のコマンドでsambaというアプリをインストールすると、このサーバーのディスク領域がWindows 機からネットワーク上の共有領域として見えるようになり、例えばファイルをその共有領域に保存したり、共有領域のファイルを開いたりする事ができます。
また、実質的には「サーバー機」にWindows パソコンから接続する事になりますので、使用するユーザー全員を登録します。このため、非常に細かい権限設定が可能になります。
sambaは設定ファイル smb.conf でアクセス権や、使用領域などを設定します。
例として、こんなsmb.confを設定しました。
# vi /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]
workgroup = WORKGROUP
security = user
hosts allow = 192.168.1.
interfaces eth0
passdb charset = CP932
display charset = UTF-8
backend = tdbsam
# including
include = /etc/samba/%G.conf
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[共有フォルダ]
comment = Public Stuff
path = /home/samba
read only = No
guest only = Yes
guest ok = Yes
vfs objects = recycle
recycle:repository = .recycle
recycle:keeptree = no
recycle:versions = yes
recycle:touch = no
recycle:maxsize = 0
recycle:exclude = *.tmp ~$*
vi /etc/samba/management.conf
[管理職]
path = /home/management
browseable = yes
valid users = @management
writable = yes
create mode = 0770
directory mode = 0770
hide unreadable = yes
read only = No
guest only = No
guest ok = No
vfs objects = recycle
recycle:repository = .recycle
recycle:keeptree = no
recycle:versions = yes
recycle:touch = no
recycle:maxsize = 0
recycle:exclude = *.tmp ~$*
先ほどの説明通り、このsambaではユーザーを作成しますので、そのユーザー(と、システム管理者)しか見えない領域がhomesとして表示され、それに加えて、共有フォルダという、誰でも書き込み読み込み可能な領域が表示されます。
ただし、globalにある、include = /etc/samba/%G.conf が今回のキモでして、ユーザーの所属するグループ名.confを追加で読み込めという指示になります。
すると、managementというグループに所属させたユーザーは、このmanagement.confに書かれた内容を読み込むので、[管理職]の共有が表示されます。
一般の社員さんはmanagementというグループでなければ、management.confが取り込まれないため、[管理職]の共有が表示されません。
もし、これを読まれた会社の方で、自分のところもこういう事例に困っているという事でしたら、私はお役に立てるかと思います。
さて、最後のオチですが、
「ところで、この管理職フォルダ、吉川くんも見られないようなってるよね?」
と言われた時は、流石に目が点になりました。
私は社内SEで、システム管理者です。このサーバーも設定しました。という事は、rootのアカウントとパスワードを持ってますから、サーバー内ならどこを見る事も、どんな操作をする事も可能です。
それを伝えると、「それは困る」との返答だったので、どうしても私に見られたくないファイルについては、
「USBメモリで管理して、外して持って帰ってください」
という事で終了になりました。
言わなければ、システム管理者の礼儀として、管理者のフォルダなんて中身見ようとは思いませんが、あえて「きみも見られないよね」なんて言われると、逆にみたくなってしまいますからね…。