作成者別アーカイブ: matsu

今更ながらの、権限変更について考える

タグ: | 投稿日: 投稿者:

先日、他の人が権限を変更するところを見る機会があったのですが、お恥ずかしながらそこで初めて数字以外で権限を設定する方法を知りました。

そこで、chmodについてまとめてみたいと思います。

chmod

ファイルやフォルダの権限を変更するコマンドです。当然、どのファイル・フォルダをどのように変更するかという指定が必要になります。

権限変更の指定の前に、権限について説明します。
まず、権限は対象となるユーザと許可するアクションの2つで成り立ってます。
対象となるユーザは、所有者、所有者グループ、その他の3種類となっています。
一方、許可するアクションも読み込み、書き込み、実行の3種類に分かれています。

chmodでは、これを0~7の数字を使い、3桁で表現します。
1桁目は、所有者の
2桁目は、所有者グループの
3桁目は、その他の、許可されているアクションを記しています。

では、0~7でどうやって許可されているアクションを示しているのでしょう。
肝となるのは、対象となるユーザは排他的であるのに対し、許可するアクションは重複するということです。
対象ユーザは、所有者であれば、所有者グループではなく、またその他であることはありません。
しかし、許可するアクションは、読み込み、書き込み、実行、それぞれが独立しており、
読み込み、実行が許可されているが、書き込みが許可されていないということもありえます。
実は、0~7の数字はそのままで考えるのではなく、2進法にして考えます。
許可・不許可を0と1で、各項目(読み込み、書き込み、実行)を桁に置き換えているのです。

例:

読み込み(r) 書き込み(w)  実行(x) 
許可 不許可 許可
1 0 1

上記のような場合、2進法で101に置き換えられ、さらに10進法に変えて、5と表現されます。
全て許可する場合は、111になるので、7になるということです。

これが、ユーザの種類毎に繰り返され、3桁の数字となります。
777の場合、全てのユーザに全ての権限があるということです。
700の場合、所有者のみ全てのアクセスが可能だということになります。

 

chmod 777 [ファイル・フォルダ名]

とすれば対象のファイル・フォルダに全てのユーザの全てのアクセスを許可することになります。

数字で権限を指定する以外にも、対象のユーザを指定して権限を変更できます。
その場合、対象ユーザや権限の種類などをちゃんと指定する必要があります。

対象ユーザ 指定方法
所有者 u
所有者グループ g
その他 o
すべて a

 

権限の種類 指定方法
読み込み r
書き込み w
実行 x

 

変更の種類 指定方法
指定した権限の追加 +
指定した権限の削除
指定した権限に変更 =

 

個人的には、最初の設定では、数字の方が指定しやすく、
既に使用中のファイルの権限を変える必要がある場合は、文字での指定が安全で良いのかなと思います。

 

権限の対応表

読み込み(r) 書き込み(w)  実行(x)    10進数
0 0 0   0
0 0 1   1
0 1 0   2
0 1 1   3
1 0 0   4
1 0 1   5
1 1 0   6
1 1 1   7

 


設定以外の理由でメールが送れなくなる場合

タグ: , | 投稿日: 投稿者:

Cisco(www.senderbase.org)によると過去1カ月に送信されたメールの86%以上がSPAMだったらしいですね。
4千億通以上のSPAMが送られているということなので如何にメールを仕分けるのかというのが重要になってくるということです。

キーワードを設定して、この単語があったらSPAMだと判別するのもありですが、それだと個人に頼るしかありません。
1人1人が設定するのであれば、サービスではないですね。

つまり、何らかの方法で、このメールは信用できる、信用できないという判断を下さないといけないということです。

その判断の基準となるのがドメインを含めたIPの情報になります。

 

SPAM業者もSPAM送付を生業としているだけに、バカばかりではありません。読む人を信用させようと一見、信用が高いドメイン名を騙ることがあります。

銀行からのメールだと偽装し、偽のウェブサイトに誘導するという事件が話題になったりしました。

ドメイン名だけで判断するのは心もとないということです。

そのため、IPの情報も追加することで、より正確な判断をすることができるようになります。

 

判断するのは良いのですが、判断するには過去の情報が必要になります。このドメインからは、過去3カ月SPAMが送られているというような。

そういった情報をベースにメールは評価され、SPAMかSPAMでないかという判断がくだされます。

では、どこがそのような判断を下しているのでしょう?

1つの会社が独占的に判断を下しているのではなく、複数の会社がサービスの一環として提供していたり、SPAMを撲滅しようとする有志が情報共有したりしています。

ですので、この相手には問題なく送れるけど、別の相手には送れないということがたまにおきます。

 

最大クラスの情報を確認できるサイトがあります。

http://www.senderbase.org/

ここは、ネットワーク機器の最大手であるCiscoが運営しており、有用な情報を取得できます。

 

右上に検索ボックスがあるので、そこにIPを入力すればそのIPやドメイン、ネットワークを入力すればそこがどれだけ信用に足るのかが分かります。

もし、Poorが表示されるようなことがあれば色々と調査の必要があります。

気を付けないとどこにメールを送ってもメールの受信を拒否されるということになりかねません。


DSUって何だ

タグ: , | 投稿日: 投稿者:

Dell System Update 略してDSU。これを使うとLinuxを使用しているDellのマシンのBIOSやファームウェアのアップデートが簡単になります。

どれくらい簡単かというとファームウェアのアップデートにサイトからダウンロードする必要がなくなるくらい簡単になります。

インストールも簡単で、DellのサーバマネージメントシステムであるOpenMangeをインストールしたことがあればほぼステップが同じであることがわかります。

 

まず、レポジトリをダウンロードし、インストールします。

wget -q -O - http://linux.dell.com/repo/hardware/dsu/bootstrap.cgi | bash

次に、ソフトをインストールします。

Red-Hatでのインストール:

yum install dell-system-update

SUSEでのインストール:

zypper install dell-system-update

 

使用方法も簡単です。

アップデートが必要なものの確認:

dsu --inventory

アップデートの実施:

dsu

 

これだけで、BIOSやすべてのファームウェアを最新にすることができます。

しかし、これだけだと上げたくないファームウェアも上げてしまうことがあるため、種類別でアップデートを行うことができます。

カテゴリの確認:

dsu --category-values

選択したカテゴリのアップデート

dsu --get=<上記で取得したカテゴリの1つ>

 

なお、このDSUには前身があり、それは、Dell Linux Repositoryという名称でした。

こちらのRed-Hat系でのインストール手順と使用方法も記載しておきます。

インストール:

wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash 
yum install dell_ft_install 
yum install $(bootstrap_firmware)

使用方法(アップデートの確認):

inventory_firmware

使用方法(アップデートの実施):

update_firmware

 


使い道が狭いけど便利なLive DVDの使い方

タグ: , , | 投稿日: 投稿者:

Live DVDといっても、ライブのDVDじゃありません。OSが内包されたDVDでDVDから起動することでOSが入っていないマシンでも操作できるというDVDのことです。
DVD以外にもCDやUSBから起動するものもあります。
※以下、wikipediaの記事

https://ja.wikipedia.org/wiki/Live_CD

Live DVDが何かというのが目的ではなく、あるLive DVDを使ってみましょうよという記事なんです。

 

さて、ファームウェアのアップデートというのは、色々と頭が痛いものです。ファームウェアのバージョンを確認し、適応するファームウェアを探し出し、ファームウェアをインストールする。そして、時には再起動を行わなければならない。慣れない人間には大変な作業です。

om-firmware-liveは、Dell製品のみですが、ファームウェアのアップデートをまとめてGUIで行えるという便利なツールです。

Dellが公式でサポートしてはいませんが、英語のdellのコミュニティーで公開されています。

http://linux.dell.com/files/openmanage-contributions/om-firmware-live/

Live DVDの作り方も簡単で、上記URLからisoファイルをダウンロードしDVDを作成するだけでLive DVDができます。

あとは、そのDVDを入れDVDから起動するだけです。日本語ではなく、英語のUIですが、難しくなく、OpenManageを使用するためのブラウザとファームウェアをアップデートするためのプログラムしか開きません。
ファームウェアをアップデートするプログラムでは、アップデートが必要なファームウェアには、チェックが付きますので確認したら「Update Firmware」をクリックします。

その次の画面でアップデートするファームウェアがリスト表示されますので、そしたら「Update Now」をクリックすればアップデートが始まります。あとは終わるのを待つだけです。

なお、OpenManageを使用するためのIDとパスワードは、下記になります。

ID: root

パスワード: linux

 

参考URL:

http://en.community.dell.com/techcenter/b/techcenter/archive/2011/08/17/centos-based-livedvd-to-update-firmware-on-dell-servers


Observiumをインストールしてみた~その2

タグ: , | 投稿日: 投稿者:

さて、Observiumのインストールの続きです。まあ、見事にはまってしまい解決まで時間が掛かってしまいました。問題となった部分は後で説明するとしてインストール手順を引き続き説明します。

前回は、SELinuxを無効にしたところまででした。既に、ディレクトリは、/opt/observiumになっていると思います。そのディレクトリ内にconfig.php.defaultというファイルがあるので、そのファイルをコピーして、同じディレクトリ内にconfig.phpというファイルを作ります。

cp config.php.default config.php

ファイルを作成したら、そのファイル(config.php)を編集します。

編集するのは、MySQLの情報、config.phpでは、下記のように記載されています。

// Database config ---  This MUST be configured
$config['db_host'] = 'localhost';
$config['db_user'] = 'USERNAME';
$config['db_pass'] = 'PASSWORD';
$config['db_name'] = 'observium';

MySQLに接続できるよう、host, user, passの情報を書き込みます。その後、fpingの情報を追記します。これは、fpingが/usr/sbin/にインストールされている場合のものです。

$config['fping'] = "/usr/sbin/fping";

これらが終わったら、下記を実行します。

php includes/update/update.php

多少のエラーは問題ないとのことです。(SQL revisionでのエラーが006まで)

次に、logとrrdのディレクトリを作成し、所有者を変更します。

mkdir logs
chown apache:apache logs
mkdir rrd
chown apache:apache rrd

そして、Observiumでのユーザを追加します。

./adduser.php 「ユーザ名」 「パスワード」 「レベル」

管理者権限を持たせる場合、レベルは10です。

下記で機器を追加します。

./add_device.php 「ホスト名」 「コミュニティ」 v2c

要はsnmpの情報を書き込めばOKです。

下記を行い、追加した機器の情報を取得します。

./discovery.php -h all
./poller.php -h all

/etc/cron.d/observiumというファイルを作成し、cronを設定します。ユーザ名が入っているため、/etc/crontabもしくは/etc/cron.d/でないとちゃんと動きません。

33  */6   * * *   root    /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 *      * * *   root    /opt/observium/discovery.php -h new >> /dev/null 2>&1
*/5 *      * * *   root    /opt/observium/poller-wrapper.py 2 >> /dev/null 2>&1

 

さて、ここまでくれば、残すはhttpdの設定のみです。ここではまりました。Observiumのインストール手順には、稼働しているドメインがObserviumのみであれば、これでOKという形で設定が載せてあります。

<VirtualHost *:80>
DocumentRoot /opt/observium/html/
ServerName  observium.domain.com
CustomLog /opt/observium/logs/access_log combined
ErrorLog /opt/observium/logs/error_log
<Directory "/opt/observium/html/">
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
</VirtualHost>

しかし、うまくいきませんでした。アクセス権限が問題だったのですが、apacheの設定がバージョンによって異なっていたのではまりました。はい、apacheの2.4系が入っているサーバでインストールしていました。2.4系だとRequire all grantedが必要です。それ以前だとOrder Allow, Deny Allow from allの2文が必要になってきます。インストールに失敗したと思って何度も試してしまいました。テストだからといって、2.2系→2.4系に急に変えるもんじゃありませんね。


ovserviumをインストールしてみた

タグ: , | 投稿日: 投稿者:

Wordの変更履歴について書こうと思っていましたが、題名の通り、ovserviumという監視ソフトのインストールについて書きます。

どんな使い心地なのだろうという興味本位ですので実用性は薄いとは思いますのでご容赦ください。

さて、このインストールですが、アシストしてくれるOSは、UbuntuとDebianのみだそうです。RHELやCentOSはインストール手順が公開されていますが、「できなくても手助けできないよ」というスタンスなんです。勉強がてらCentOSでインストールしていきます。

まず、定番レポジトリの追加が必要になります。レポジトリの追加の手順はここでは省きます。
また注意としてel4やel5はサポートされていないらしいので、CentOS6以上を使用しましょう。

  • rpmforge
  • epel

次にyumでパッケージをインストールしていきます。提供されているコマンドラインが下記です。

yum install wget httpd php php-mysql php-gd php-posix php-mcrypt php-pear php-pear.noarch \
vixie-cron net-snmp net-snmp-utils fping mysql-server mysql MySQL-python rrdtool subversion \
jwhois ipmitool graphviz ImageMagick

たくさんのパッケージを一緒にインストールしてますね。パッケージを判断して一つづつインストールしても良いかもしれません。

ここまでがインストールの下準備です。次は、observiumのインストールディレクトリに移動してインストールを開始します。

cd /opt

次にソフトのダウンロード。

wget http://www.observium.org/observium-community-latest.tar.gz

解凍

tar zxvf observium-community-latest.tar.gz

これから設定です。そのために、まずフォルダの移動。

cd observium

MySQLを起動させたら、

service mysqld start

MySQLに入り、observiumのデータベースを作ります。(パスワードを設定している場合は、それに対応したやり方をしてください)

mysql -u root 
mysql> CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost'
   -> IDENTIFIED BY '「任意のパスワード」';

次に、SELinuxを無効化しますが、これも省略します。

今回はここまで。
スムーズに設定できれば良いなと思っていますが、問題がでてくるのはデフォルトなのであまり期待しないようにしています(苦笑)

ではまた。


yumをおいしく その2

タグ: , | 投稿日: 投稿者:

さて、前回は「–enablerepo=」のオプションについて触れましたが、その続きからです。

ワイルドカードが使えることは書きましたが、「–enablerepo=」と「–disablerepo=」は同じコマンドラインで使用することができます。
先に記述された方から実行されていきますので、
一旦、「–disablerepo=*」で全てのレポジトリを無効にした上で「–eanablerepo=」をすれば、必要となるレポジトリのみを有効化することができます。
また、「–enablerepo=」を続けることで、複数のレポジトリを有効化することもできます。

新しいバージョンのyumでは下記で今までに実行したyumの履歴を確認することができます。

yum history

これには非常に便利なサブコマンドがあり、これを効果的に使えば作業が安全かつ効率的になります。

yum history undo [やり直したい作業のID]

undoと対になるredoもあるのでパッケージ導入前と後の動作確認や作業のやり直しに役立ちます。

yum history pkgs [パッケージの名前(例:phpやsambaなど)]

上記を使用すると記録されているパッケージのyumの履歴を確認できます。つまり、修正を加えたいパッケージのみをいじることが可能になるわけです。
尚、履歴に対象のパッケージが無い場合は、エラーになります。

そして最後に、

yum history new

これを実行すると履歴が全て廃棄されます。yumの履歴が多くなり過ぎて把握しづらくなったときなどに利用することになると思います。
yum history statsを使うと履歴の概要が確認できるので、履歴が信用できるものなのか、あてになるのかを確認することができます。

 


yumをおいしく

タグ: , | 投稿日: 投稿者:

yumはCentOSなどのLinuxで使用されているパッケージインストーラです。

yumという単語は、おいしいという意味の単語ですが、フォーマルな場ではほとんど使われません。
ほとんど幼児語であり、親しい仲や子供に対してのみ使用されるので会話で使用する際はご注意を。

さて、yumはサーバをセットアップする上で、非常に有用なツールですが、インストールやアップデート以外にも使い道があります。
yumを有効利用するには、レポジトリについて知る必要があります。
yumを扱う上で重要になるのが、レポジトリと呼ばれるものです。
このレポジトリ次第で、yumに出来ることが決まります。
この場合のレポジトリとは、簡単に言うとパッケージのリストみたいなものです。レポジトリが違うとインストールされるパッケージやバージョンが変わったりします。レポジトリは複数登録できますが、あまり数が多いと時間がかかってしまい不便になってしまうため、通常はレポジトリを無効化しておき、必要時のみ有効化するという方法を取るのが良いです。

–enablerepo=[レポジトリ名]

をコマンドオプションとして追加することで、yumの実行時にのみレポジトリを有効化することができます。
因みに、

–disablerepo=[レポジトリ名]

を使用することでレポジトリを無効化することができます。

さて、この有効化と無効化ではワイルドカード(*)を使うことができます。ですので上手く設定をすると効率的に複数のレポジトリを指定し有効化・無効化を行えるようになります。

さて、ここで有用となってくるのが、次のコマンド

yum repolist

有効となっているレポジトリのリストを表示してくれます。
ハイ、有効となっているレポジトリを表示させるので、上述の有効化のオプションが役に立ちます。

yum repolist –enablerepo=*

と入力すると通常では無効状態となっているレポジトリも含め全てのレポジトリが表示されます。
この際、左の列に表示されるのが、名称で有効化・無効化のオプションで認識されるものとなります。

もし、レポジトリの状態が意図しない形で有効化・無効化されている場合、レポジトリのファイルを修正します。
CentOSの場合、下記にレポジトリのファイルが保管されています。

/etc/yum.repos.d

対象となるレポジトリの情報が記載されているファイルを編集すれば、有効化・無効化の設定を変更できます。

[ ]で囲まれているのが、レポジトリの名称です。これを確認してください。次の[ ]に囲まれた記述が現れるまでがそのレポジトリについての設定になります。その中に、enable=0、もしくはenable=1という項目があるはずです。これが有効化・無効化の設定になります。0が無効、1が有効となるので、適宜に変更してください。

レポジトリを使いこなすことができるとyumが便利になるので皆さんもぜひ試してください。