您是否遇到过
Execute permission denied 或
The parameter list is too long 这样的错误消息?您想知道错误的原因吗?这些是 UNIX 和 Linux 新手经常遇到的错误,他们可能不知道如何避免这些问题。本文解释这些错误并提供解决方法。
./foo: 0403-006 Execute permission denied. 您编写或下载了一个新的 shell 脚本,很想试试它。这听起来不错,但是在试图执行这个命令时,收到了错误消息
./foo: 0403-006 Execute permission denied。怎么回事儿?这个消息可能源于两个问题:
- 您不具有执行这个命令的足够权限。
- 对于脚本中定义的 shell,您不具有足够的权限,无法告诉 shell 应该如何解释脚本和其中的命令。
您不具有执行这个命令的足够权限 检查权限最简便的方法是,查看您是作为哪个用户登录服务器的,然后查看
ls –l 的输出:
| # iduid=5008(cormany) gid=330(atc) groups=110(sales),201(sshd)# ls -l foo-rwxrw-r--1 cormanyatc75 Jun 10 18:46 foo |
根据这个示例,您是作为用户
cormany 登录的,而 shell 脚本的所有者是
cormany,他具有
rwx 权限(即读、写和执行)。这没问题,所以我们考虑下一个可能的原因。
对于脚本中定义的 shell,您不具有足够的权限,无法告诉 shell 应该如何解释脚本和其中的命令 我们来看看脚本的内部:
| # cat foo#!/bin/ksh.newecho "This is a just a test"exit 0 |
根据第一行,这个脚本看起来应该作为 Korn shell 脚本进行解释。通过检查所用的 shell 的权限,可以确认实际上是否可以使用它:
| # ls –l /bin/ksh.new-r-xr-x---5 binbin289072 May 27 19:03 /bin/ksh.new |
作为 root 用户,修改要使用的 shell 的文件权限,然后再试一次:
- 切换为 root 用户:
- 确认您现在是 root 用户而不是原来的用户:
| # iduid=0(root) gid=0(system) groups=2(bin),3(sys),7(security),8(cron),10(audit),11(lp) |
- 修改文件的权限:
- 确认文件权限已经改变了:
| # ls -l /bin/ksh.new-r-xr-xr-x1 binbin289072 Jun 10 18:45 /bin/ksh.new |
- 退出
su,恢复为原来的用户: | # exit# iduid=5008(cormany) gid=330(atc) groups=110(sales),201(sshd) |
- 再次尝试执行脚本:
| # ./fooThis is a just a test |
好了,问题解决了!
在Ubuntu/Debian下禁用笔记本触控板MPlayer命令行模式下的使用方法相关资讯 UNIX
- 一个涵盖 Unix 44 年进化史的版本 (12/23/2015 19:08:29)
- 2002年,程序员和Unix大神们的桌面 (11/10/2015 08:18:44)
- 20个 Unix/Linux 命令技巧 (03/22/2015 08:09:34)
| - UNIX 家族小史 (12/01/2015 12:03:06)
- 从Unix 和 PC机:重释Linux的起源 (05/17/2015 21:13:04)
- 什么是Unix以及它为什么这么重要? (07/23/2014 16:47:39)
|
本文评论 查看全部评论 (0)