👊

【macOS】実行権限もあるし、絶対に正しいsudoパスワードも打ち込んでるのに実行できない時はこうすればいいんや!

2024/08/31に公開

はじめに

実行権限はちゃんとある⋯

絶対に正しいsudoパスワードを入力しているのに弾かれてしまう⋯


lsコマンドをsudoで実行して、実行したいファイルの存在とsudoパスワードが正しいことを確認


同じパスワード入力しただろ!と゛お゛し゛て゛た゛よ゛お゛お゛お゛!

このファイル…何か変…

PCに詳しい知り合いの建築技師の方に聞いてみようと思います。
ということで、この問題をどうやったら解消できるのか調べてみました。

私の動作環境

  • MacBook Air M1 2020
  • MacOS Sonoma 14.6

結論

xattrコマンドを使用しましょう。

おい映司!これを使え!
xattr -c <ファイル名>

説明

実行権限を確認した際に「@」がついていました。こいつが悪さをしているようです。

この「@」はファイルに拡張属性がついていることを示しています。
macOSは、ダウンロードしたファイルにcom.apple.quarantineという拡張属性を付与することがあるそうです。
この属性は、ファイルが信頼できないソースからダウンロードされたことを示し、実行を制限する可能性があります。セキュリティが高いが故に⋯

つまり、この拡張属性を削除すれば良いのです。

macOSで拡張属性を表示、変更、削除するためには、xattrコマンドを使用する必要があります。

参考記事

以下のコマンドのように、xattrコマンドに-lオプションをつけることで指定したファイルの拡張属性をリスト表示できます。

xattr -l <ファイル名>


com.apple.quarantine属性がついているのが確認できた

そして、-cオプションをつけることで指定したファイルについているすべての拡張属性を削除できます。

xattr -c <ファイル名>


com.apple.quarantine属性を削除できた

これによって、私は実行したいファイルを自由に実行できるようになりました!

さいごに

ここまで記事を読んでくださり、ありがとうございました!

セキュリティが高すぎるとこんなこともあるんですね⋯びっくりです。

皆さんも素敵なハッピー実行ライフを!!!🌸

GitHubで編集を提案

Discussion