bash: /root/bin/hello_world: 権限が拒否されました。

bash: /root/bin/hello_world: 権限が拒否されました。

CentOS 7を使用しています。

  1. 私はこのように最初のbashスクリプトを書いた。

    #!/bin/bash
    echo 'this is my first code'
    

    私はそれを次のように保存します。こんにちは世界

  2. 私のルートホームディレクトリにディレクトリを作成しました。

    mkdir bin
    
  3. その後、スクリプトをその~/binディレクトリに移動しました。

  4. それから私はそうしました。

    export PATH=~/bin:"$PATH"
    source ~/bin
    
  5. その後、次のコマンドを使用してスクリプトを実行してみました。

    hello_world 
    

しかし、私はそれを見ることができませんが、エラーがthis is my first code発生しますbash: /root/bin/hello_world: Permission denied

答え1

明示的なインタプリタを実行せずにスクリプトを実行するには(図を参照bash ~/bin/hello_world)、スクリプトファイルに「実行可能ビット」セットが必要です。これは次のように行われますchmod(マニュアルを参照)。

chmod u+x ~/bin/hello_world

ファイル所有者の実行可能ビットを設定します。

または、

chmod +x ~/bin/hello_world

これは現在umaskumask022


実行した手順はsource無意味で、エラーメッセージが表示されます(ディレクトリをインポートできません)。

PATH新しい設定を「永続的に」設定する必要がある場合は、この行をexport PATHシェルの起動ファイルに追加します(対話型シェルを~/.bashrc使用している場合)。bash


また、対話型ルートプロンプトで作業しないでください。テストとナビゲーションのためにsudo管理タスクを実行する必要がある場合は、特権のないユーザーアカウントを使用してください。

関連情報