web-dev-qa-db-ja.com

.shスクリプトの実行時に許可が拒否されました

./geany_run_script.sh: 5: ./geany_run_script.sh: ./Area_circumference: Permission denied

program exited with code: 126。この問題は、コードを実行しようとすると常に発生します。解決策は何ですか?

65
wkhwilo

ファイルのアクセス許可(および所有権)の変更 について説明するリンクを次に示します。

これらをスキップしたい場合(もちろん)、ユーザーホームディレクトリにディレクトリ/フォルダーを作成し、Cプログラム(またはその他)で作業することができます。


ターミナルを開くことができます(押す Ctrl + Alt + T)およびcdをターゲットディレクトリに:

cd /path/to/target

ファイルに「the_file_name」実行許可を与えるには(ファイルシステムでRW権限が許可されている場合):

chmod +x the_file_name
111
precise

実行権限のみを付与する必要があります。これに従ってください:

    chmod +x filename.sh
    ./filename.sh

新しいスクリプトファイルを作成すると、デフォルトで読み取りおよび書き込み権限が付与されます。しかし、それらを実行したい場合は、上記のように実行許可を与える必要があります。

20
Jay Modi

CTRL + ALT + Tを押すか、グラフィカル環境の適切なショートカット(TerminalxTermなど)を使用して、ターミナルアプリケーションを開きます。
画面に表示される均一なウィンドウには、点滅する文字が表示されます。terminal cursor:ウィンドウをクリックしてテキストを入力し(通常はコマンド)、ENTERを押して確認します入力。
カーソルの前には、root directory( "/")からのファイルシステム上の現在の位置が常にリストされ、自宅(個人ファイルがある)は "〜"と呼ばれます。
ディレクトリ/フォルダーを変更するには、cd EXISTENTFOLDERを使用します(EXISTENTFOLDERをフォルダー名に置き換えます)。迷っている場合は、cdと入力するだけで、すぐにホームディレクトリに戻ります。
問題を解決しましょう

  1. cdコマンドを使用して、ソースコードがあるディレクトリを見つけます。 TABを使用してください。 ls -lhを実行すると、実行可能なパスと実行するファイルのリストが表示されます。

  2. ブロックされたファイルが見つかったら、chmod +x FILENAMEを実行します(FILENAMEをソースコードファイルの名前に置き換えます)。

  3. ブロックされたファイルが複数ある場合は、chmod +x *を実行して、現在のディレクトリ内のすべてのファイルのロックを解除します。 危険なまたは安全でないファイルをchmod + xしないでください

  4. ./FILENAME YOUREVENTUALARGUMENTSを実行して、実行可能ファイルを実行します。

  5. コンパイルされたプログラムがホームディレクトリの外で読み取り/書き込みを試みる場合は、Sudo ./FILENAME YOUREVENTUALARGUMENTSを使用してrootとして実行する必要があることに注意してください。

コマンドのマニュアルを入手するには、man COMMANDを実行します(COMMANDを正確なコマンド名に置き換えます。Linuxでは大文字と小文字が区別されます)。

いくつかのシェルにはOpen terminal hereコマンドがあり、あなたの人生を簡素化し、将来それを検索します。コマンドシェルは、うまく使えばあなたの親友になり得ることを覚えておいてください。 :-D

それだけです。さらにヘルプが必要な場合は、ここにコメントしてください。
私があなたを助けているなら、左の上矢印を押してください。解決したら、この回答をベストアンサーとしてマークしてください。

LinuxとUbuntuで素晴らしい体験をしてください。

2
Lorenzo Ancora