linux – 无法在特定目录中执行文件

linux – 无法在特定目录中执行文件,第1张

概述我们遇到了一个奇怪的问题,非root用户无法在某些目录中执行任何文件(脚本或二进制文件).本抄本说明了这个问题: [root@b6 /]# mkdir q[root@b6 /]# cp /bin/echo .[root@b6 /]# cp /bin/echo q[root@b6 /]# chown -R apps q[root@b6 /]# ./echo okok[root@b6 /] 我们遇到了一个奇怪的问题,非root用户无法在某些目录中执行任何文件(脚本或二进制文件).本抄本说明了这个问题:
[root@b6 /]# mkdir q[root@b6 /]# cp /bin/echo .[root@b6 /]# cp /bin/echo q[root@b6 /]# chown -R apps q[root@b6 /]# ./echo okok[root@b6 /]# ./q/echo okok[root@b6 /]# su - apps[apps@b6 ~]$cd /[apps@b6 /]$./echo okok[apps@b6 /]$./q/echo ok-bash: ./q/echo: Permission denIEd[apps@b6 /]$ls -ld . echo q q/echodr-xr-xr-x. 29 root root  4096 Jun 10 00:34 .-rwxr-xr-x.  1 root root 28176 Jun 10 00:34 echodrwxr-xr-x.  2 apps root  4096 Jun 10 00:34 q-rwxr-xr-x.  1 apps root 28176 Jun 10 00:34 q/echo[apps@b6 /]# getfacl q q/echo# file: q# owner: apps# group: rootuser::rwxgroup::r-xother::r-x# file: q/echo# owner: apps# group: rootuser::rwxgroup::r-xother::r-x[apps@b6 /]$IDuID=2070(apps) gID=2070(apps) groups=2070(apps) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023[apps@b6 /]$uname -alinux b6.pdc 2.6.32-358.18.1.el6.x86_64 #1 SMP Wed Aug 28 17:19:38 UTC 2013 x86_64 x86_64 x86_64 GNU/linux[apps@b6 /]$df / /qfilesystem     1K-blocks    Used Available Use% Mounted on/dev/md2       198166644 4273776 183826596   3% //dev/md2       198166644 4273776 183826596   3% /[apps@b6 /]$mount /dev/md2 on / type ext4 (rw)...[apps@b6 /]$getenforcePermissive[apps@b6 /]$strace q/echo okexecve("q/echo",["q/echo","ok"],[/* 22 vars */]) = -1 EACCES (Permission denIEd)dup(2)                                  = 3fcntl(3,F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEfile)fstat(3,{st_mode=S_IFCHR|0620,st_rdev=makedev(136,0),...}) = 0mmap(NulL,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x7f237b0a0000lseek(3,SEEK_CUR)                   = -1 ESPIPE (Illegal seek)write(3,"strace: exec: Permission denIEd\n",32strace: exec: Permission denIEd) = 32close(3)                                = 0munmap(0x7f237b0a0000,4096)            = 0exit_group(1)                           = ?

我们的第一个想法是selinux,但这是关闭的.
接下来是f / s上的noexec,但事实并非如此.
我们的用户shell只是常规的bash(不受限制).

解决方法 我重新检查了日志(日志记录配置错误,以前拖尾邮件时没有输出 – 感谢保罗)我发现了这个:
2015-06-10T12:25:15.547452+00:00 b6 kernel: [tpe] DenIEd untrusted exec of /q/echo (uID:2070) by /bin/bash (uID:2070),parents: /bin/su (uID:0),/bin/bash (uID:0),/usr/sbin/sshd (uID:0),/sbin/init (deleted) (uID:0). Deny reason: directory uID not trusted

看来我们已经启用了grsecurity: Trusted Path Execution(这可能是CentOS 6.6中的默认设置),并且目录的所有者不受信任.看起来我们只需要将多个用户添加为受信任的用户,或者根据需要将其禁用.

总结

以上是内存溢出为你收集整理的linux – 无法在特定目录中执行文件全部内容,希望文章能够帮你解决linux – 无法在特定目录中执行文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1034827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存