@nobu6787 (nobunobuta)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

zsh: permission denied:が表示されてしまいます。

解決したいこと

現在、私は「退屈なことはPythonにやらせよう」でプログラミングを勉強しています。どうしても上手く作動しない部分があるので、教えて頂けたら幸いです。

ターミナルから下記コードを実行しようとしたところ、
zsh: permission denied:
と表示されてしまいます。

コード(ファイル名pw.py)

#! python3
#pw.py - パスワード管理プログラム(脆弱性あり)

PASSWORDS = {'email': '12121212121212',
             'blog': '23232323232323',
             'luggage': '12345'}

import sys
import pyperclip

if len(sys.argv) < 2:
    print('使い方: python pw.py[アカウント名]')
    print('パスワードをクリップボードにコピーします')
    sys.exit()

account = sys.argv[1] #最初のコマンドライン引数がアカウント名

if account in PASSWORDS:
    pyperclip.copy(PASSWORDS[account])
    print(account + 'のパスワードをクリップボードにコピーしました')
else:
    print(account + 'というアカウント名はありません')

尚、私のアクセス権は読み/書きで、staffとeveryoneは読み出しのみです。
sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme
sudo chmod 755 /dvtcolorconvert.rb
を入力するとPasswordを求められ、入力すると

chmod: /Users/私の名前が入ります/Themes/ObsidianCode.xccolortheme: No such file or directory

と返ってきてしまいます。
どのようにしたら正常に実行できるでしょうか。

0 likes

2Answer

lsコマンド等で確認した場合、
該当ファイルObsidianCode.xccolortheme~/Themes/
存在していますか?

0Like

Comments

  1. @nobu6787

    Questioner

    ご返信ありがとうございます。間違えてしまいました。
    [Fixed] Zsh Permission Denied in Mac Terminalのサイトをそのまま引用して、
    sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme
    sudo chmod 755 /dvtcolorconvert.rb
    としてしまいました。
    ただ、pw.pyのファイルが存在する

    sudo chmod 755 ~/Users/andounobukiyo/Desktop/オライリー/pw.py

    とターミナルに入力して、パスワードを入れても

    chmod: /Users/andounobukiyo/Users/andounobukiyo/Desktop/オライリー/pw.py: No such file or directory

    となってしまいます。どのように考えればよろしいでしょうか。初心者で申し訳ございません。

このページを参考にしたのでしょうか?コマンドの対象になっているファイルはこの質問者の環境固有のもので、あなたの手元にはないと思います。 pw.py のパーミッションを変更して実行可能にするには

chmod +x pw.py

を実行してください。 sudo は不要です。

0Like

Comments

  1. @nobu6787

    Questioner

    ご返信ありがとうございます。
    ご指示いただいた通り、ターミナルに上記コードを入力したのですが、
    chmod: pw.py: No such file or directory
    となってしまいました。
    どのように考えればよろしいでしょうか。



  2. 上記のコマンドはカレントディレクトリに pw.py があることを前提としています。事前に cd コマンドでカレントディレクトリを変更すれば動きます:
    cd ~/Desktop/オライリー
    chmod +x pw.py

    またはファイルの絶対パスを直接指定してください:
    chmod +x ~/Desktop/オライリー/pw.py

    なお、他のコメントにある sudo chmod 755 ~/Users/andounobukiyo/Desktop/オライリー/pw.py が動かない件ですが、
    パス名を ~/Desktop/オライリー/pw.py に変えれば動きます。

    これは、パス名の先頭にある 「~」 は現在のユーザーのホームディレクトリを指す文字列(ここでは 「/Users/andounobukiyo」 )に置き換わるせいです。動かない書き方では ~ に続けて余計にホームディレクトリ名を書いているため、間違ったパスになってしまっています。
  3. @nobu6787

    Questioner

    ご返信ありがとうございます。
    おっしゃられたように一度試みたのですが、確かにエラーは出ませんでしたが、何も反応せずに
    〜MacBook-Air オライリー % chmod +x pw.py
    〜MacBook-Air オライリー %
    というように何も反応しませんでした。
    尚、IDLE→Fileを開いて→Run Moduleを行ったら正常にひらけます。
    ターミナルから開くのは何か設定等必要なのでしょうか。
  4. chmod は正常に動けば何もメッセージを出しません。 pw.py はもう実行可能な状態になったはずです。
  5. chmod はファイルのパーミッション(読み書きや実行の可否を決めるフラグ)を変更するコマンドですが、こういった機能が単一で成功時に何が起きるか明らかなコマンド類は成功のメッセージを出さないことが多いです。
  6. @nobu6787

    Questioner

    そうなのですね。ありがとうございます!勉強になりました。

Your answer might help someone💌