A Day In The Boy's Life -164ページ目

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

FTPサーバーをユーザーに開放している場合、それを使って予期せぬファイルをやり取りされる場合があったりします。

コンテンツファイルなどを更新するためにFTPを開放しているのに、そこで動画ファイルなど関係のない大容量のファイル交換に利用されていたなど、サーバーを管理する側としては問題がおきそうな行為は極力禁止したいと思うでしょう。

ここではvsftpdデーモンを使った、特定のファイルのアップロードを禁止する設定を追加してみたいと思います。



vsftpdで特定のファイルのアップロードを禁止する設定


設定方法はいたって簡単です。

vsftpd設定ファイル(vsftpd.confまたはユーザーの設定ファイル)にdeny_fileディレクティブを追加することで実現できます。


例)
deny_file={*.zip,*.doc,*.xls,*.ppt}

上記の場合、zipファイル、オフィスドキュメント(Word、Excel、PowerPoint)ファイルのアップロードを禁止しています。


deny_fileディレクティブには、正規表現を指定できますが簡易的な実装であるため、複雑なファイル名のパターンを登録することはできません。

そのため、本来禁止したいファイルがアップロードされる可能性もあったりします。

例えば、HTMLファイルを禁止したいとして、


deny_file={*.html}

と、書いていたとしましょう。
ただ、これは「.htm」の拡張子のファイルはdeny_fileディレクティブの簡易的な正規表現ではマッチングしないため、アップロード可能となってしまいます。

設定する場合は十分なテストを行う必要があります。


設定ファイルのほうは、vsftpd.confに書くと全員に適用され、個別のユーザー設定ファイル(user_config_dirディレクティブで指定したディレクトリ内に作るユーザー専用の設定ファイル)に書いた場合は、そのユーザーだけに適用されます。

設定を変更したら、vsftpdデーモンを再起動させます。


上記の例で示した4種類の拡張子のファイルアップロードを禁止した場合、実際にどのような動きになるのかテストしてみましょう。


# ftp localhost
Connected to localhost
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:hoge):
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

ftp> put test.zip
local: test.zip remote: test.zip
227 Entering Passive Mode (127,0,0,1,99,207)
550 Permission denied.

ftp> get test.zip
local: test.zip remote: test.zip
227 Entering Passive Mode (127,0,0,1,58,252)
550 Permission denied.

ftp> del test.zip
550 Permission denied.

test.zipファイルをアップロードしようとしていますが、「550 Permission denied」が表示されアップロードができていません。

また、ダウンロードやファイルの削除も同様にエラーが出て正常に実行できないことがわかります。


ちなみに、特定のファイルだけを許可するというディレクティブは存在しないため、ブラックリスト方式で登録することしかできません。


予断ですが、サーバー上の特定のファイルに対し、削除や上書きをできなくしたいのであれば、「[Linux] 削除できないファイルの作り方 」で紹介した、特殊な権限をファイルに付与しておくというのも一つの手だと思います。





勝間和代のビジネス頭を創る7つのフレームワーク力 ビジネス思考法の基本と実践/勝間 和代
¥1,680
Amazon.co.jp

タイトルに「ビジネス頭を創る」とあるように、この本はビジネスで使えるテクニックや考え方を包括的にまとめた本になっています。


ただ、そんなビジネスのテクニックや考え方は世の中に多々ありますし、それらすべてを紐解いていくととても1冊の本ではまとまりきれないサイズとなってしまうため、全体的にポイントだけを抑えた内容になっています。

具体的にどうすればよいのか?という疑問に答えてくれないところは残念ではありますが、そこはさすがというか巻末に、その知識を得るにはどういった本を参考に刷ればよいか、著者が読んだ中から厳選したものの一覧が付属しています。

まずは、全体的にどういったテクニックや考え方があるのかということを理解し、そこから深く掘り下げるのはほかの参考書を参照してください、という流れがこの本にはあります。


それでも、この本自体は300ページ弱ありますので、なかなか読むのに体力がいるのですが、ページをぱらぱらとめくっていくと太文字で書かれているところがいくつか出てきます。

基本的にそこを目に留めていって、気になるところがあればその前後を読んでみるという進め方でも理解が進むと思います。

具体的な内容に触れれば、この本は下記の思考モデルを基本として構成されています。


P.40 思考の六つの段階

ビジネス思考力を鍛えるにあたって、まず覚えたいのが、教育学者のベンジャミン・ブルーム博士が提唱したテキサノミー理論をベースにした、思考の六段階モデルです。
(略)
① 知識  暗記力(事実、言葉、やり方、分類を知っている)
② 理解  内容を解釈したり、言い換えたり、説明したり、推し量ったりする能力
③ 応用  知識を一つの状況から別の状況に移すことができる能力
④ 分析  全体の中の部分を見つけたり、区分けしたりできる能力
⑤ 統合  部分を組み合わせて、統一された全体をつくりだせる能力
⑥ 評価  基準を使って情報の価値や使い道を判断できる能力

この6つの思考の段階を1つずつステップアップするためにはどうすればよいのか、その中にあるテクニックとそれをどういうふうに身に着ければよいのか、その行動と考え方が解説されています。

(前述したように、雰囲気をつかめるレベルであまり具体的ではありませんが)


この本を読んで、「あっ!」と気がついたのは


P.27

簡単な計算をしてみましょう。短時間で適切な情報を集められる人が二十%ぐらい、そのうち推論をしっかりと働かせる人が二十%、最後にそこから行動につなげる人が二十%くらいとすると、ビジネス上で短期間のうちに情報を集め、新しい解決策を考えて実行する人は、

20% × 20% × 20% = 0.8%

人それぞれ色々な能力を持っているけれども、その組み合わせで成り立っているのは、その本人だけであって、十二分にそれは武器となる可能性があるということではないかと。

自分もエンジニアとしてあまりスペシャリストの領域をもってはいないと感じていますが、広い領域で身に着けた知識を組み合わせることで価値を高めるしかないかな、と考えています。


通信簿で3しかもらえない分野があったとしても、それが50、100と分野を増やしていけばその人の価値は高まっていくと思います。

特にビジネスの世界ではその中を細分化すれば、その分野というのは数え切れないほどあるもので、一方で1つの分野を専門として深く掘り下げていく人もいれば、他方で様々な分野を横断して価値を高めるという考え方もあると思ったわけです。





ギークといえば、あることに没頭し、それに深く精通し、そして特定分野において強い影響力を持つ人といった意味があったりしますが、日常ではあまりこの言葉が使われる機会はありません。

よく使われるのは、このギークを意訳した(IT系の)オタクという言葉です。


しかし、その2つの言葉のニュアンスは少し違います。

というのも、ギークだといえるほどある分野に没頭し、精通し、強い影響力を持つ人なんてそうそういません。

いるのは、それを意訳した「オタク」の方です。

が、オタクも特定分野に没頭し、精通している点ではギークと近いものがあります。

いわばギーク予備軍(プチ・ギーク)のような感じ。


が、このプチ・ギークはギークほど社会的に影響力を与えなくとも、その企業内であったり、あるソーシャルにおいては強い影響力を持ったりします。

そして、扱いに難しいところがあったりはするものの、持ち前の高い集中力と好奇心は、そのベクトルを正しい方向に向けてあげることで、仕事でも高い能力を発揮してくれます。

そんなチームに一人はいてほしいプチ・ギークの育て方を書いてみたいと思います。



1. 得意分野の課題を与える


ギークはそれに精通する課題を与えると喜んで取り組んでくれます。

ギークは、少し変わっていてコントロールが難しい場合がありますが、特定の課題でそれをコントロールするとうまくいきます。

そして、自らその課題を解決するための方法というものを考え、ほんの少しの猶予で解決策に導いてくれたりします。



2. micromanageをしない


つまりは、突っ込んで細かくギークをコントロールしないという事です。

ギークは、大抵言わなくとも何らかの課題を解決するために自助自立をしています。

細かく管理をすることで、その反発を招く恐れがあるため、全体の方向性が正しければよしとして、細かな道筋をつけるのはあまりよい結果を招きません。



3. 情報を与える


ギークは、初めから様々な情報に精通しているわけではありません。

ある一つのことに没頭していると、その中から関連する情報を拾い、そして興味が拡大していくわけです。

なので、情報の収集能力が非常に長けているわけではありません。

情報を綱渡りするのがうまいだけです。



4. 余計な事をさせない


日本の階層社会では、右にならえのキャリアパスを描かせることが、人を育てると信じられている部分がありますが、それはギーク(もしくはギーク予備軍)を殺すことになります。

ギークにはギークのなすべき仕事があるわけなので、それをこなすことに注力させるべきです。



5. 褒めること


賞賛がギークにとってのエネルギー源となっていることはよく聞く話です。

ところがあまりギークを褒める環境は無かったりします。

何故そこまで?という冷ややかな目で見られたりもします。

確かに何故にそこまでということはしばしばあるものです。

しかし、ギークにとっては気づいたらそこにたどり着いただけの事であって、不思議なことではありません。

そんなギークの心を奪ってはいけません。



6. 権限を与える


ここまであげてきたことを実現させるには、ある程度の権限をギークが持っていないとできないでしょう。

障壁をクリアするための適切な権限を与えておくことで、ギークは自由に時間と手段を使うことが可能になり、最短の方法で最良の方法を導いてくれます。



7. ライバルを置く


切磋琢磨できる環境がよい緊張感を与えて、その人の能力をよりいっそう高めてくれます。

やはり自分ひとりだけががんばっていると思うような環境では、それ以上の努力をしようとは思わなくなるものです。

周りによきライバルがいることで、負けん気の強いギークはより強力な能力を身につけていくでしょう。

そして、ギークがギークを作るよいスパイラルができると思います。



ここにあげたすべてを与えれば誰もがそうなるわけではないと思います。

向いている人と向いていない人というのはやはりいるもので、自由に権限や時間を与えることでも、それをうまく使う人とそうではない人がもちろんいます。


ただ、ギークを育てるのはその人の生まれ持った素質だけでなく、その周りにある環境が何よりも重要な要素になることは間違いないと思います。