Bash

bash:/root/bin/hello_world:權限被拒絕

  • May 28, 2018

我正在使用 CentOS 7。

  1. 我這樣寫了我的第一個 bash 腳本。
#!/bin/bash
echo 'this is my first code'

我把它保存為hello_world 2. 我在我的根主目錄中創建了一個目錄。

mkdir bin
  1. 然後我將腳本移動到~/bin目錄中。
  2. 然後我這樣做了:
export PATH=~/bin:"$PATH"
source ~/bin
  1. 然後我嘗試使用以下命令執行腳本。
hello_world 

但我沒有看到this is my first code但我得到了一個bash: /root/bin/hello_world: Permission denied錯誤。

要使腳本在不使用顯式解釋器(如bash ~/bin/hello_world)執行的情況下可執行,腳本文件必須設置其“可執行位”。這是通過chmod(參見其手冊)完成的:

chmod u+x ~/bin/hello_world

這將為文件的所有者設置可執行位。

或者,

chmod +x ~/bin/hello_world

這會根據您目前的umask. 假設你umask022(一個常見的預設值),這將使它對所有使用者都可執行。


您所做的source步驟是胡說八道,應該給您一條錯誤消息(您無法獲取目錄)。

如果您需要將 new 設置PATH為“永久”,則將該export PATH行添加到 shell 的啟動文件(~/.bashrc如果您bash用作互動式 shell)。


此外,避免在互動式根提示符下工作。使用非特權使用者帳戶進行測試和探索,並sudo在需要執行管理任務的那幾次中使用該帳戶。

引用自:https://unix.stackexchange.com/questions/445250