.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で詳しく見る

この記事を書いた人

ものくろ(Webコーチ)

株式会社あみだす 代表取締役 / 博士課程中退(農学) / ブロガー / Web&Blogコーチ / 親指シフト orzレイアウト開発者 / 講師 / フリーランス / 旅人 / 民事裁判経験者 / 毎月どこかに出張

ブログは月間65万PVを記録(2016年1月)。 これまでに250回を超えるワークショップ開催・のべ1,200名のブログサポートに携わる。

WordPressが得意 / 好きなもの(無刻印キーボード・十割蕎麦・湯葉)/ あまり好みでないもの(ブロッコリー・値切り)

開催している講座に参加する