連載第39回
2014年4月19日
「chown」ファイルやディレクトリの所有者を変更する

 おかげさまで前回起きたトラブルは何となく復旧できたので、その後、まずはサイトを公開するディレクトリに置いたファイル等をいじってみることにしました。そこで、以前ServersMan@VPSからレンタル開始したばかりの頃に、お試しでテストファイル等をアップロードしていたものの中から「home.html」の名称を変更しようとしたのですが、拒否されたのですよ(↑)。

 さて、拒否される理由にすぐ思い当たらず、またいつものように珈琲を淹れてぼんやり天井を眺めていたのですが、アラートにある「権限」という文句に注目して、ふと思い付いたのは「アクセス権」。ホームページを作ろうとするときには、何かとお世話になるアレです。そこでCoda 2からファイルの情報を見てみました。

 すると、htmlファイルのアクセス権は「644」となっていたので、まずそれを情報ウィンドウから直接変更を試みたのですが…拒否されました(↑)。
 またぼんやりと珈琲を飲みながら画面を眺めていたら、ふとウィンドウ下部にある「所有者・グループ」の箇所が「root」になっていることに気付きました。何となく、これが原因のような気がする…。サーバのrootは削除し、今はユーザーIDでログインしている状態。つまりその一般ユーザーIDではファイルを操作する権限が無い、ということなのではないか?ファイルの所有者じゃないから。

所有者を変更する「chown」

 さて、そこで、ファイルの権限を変更する以前に、そのファイルの「所有者を変更」するにはどうすればよいのかググってみると、Linuxには「chown(チェンジ・オーナー)」というコマンドがあることが分かりました。

 早速、home.htmlの所有者をrootから普段使い用のユーザーIDに変更してみます。所有者の変更はスーパー・ユーザーしか出来無いということなので「su -」でrootに昇格してから、ファイルのあるディレクトリまで移動し、コマンドを入力します。

chownコマンド基本

# chown ▲▲▲ home.html
# chown ▲▲▲:■■■ home.html

1行目:▲▲▲は変更先の希望ユーザーID。
2行目:同時に属するグループを■■■に変更する場合。

 情報ウィンドウで確認してみると、問題なく所有者がrootから「▲▲▲」に変更されていたので、home.htmlの名称をindex.htmlに変えようとしたのですが、またもや拒否されました…(?)。ファイルそのものの所有者は変更したのに、まだ権限が無いと警告される。これは一体どういう状況なのかと。ちなみにグループも変更してみたのですが、状況は変わらず…。

上位のディレクトリも所有者変更の必要アリ

 また珈琲を飲みながら、上の参考記事を読み返したりしていたのですが、ふと「ファイルを内包しているフォルダ自体の所有者も変更しないとダメなのではないか?」と思い当たりました。つまりここでは「/var/www/html」の「html」というディレクトリです。ディレクトリとその中身のファイル所有者変更は「-R」を使います。

続・chownコマンド基本

# chown -R ▲▲▲ html

▲▲▲は変更先の希望ユーザーID。

「cd」コマンドで「/var/www/」まで移動しておいてから実行してみました。

 コマンドを実行してみると「html」のディレクトリ自体の所有者がユーザーIDに変更され、その中に保存していた「home.html」の所有者も同時に更新されていました。

 この状態でファイル名を変更してみると、何らアラートも出ずにそのまま無事変更(読みが当たった)。これでようやく独自ドメインにSafariでアクセスすると、ダミーページが表示されるようになりました。

 長かったなあ…。これからもこんな小さなトラブルが引き続き起こるのでしょうが、些細な躓きについても出来るだけメモしていくようにします。つづく。