歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 避免 UNIX 和 Linux 中的常見錯誤

避免 UNIX 和 Linux 中的常見錯誤

日期:2017/2/28 16:20:19   编辑:Linux教程

您是否遇到過 Execute permission deniedThe parameter list is too long 這樣的錯誤消息?您想知道錯誤的原因嗎?這些是 UNIX 和 Linux 新手經常遇到的錯誤,他們可能不知道如何避免這些問題。本文解釋這些錯誤並提供解決方法。

./foo: 0403-006 Execute permission denied.

您編寫或下載了一個新的 shell 腳本,很想試試它。這聽起來不錯,但是在試圖執行這個命令時,收到了錯誤消息 ./foo: 0403-006 Execute permission denied。怎麼回事兒?這個消息可能源於兩個問題:

  • 您不具有執行這個命令的足夠權限。
  • 對於腳本中定義的 shell,您不具有足夠的權限,無法告訴 shell 應該如何解釋腳本和其中的命令。

您不具有執行這個命令的足夠權限

檢查權限最簡便的方法是,查看您是作為哪個用戶登錄服務器的,然後查看 ls –l 的輸出:

# id
uid=5008(cormany) gid=330(atc) groups=110(sales),201(sshd)

# ls -l foo
-rwxrw-r--    1 cormany  atc              75 Jun 10 18:46 foo

根據這個示例,您是作為用戶 cormany 登錄的,而 shell 腳本的所有者是 cormany,他具有 rwx 權限(即讀、寫和執行)。這沒問題,所以我們考慮下一個可能的原因。

對於腳本中定義的 shell,您不具有足夠的權限,無法告訴 shell 應該如何解釋腳本和其中的命令

我們來看看腳本的內部:

# cat foo

#!/bin/ksh.new

echo "This is a just a test"

exit 0

根據第一行,這個腳本看起來應該作為 Korn shell 腳本進行解釋。通過檢查所用的 shell 的權限,可以確認實際上是否可以使用它:

# ls –l /bin/ksh.new

-r-xr-x---    5 bin      bin          289072 May 27 19:03 /bin/ksh.new

作為 root 用戶,修改要使用的 shell 的文件權限,然後再試一次:

  1. 切換為 root 用戶:
    # su -
    root's Password:
    

  2. 確認您現在是 root 用戶而不是原來的用戶:
    # id
    uid=0(root) gid=0(system) groups=2(bin),3(sys),7(security),8(cron),10(audit),11(lp)
    

  3. 修改文件的權限:
    # chmod 555 /bin/ksh.new
    					

  4. 確認文件權限已經改變了:
    # ls -l /bin/ksh.new
    -r-xr-xr-x    1 bin      bin          289072 Jun 10 18:45 /bin/ksh.new
    

  5. 退出 su,恢復為原來的用戶:
    # exit
    # id
    uid=5008(cormany) gid=330(atc) groups=110(sales),201(sshd)
    

  6. 再次嘗試執行腳本:
    # ./foo
    This is a just a test

好了,問題解決了!

Copyright © Linux教程網 All Rights Reserved