当前位置:  开发笔记 > 运维 > 正文

不能欺骗sudo; 报告说有效的uid是非零的

如何解决《不能欺骗sudo;报告说有效的uid是非零的》经验,为你挑选了1个好方法。

命令:

bigxu@bigxu-ThinkPad-T410 ~/work/lean $ sudo ls
content_shell.pak  leanote  libgcrypt.so.11  libnotify.so.4  __MACOSX      resources
icudtl.dat     leanote.png  libnode.so   locales     natives_blob.bin  snapshot_blob.bin

大多数时候它是正确的.但有时候它很慢.所以我说它.

命令:

bigxu@bigxu-ThinkPad-T410 ~/work/lean $ strace sudo ls
execve("/usr/bin/sudo", ["sudo", "ls"], [/* 66 vars */]) = 0
brk(0)                                  = 0x7f2b3c423000
fcntl(0, F_GETFD)                       = 0
fcntl(1, F_GETFD)                       = 0
fcntl(2, F_GETFD)                       = 0
......
......
......
write(2, "sudo: effective uid is not 0, is"..., 140sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
) = 140
exit_group(1)                           = ?
+++ exited with 1 +++

其他信息:

bigxu-ThinkPad-T410 lean # ls /etc/sudoers -alht
-r--r----- 1 root root 745  2? 11  2014 /etc/sudoers
bigxu-ThinkPad-T410 lean # ls /usr/bin/sudo -alht
-rwsr-xr-x 1 root root 152K 12? 14 21:13 /usr/bin/sudo
bigxu-ThinkPad-T410 lean # df `which sudo`
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sdb1       67153528 7502092  56217148  12% 

Charles Duff.. 8

出于安全原因,setuid位和ptrace(用于在调试器下运行二进制文件)不能同时受到尊重.过去未能执行此限制导致CVE-2001-1384.

因此,任何设计用于安全性的操作系统将停止在setuid二进制文件的exec上遵守ptrace,或者在使用ptrace时不遵守setuid位.

在Linux上,请考虑使用Sysdig - 它只能查看但不能修改行为,不会运行相同的风险.



1> Charles Duff..:

出于安全原因,setuid位和ptrace(用于在调试器下运行二进制文件)不能同时受到尊重.过去未能执行此限制导致CVE-2001-1384.

因此,任何设计用于安全性的操作系统将停止在setuid二进制文件的exec上遵守ptrace,或者在使用ptrace时不遵守setuid位.

在Linux上,请考虑使用Sysdig - 它只能查看但不能修改行为,不会运行相同的风险.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有