.commandファイルが適切なアクセス権限がなく実行できない件を解決する| Mac OS X

自動処理などで作成したスクリプトの.commandファイルを実行しても、「ファイル”.command”は、適切なアクセス権限がないために実行できません。」と怒られて、実行できません。

ファイルの権限ということで、Finderの「情報」からアクセス権限を確認しても「読み書き」ともにOKになっています。

ここで言われているのは、ファイルパーミッションなのでFinderから確認・変更できません。ターミナルのシェルからコマンドで設定する必要があります。

Key20130210100

実行できません。

実行しようとしても、下のエラーが表示されます。これはファイルパーミッションの実行権限がないからです。

Runerror001

パーミッション確認

ターミナルを起動します。

変更したいファイルのあるパスまで移動します。今回は「login.command」とします。ここでパーミッション確認のために下のコマンドを実行します。

[bash]
ls -l login.command
[/bash]

Login001

「-rw-r–r–」とバーミッションが表示されます。先頭の1文字はファイル・ディレクトリ・シンボリックリンクを示します。残りの9文字は3文字ごとに「オーナー」,「グループ」,「その他」の権限を示しています。この3文字がセットになっており「読み込み,書き込み,実行可能」を示しています。

この「-rw-r–r–」なら、ファイルでオーナーは読み書き、グループは読み込み、その他は読み込み権限を許可されています。あっ誰も実行できません。

このパーミッションは3桁の数字でも表現出来ます。この場合は「644」です。このパーミッションについては下のリンクが参考になります。

パーミッションの操作 – [物理のかぎしっぽ]

パーミッション変更

パーミッション変更については下のリンクが参考になります。

Mac OS X Tips : Permissionの設定

オーナーの実行を可能にする設定のため、下のコマンドを入力します。

[bash]
chmod u+x login.command
[/bash]

Login002

実行後にパーミッションを確認します。

[bash]
ls -l login.command
[/bash]

Login003

「-rwxr–r–」に変わっています。オーナーの実行が可能になりました。これで実行可能です。

ターミナルを使わずに変更できる

ターミナルを使わずに変更できるアプリがありました。ただ、パーミッションはしっかり理解できたほうが幸せになれますので、ターミナルの操作に慣れるメリットも大きいです!。

わかばマークのMacの備忘録 : BatChmod

コマンドをマスターしたい!あなたにおすすめ!

UNIXコマンドブック 第3版 UNIXコマンドブック 第3版
伊藤 真人,田谷 文彦,三澤 明ソフトバンククリエイティブ
売り上げランキング : 90604Amazonで詳しく見る

この記事を書いた人

大東 信仁

カンパチが好きです。

プロフィールはこちら

10月14日開催 参加者募集中
(画像をタップ→詳細へ)

ミッションナビゲート モニター
(画像をタップ→詳細へ)

広告