FTP利用でのファイル/ディレクトリの属性変更:UNIX処方箋
「事件は枯れたシステムが稼働する現場で起こってるんだ」と現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、SITEコマンドに対応していないFTPサーバでファイル/ディレクトリの属性変更を行う方法を解説する。
Solaris 8上のFTPサーバに対して、WindowsのFTPクライアントでファイル転送を行っています。FTPサーバに転送されたファイルは、必ず属性が「rw-r--r--」(644)になります。FTPクライアントで属性を変更しようとしても、
502 SITE command not implemented.
というエラーが表示されて変更できません。転送したファイルの属性を「rw-rw----」(660)にしたいのですが、FTPサーバもしくはクライアント側の設定で対応できますか?
Solaris 8標準のFTPサーバはSITEコマンド(FTPではサポートされていないOS上のコマンドを実行するための拡張コマンド)に対応していないため、クライアント側からの属性変更はできません。このような場合、サーバ側では次のような対応が可能です。
標準以外のFTPサーバソフトウェアを導入
標準のFTPサーバではなく、SITEコマンドをサポートするFTPサーバソフトウェアを導入すればクライアントから属性を変更できます。SITEコマンドをサポートしているかどうかは、FTPログインをしてremotehelpコマンドを実行すれば確認可能です。一覧表示されるコマンド名の横に「*」印のあるものはサポートされていないので、注意してください(実行例1)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
なお、SITEコマンドはOS上のコマンドを実行させる拡張コマンドであるため、実行可能なコマンドによってはセキュリティホールとなってしまいます。SITEコマンドをサポートするサーバソフトウェアを導入した場合、特定のコマンドしか実行できない状況になっているかどうかを確認しておきましょう(実行例2)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
標準のファイル属性を変更
新規作成されるファイルおよびディレクトリの属性は、umaskコマンドによって指定できます。これは、FTP経由でのファイル転送によるファイル作成時にも適用されます。
このumaskは、新規作成されるファイルおよびディレクトリに対するファイル属性のマスク値です。例えば、umaskが設定されていない状態(000)でファイル/ディレクトリを作成した場合、その属性は、
ファイル:rw-rw-rw-(666)
ディレクトリ:rwxrwxrwx(777)
となります。このままでは誰でも読み書き可能になってしまうため、システム標準のumask値としては「022」が設定されており、図1のように所有者以外から書き込めないような属性となります。
FTPファイル転送のためにシステム全体のumask値を変更すると、セキュリティ上問題があるため、質問のケースではFTPについてだけumask値を変更すれば良いでしょう。Solaris標準のFTP用umaskの設定は、/etc/default/ftpdファイルで行います。/etc/default/ftpdファイルは標準では存在しないので、
umask=
という内容のファイルを新規作成します。例えば、ファイルの属性を「660」にしたい場合は、umask値として「006」を設定します。
umask=006
設定後にFTPデーモンもしくはinetdの再起動は必要なく、すぐに設定が反映されます。
関連記事
- UFS loggingによるエラーと復旧方法
- ALOMにおけるSC用ユーザーの確認とパスワード変更
- PostgreSQLのテーブルデータをファイルへコピーする方法
- sotrussやapptraceによる実行コマンドのトレース
- TCP遅延肯定応答タイマーのタイムアウト値の変更
- 複数のマシンで効率的にシャットダウンする方法
- WWW::MechanizeモジュールによるWebアクセスの自動化
- IPv6アドレスの自動生成による不具合解消法
- キャッシュファイルを利用したNFSマウント
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.