最近正在做openvpn相关的项目,花了好多天,终于解决了NSTask 运行后出现 launch path not accessible 的错误。可以查看我的另一个贴子 https://bbs.csdn.net/topics/392448413但这个问题解决后,按下葫芦起了瓢,又出现了另一个错误:2018-09-19 10:24:13.973265+0800 WdSpeedProj[4504:149947] got
Wed Sep 19 10:24:13 2018 WARNING: Using --management on a TCP port WITHOUT passwords is STRONGLY discouraged and considered insecure
Wed Sep 19 10:24:13 2018 WARNING: file 'user.txt' is group or others accessible
Wed Sep 19 10:24:13 2018 OpenVPN 2.4.6 x86_64-apple-darwin [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [MH/RECVDA] [AEAD] built on Aug 15 2018
Wed Sep 19 10:24:13 2018 library versions: OpenSSL 1.0.2o  27 Mar 2018, LZO 2.10
Wed Sep 19 10:24:13 2018 MANAGEMENT: Socket bind failed on local address [AF_INET]127.0.0.1:25340: Operation not permitted (errno=1)
Wed Sep 19 10:24:13 2018 Exiting due to fatal error
因为openvpn会绑定本地的一个端口,在绑定这个端口时,因为没权限,被拒绝。
Wed Sep 19 10:24:13 2018 MANAGEMENT: Socket bind failed on local address [AF_INET]127.0.0.1:25340: Operation not permitted (errno=1)这个问题,我曾在终端运行openvpn的命令行遇到过,解决的方法很简单,就是在终端中以su root 权限运行。
在控制台中,也可以在edit Scheme 勾选 Debug Process As root来解决。但是如果在带界面的cocoa程序中勾选 Debug Process As Root后,程序一打开就会崩溃。所以现在的问题就是,如何用代码来实现用root权限来创建一个NSTask进程。
我试过seteuid,setuid,但似乎没有效果?希望有人来解答。