【发布时间】:2013-12-06 23:17:14
【问题描述】:
我已附加一个 EBS 块并将其安装在我的 EC2 实例上的“/data”,该实例运行 Ubuntu 12.04。有一个运行正常的备份脚本,但是在我将脚本移动到“/data/backup”文件夹后,它无法执行,出现错误:
-bash: ./db_backup.sh: Permission denied
权限是:
-rwxr-xr-x 1 ubuntu ubuntu 2.3K Nov 22 03:25 db_backup.sh
如果我用“sudo”运行它,没有错误也没有输出,但应该有一些东西回显到控制台。
我也尝试使用“strace”来跟踪执行,得到:
execve("./db_backup.sh", ["./db_backup.sh"], [/* 19 vars */]) = -1 EACCES (Permission denied)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f354f010000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: Permission denied\n", 32strace: exec: Permission denied
) = 32
close(3) = 0
munmap(0x7f354f010000, 4096) = 0
exit_group(1) = ?
但是如果我把这个脚本放在某个地方,比如“/tmp”,它就没有问题了。为了缩小根本原因,我还创建了一个测试脚本:
#!/bin/bash
echo "hello"
很遗憾,如果我将它放在 /data 文件夹中,这也不起作用。
【问题讨论】:
标签: linux bash ubuntu amazon-ec2