Etcd 可执行文件的 root 权限被拒绝

Etcd 可执行文件的 root 权限被拒绝

我正在尝试在 Debian 机器上安装 etcd。

root@s1:/tmp/test-etcd# uname -a
Linux s1 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux
root@s1:/tmp/test-etcd# uname -m
x86_64

root@s1:/tmp/test-etcd# lshw -class cpu
  *-cpu                   
       product: Intel(R) Xeon(R) CPU           X3430  @ 2.40GHz
       vendor: Intel Corp.
       physical id: 1
       bus info: cpu@0
       width: 64 bits
       capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp x86-64 constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi flexpriority ept vpid

我遵循 github repo 中的标准程序:

ETCD_VER=v3.0.14
DOWNLOAD_URL=https://github.com/coreos/etcd/releases/download
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
mkdir -p /tmp/test-etcd && tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/test-etcd --strip-components=1

/tmp/test-etcd/etcd --version

但是当我执行 etcd --version 命令时,我收到权限被拒绝错误。

root@s1:/tmp/test-etcd# ./etcd --version
-bash: ./etcd: Permission denied
root@s1:/tmp/test-etcd# ls -l
total 37776
drwxrwxr-x 11 1000 1000     4096 Nov  4 20:52 Documentation
-rw-rw-r--  1 1000 1000    29472 Nov  4 20:52 README-etcdctl.md
-rw-rw-r--  1 1000 1000     5628 Nov  4 20:52 README.md
-rw-rw-r--  1 1000 1000     7935 Nov  4 20:52 READMEv2-etcdctl.md
-rwxrwxr-x  1 1000 1000 20181952 Nov  4 20:52 etcd
-rwxrwxr-x  1 1000 1000 18444064 Nov  4 20:52 etcdctl
root@s1:/tmp/test-etcd# file etcd
etcd: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped

同样的过程也适用于我使用的另外两台机器,它们具有相同的操作系统和非常相似的硬件。

我可以看到 bash 无法将其识别为可执行文件,因为它不会通过 'tabbing' 自动完成名称,这与其他机器不同,但我真的不知道可能是什么问题。

有什么建议吗?我尝试chown到root。我尝试检查文件系统是否已使用 noexec 挂载。

解决方案:我显然忽略了 mount 的输出,并且我没有在 /tmp type ext4 上看到行 /dev/mapper/vg00-tmp (rw,nosuid,nodev,noexec,relatime,data=ordered)

将可执行文件移动到另一个目录解决了该问题。

答案1

解决方案:我显然忽略了 mount 的输出,并且没有看到该行

/dev/mapper/vg00-tmp on /tmp type ext4 (rw,nosuid,nodev,noexec,relatime,data=ordered)

将可执行文件移动到另一个目录解决了该问题。

相关内容