hmgle / graftcp

A flexible tool for redirecting a given program's TCP traffic to SOCKS5 or HTTP proxy.
GNU General Public License v3.0
2.07k stars 174 forks source link

gaftcp 不能代理 sudo #29

Closed unknowndevQwQ closed 4 years ago

unknowndevQwQ commented 4 years ago

说起来可能有点奇怪,不过确实需要 graftcp sudo xxx 时 sudo 会提示“有效用户 ID 不是 0,/usr/bin/sudo 位于一个设置了“nosuid”选项的文件系统或没有 root 权限的 NFS 文件系统中吗?” 至于为什么会用到这个,个人在 yay 安装 aur 时需要,因为 yay 会自动 sudo pacman 安装

hmgle commented 4 years ago

Duplicate of #11

hmgle commented 4 years ago

目前可以试试先用 graftcp 打开一个新的 shell,然后在里面执行 sudo,比如:

graftcp zsh
sudo xxx

等有空我再看下这个问题。

unknowndevQwQ commented 4 years ago

目前可以试试先用 graftcp 打开一个新的 shell,然后在里面执行 sudo,比如:

graftcp zsh
sudo xxx

等有空我再看下这个问题。

这边试了下,sudo 还是会提示那个错误

hmgle commented 4 years ago

目前可以试试先用 graftcp 打开一个新的 shell,然后在里面执行 sudo,比如:

graftcp zsh
sudo xxx

等有空我再看下这个问题。

这边试了下,sudo 还是会提示那个错误

可以再试下这个解决方法:https://github.com/hmgle/graftcp/issues/11#issuecomment-450606105

$ sudo chown root:root graftcp
$ sudo chmod a+s graftcp
# Then you can use graftcp to trace sudo...
unknowndevQwQ commented 4 years ago

目前可以试试先用 graftcp 打开一个新的 shell,然后在里面执行 sudo,比如:

graftcp zsh
sudo xxx

等有空我再看下这个问题。

这边试了下,sudo 还是会提示那个错误

可以再试下这个解决方法:#11 (comment)

$ sudo chown root:root graftcp
$ sudo chmod a+s graftcp
# Then you can use graftcp to trace sudo...

这个暂时没试过,不过看起来可能会存在安全隐患

hmgle commented 4 years ago

对 yay 这类运行后会 fork 出一个子进程执行 sudo 的程序,无法在没有 root 权限的情况下用 ptrace 跟踪这个 sudo 子进程。所以对 yay 来说 graftcp 没办法在缺乏权限的情况下重定向它的连接。可能采用设置 HTTP_PROXY 环境变量的方式更适合,或者改用 pacman。

unknowndevQwQ commented 4 years ago

对 yay 这类运行后会 fork 出一个子进程执行 sudo 的程序,无法在没有 root 权限的情况下用 ptrace 跟踪这个 sudo 子进程。所以对 yay 来说 graftcp 没办法在缺乏权限的情况下重定向它的连接。可能采用设置 HTTP_PROXY 环境变量的方式更适合,或者改用 pacman。

yay 要走代理的时候很多是软件本体源码或者构建环境需要走代理才有正常的速度 顺便一提,pacman 里没有某个软件包时才会使用 aur 无关话题:我不太确定 makepkg 吃不吃从 yay 传入的 http_proxy 变量