连接修改当前用户的sudo超级用户权限socks5代理访问网络

socks5代理  时间:2021-03-11  阅读:()

1》 xx is not in the sudoers file问题的解决方案

2013-01-22 10:37:54xx is not in the sudoers file问题解决的两种方案如下。 。 。 。 。两种方法执行命令不同而已原理其实一样www.2 c t o.c om

方法一

首先利用w herei s命令查找s udoer s配置文件的目录默认会在etc/sudoers)

[root@local host xiaof ei]# where is sudoe rssudoe rs: /etc/sudoe rs/etc/sudoe rs.bak/usr/share/man/man5/sudoers.5.gz

然后需要su-切换到root用户更改/etc/sudoers的权限

[root@local host xiaof ei]# chmod u+w /etc/sudoe rs

然后就可以利用vi编辑器来把用户添加到s udoer s之中

[root@local host xiaof ei]# vi /etc/sudoers

然后找到r oot ALL=(ALL) ALL所在的位置把所要添加的用户添加到文件之中

下面是添加完的结果

## Allow root to run any comma nds anywh ereroot ALL=(ALL) ALLxiaof ei ALL=(ALL) ALL 这一行是添加的内容 xiaof ei是用户名

然后需要把sudoe rs的写权限去掉

[root@local host xiaof ei]# chmod u-w /etc/sudoe rs

如果不去掉写权限系统不允许执行suode rs文件运行sud o命令时会出现以下错误sudo: /etc/sudoe rs is mode 0640, shoul d be

0440 www.2cto.com

至此在退出ro ot用户之后就可以利用sudo命令来执行超级用户的权限了。

方法二

首需要切换到roo t身份

$su -

(注意有- 这和su是不同的在用命令"su"的时候只是切换到ro ot但没有把r oot的环境变量传过去还是当前用户的环境变量用"su-"命令将环境变量也一起带过去就象和ro ot登录一样)

然后

$visudo //切记此处没有v i和sudo之间没有空格

1、移动光标到最后一行

2、按a进入app end模式

3、输入your_user_name ALL=(ALL) ALL

4、按Esc

5、输入“:wq”

这样就把自 己加入了s udo组可以使用s udo命令了。

2》通过Soc ket5代理服务器访问网络的问题

时间:2010-11-2015:39来源:未知作者:admin点击:次

通过Soc ket5代理服务器访问网络的问题Sock s5版本的协议说明参考RFC1928,RFC1929

下面简单地罗列程序实现不涉及详细的协议规范。首先对于TCP连接然后再讨论UDP传输。至于通过socks 5的多播通讯有兴趣可以参考D.

Chouinard的文章。

1、 TCP:

//建立流套接字

SOCKET m_socTCP=socket(AF_INET,SOCK_STREAM,

I PPROTO_TCP);

//连接到代理服务器int nRet=connect(m_socTCP,(SOCKADDR*)&m_sa iProxy,sizeof(m_sa iProxy));

//Step 1:连接代理服务器成功后马上开始和代理协商协商报文如下,询问服务器版本5是需要验证(0x02)还是不需要验证(0x00)

+------+-------------------+------------+

|VER | Numberof METHODS|METHODS |

+------+-------------------+------------+

| 0x05 | 0x02 (有两个方法) | 0x00 | 0x02|

+------+-------------------+------------+const charreqNego[4]={(char)0x05,(char)0x02,(char)0x00,(char)0x02};nRet=send(m_socTCP,reqNego,4,0);

//Setp 2:代理服务器将返回两个字节的协商结果接收协商结果fd_set fdread;FD_ZERO(&fdread);

FD_SET(m_socTCP,&fdread);

// Last param set to NULLforblocking operation. (struct timeval*)if((nRet=select(0,&fdread,NULL,NULL,NULL))==SOCKET_ERROR){return NC_E_PROXY_SELECT_READ|WSAGetLastError();}char resNego[2]={‘\0‘};int nRcvd=0,nCount=0;whi le(1)

{if(FD_ISSET(m_socTCP,&fdread))

{

//接收sock[0]发送来的数据do{n Ret=recv(m_socTCP, (cha r*)res Nego+n Rcvd, 2-n Rcvd,0);if(nRet==SOCKET_ERROR){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}n Rcvd +=n Ret;

}whi le((nRcvd!=2)&&(++nCount<1000));i f(n Rcvd==2) brea k;

}if(nCount++>=2000){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}

}if(resNego[0]!=0x05 | | (resNego[1]!=0x00&&resNego[1]!=0x02)){return

NC_E_PROXY_PROTOCOL_VERSION|W SAGetLastError();};

//Step 3:根据协商结果判断是否需要验证用户如果是0x02则需要提供验证验证部分参考RFC1929if(resNego[1]==0x02)

{

//需要密码验证char reqAuth[513]={‘\0‘};

BYTE byLenUser=(BYTE)strlen(m_szProxyUserName);

BYTE byLenPswd =(BYTE)strlen(m_szProxyPassword);reqAuth[0]=0x01;reqAuth[1]=byLenUser;sprintf(&reqAuth[2],"%s",m_szProxyUserName);reqAuth[2+byLenUser]=byLenPswd;sprintf(&reqAuth[3+byLenUser],"%s",m_szProxyPassword);

//Send authentication infoint len=(int)byLenUser+(int)byLenPswd+3;nRet=send(m_socTCP,(const char*)reqAuth,len,0);if (nRet==SOCKET_ERROR){return

NC_E_PROXY_SEN D|WSAGetLastError();}

//Now: Response to the auth requestchar resAuth[2]={‘\0‘};int nRcvd=0,nCount=0;do{n Ret=recv(m_socTCP,resAut h+n Rcvd,2-n Rcvd,0);if(nRet==SOCKET_ERROR){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}n Rcvd +=n Ret;

}whi le((nRcvd!=2)&&(++nCount<1000));if(nCount>=1000){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}if (resAuth[1]!=0) return NC_E_PROXY_AUTHORIZE;

//密码验证通过了

}

//Step 4:协商完成开始发送连接远程服务器请求,请求报文格式如下

+----+-----+-------+------+----------+----------+

|VER|CMD| RSV |ATYP | DST.ADDR| DST.PORT|

+----+-----+-------+------+----------+----------+

| 1 | 1 | 0x00 | 1 |Variable | 2 |

+----+-----+-------+------+----------+----------+

//CMD==0x01表示连接,ATYP==0x01表示采用IP V4格式地址DST.ADDR是远程服务器地址 DST.PORT是远程服务器端口

//如果需要接受外来连接则需要在连接完成之后发送CMD==0x02绑定请求代理将为此请求绑定一个套接字接受外部连接charreqSubNego[10]={(char)0x05,(char)0x01,(char)0x00,(char)0x01,(char)0x00,(char)0x00,(char)0x00,(char)0x00,(char)0x00,(char)0x00};

*(unsigned long*)&reqSubNego[4]

=m_saiServerTCP.sin_addr.S_un.S_addr;

*(unsigned short*)&reqSubNego[8]=m_saiServerTCP.sin_port;

nRet=send(m_socTCP,(const char*)reqSubNego,10,0);if (nRet==SOCKET_ERROR){return

NC_E_PROXY_SEN D|WSAGetLastError();}

//Step 5:接收对请求的响应 响应包格式如下

+----+-----+-------+------+----------+----------+

|VER| REP | RSV |ATYP | BND.ADDR| BND.PORT|

+----+-----+-------+------+----------+----------+

| 1 | 1 | 0x00 | 1 |Variable | 2 |

+----+-----+-------+------+----------+----------+

//VER必须是0x 05,REP==0x00表示成功 ATYP==0x01表示地址是IPV4地址 BND.ADDR是代理为连接远程服务器绑定的地址 BND.PORT是这个套接字的端口char resSubNego1[5]={‘\0‘};if(FD_ISSET(m_socTCP,&fdread))

{int nRcvd=0,nCount=0;do{n Ret=recv(m_socTCP,resSu bNego 1+n Rcvd,5-n Rcvd,0);if(nRet==SOCKET_ERROR){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}n Rcvd +=n Ret;

}whi le((nRcvd!=5)&&(++nCount<1000));if(nCount>=1000){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}if(resSubNego1[0]!=0x05| |resSubNego1[1]!=0x00){return

NC_E_PROXY_PROTOCOL_VERSION_SU B|WSAGetLastError();};switch(resSubNego1[3])

{case 0x01:

{

// IP V4char resSubNego2[6]={resSubNego1[4],0};int nRet=-1;if(FD_ISSET(m_socTCP,&fdread))

{int nRcvd=0,nCount=0;do{i nt nRet= recv(m_socTCP,&resSubNego2[1]+nRcvd,5-nRcvd,0);if(nRet==SOCKET_ERROR){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}n Rcvd +=n Ret;

}whi le((nRcvd!=5)&&(++nCount<1000));if(nCount>=1000){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}

}

//得到代理绑定地址unsigned long ulBINDAddr=*(unsigned long*)&resSubNego2; //SOCKS BINDADDRunsigned short usBINDPort=*(unsigned short*)&resSubNego2[4];//SOCKS BIND PORTm_saiProxyBindTCP.sin_addr.S_un.S_addr=ulBINDAddr;m_saiProxyBindTCP.sin_port=usBINDPort;

//得到本机绑定地址int len=sizeof(m_saiHostTCP);getsockname(m_socTCP,(SOCKADDR*)&m_saiHostTCP,&len);}break;case 0x03:

{

//Domain nameint nLen= resSubNego1[4]+2;char* presSubNego2=new char[nLen];if(FD_ISSET(m_socTCP,&fdread))

{int nRet=0,nRcvd=0,nCount=0;do{nRet=recv(m_socTCP,presSubNego2+nRcvd,nLen-nRcvd,0);if(nRet==SOCKET_ERROR){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}n Rcvd +=n Ret;

}whi le((nRcvd!=nLen)&&(++nCount<1000));if(nCount>=1000){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}

}unsigned short usBINDPort=*(unsignedshort*)(presSubNego2+nLen-2); //BIND PORT;

//此时得到的是远程主机的Doma in Namedelete[] presSubNego2; presSubNego2=NULL;

}break;case 0x04:

{

// IPV6

AfxMessa geBox("该版本不支持IPV6";

}break;default:break;

}

//至此连接已经建立。在此套接字上可进行数据的收发。

}

2、 UDP

SOCKS V5提供了对UDP的支持它通过在代理服务器和内网主机之间建立一个UDP中继的T C P连接来辅助进行UDP数据包的收发。此连接有一个有效期在此有效生命周期内必须往代理发送UDP数据报确认连接有效来维持此连接的有效性否则代理服务器超时将会自动释放此连接的资源。下面简单地罗列程序实现不涉及详细的协议规范。

//客户端为U DP中继建立一个相关的流套接字

SOCKET m_socCl ientTCP_UdpAssociate=socket(AF_INET,

SOCK_STREAM, IPPROTO_TCP);

//连接代理服务器intnRet=connect(m_socCl ientTCP_UdpAssociate,(SOCKADDR*)&sai Proxy,sizeof(saiProxy));

//连接成功开始和代理服务器协商首先发送版本标志方法选择报文const charreqNego[4]={(char)0x05,(char)0x02,(char)0x00,(char)0x02};nRet=send(m_socCl ientTCP_UdpAssociate,reqNego,4,0);if( nRet==SOCKET_ERROR

{

DWORD dwError=WSAGetLastError();if (dwError!=WSAEWOULDBLOCK) return

NCM_E_WM_CREATE_PROXYREQUESTFAILED;

}

//接收协商的响应fd_set fdread; FD_ZERO(&fdread);

FD_SET(m_socCl ientTCP_UdpAssociate,&fdread);if((nRet=select(0,&fdread,NULL,NULL,NULL))==SOCKET_ERROR)return NCM_E_WM_CREATE_PROXYCONNECTFAILED;char resNego[2]={0};int nRcvd=0,nCount=0;

if(FD_ISSET(m_socCl ientTCP_UdpAssociate,&fdread))

{nRcvd =recv(m_socCl ientTCP_UdpAssociate,

(cha r*)resNego+nRcvd, 2,0);if(nRcvd==SOCKET_ERROR) return

NCM_E_WM_CREATE_PROXYCONNECTFAILED;

}if(resNego[0]!=0x05 | | (resNego[1]!=0x00&&resNego[1]!=0x02))return NCM_E_WM_CREATE_PROXYCONNECTFAILED;

//看是否需要密码验证if(resNego[1]==0x02)

{

//需要密码验证char reqAuth[513] ;memset(reqAuth,0,513);

BYTE byLenUser=(BYTE)strlen(m_szProxyUserName);

BYTE byLenPswd =(BYTE)strlen(m_szProxyPassword);reqAuth[0]=0x01;reqAuth[1]=byLenUser;sprintf(&reqAuth[2],"%s",m_szProxyUserName);reqAuth[2+byLenUser]=byLenPswd;sprintf(&reqAuth[3+byLenUser],"%s",m_szProxyPassword);//Send authentication infoint len=(int)byLenUser+(int)byLenPswd+3;int ret=send(m_socCl ientTCP_UdpAssociate,(constchar*)reqAuth,len,0);if (ret==SOCKET_ERROR) if (GetLastError()!=WSAEWOULDBLOCK)return NCM_E_WM_CREATE_PROXYREQUESTFAILED;

//Now: Responseto the auth requestchar resAuth[2]={‘\0‘};int nRcvd=0,nCount=0;do{ret=recv(m_socCl ientTCP_UdpAssociate,resAuth+nRcvd,2-nRcvd,0);if(ret==SOCKET_ERROR){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}n Rcvd +=n Ret;

}whi le((nRcvd!=2)&&(++nCount<1000));if(nCount>=1000){return NC_E_PROXY_RECEIVE}if (resAuth[1]!=0) return

NEM_E_WM_CREATE_PROXYAUTHFAILED;

//密码验证通过了

}

//开始发送向目标服务器的连接请求其中DST.ADDR是目标服务器的地址DST.PORT是目标服务器的UDP端口charreqSubNego[10]={(char)0x05,(char)0x03,(char)0x00,(char)0x01,(char)0x00,(char)0x00,(char)0x00,(char)0x00,(char)0x00,(char)0x00};

*(unsigned long*)&reqSubNego[4]

=saiServerUDP.sin_addr.S_un.S_addr; // cmd: DEST.addr

*(unsigned short*)&reqSubNego[8]=saiServerUDP.sin_port; // cmd:DEST.port in network octet ordernRet=send(m_socCl ientTCP_UdpAssociate,(constchar*)reqSubNego,10,0);if (nRet==SOCKET_ERROR) return

NEM_E_WM_CREATE_PROXYREQFAILED;

//接收响应信息int nRecvCount=0;i nt nRecvBufferLen= 10;charszRecvBuf[10] ;n Ret=0;if(FD_ISSET(m_socCl ientTCP_UdpAssociate,&fdread))

{int nRcvd=0,nCount=0;do{n Ret=recv(m_socCl ientTCP_UdpAssociate,(char*)szRecvBuf+nRcvd,10-nRcvd,0);if(nRet==SOCKET_ERROR){return

NC_E_PROXY_RECEIVE|WSAGetLastError();}n Rcvd +=n Ret;

}whi le((nRcvd!=10)&&(++nCount<1000));if(nCount>=1000){return NC_E_PROXY_RECEIVE;}if (szRecvBuf[0]!=0x05| |szRecvBuf[1]!=0x00){return

NC_E_PROXY_PROTOCOL_VERSION_SU B;}

}else

{return NCM_E_WM_CREATE_PROXYREQUESTFAILED;

}

//代理服务器绑定udp地址BND.ADR一般代理服务器都是多宿主机器 因

Sharktech10Gbps带宽,不限制流量,自带5个IPv4,100G防御

Sharktech荷兰10G带宽的独立服务器月付319美元起,10Gbps共享带宽,不限制流量,自带5个IPv4,免费60Gbps的 DDoS防御,可加到100G防御。CPU内存HDD价格购买地址E3-1270v216G2T$319/月链接E3-1270v516G2T$329/月链接2*E5-2670v232G2T$389/月链接2*E5-2678v364G2T$409/月链接这里我们需要注意,默...

宝塔面板批量设置站点404页面

今天遇到一个网友,他在一个服务器中搭建有十几个网站,但是他之前都是采集站点数据很大,但是现在他删除数据之后希望设置可能有索引的文章给予404跳转页面。虽然他程序有默认的404页面,但是达不到他引流的目的,他希望设置统一的404页面。实际上设置还是很简单的,我们找到他是Nginx还是Apache,直接在引擎配置文件中设置即可。这里有看到他采用的是宝塔面板,直接在他的Nginx中设置。这里我们找到当前...

PIGYUN:美国联通CUVIPCUVIP限时cuvip、AS9929、GIA/韩国CN2机房限时六折

pigyun怎么样?PIGYunData成立于2019年,2021是PIGYun为用户提供稳定服务的第三年,目前商家提供香港CN2线路、韩国cn2线路、美西CUVIP-9929、GIA等线路优质VPS,基于KVM虚拟架构,商家采用魔方云平台,所有的配置都可以弹性选择,目前商家推出了七月优惠,韩国和美国所有线路都有相应的促销,六折至八折,性价比不错。点击进入:PIGYun官方网站地址PIGYUN优惠...

socks5代理为你推荐
蓝色骨头手机谁有崔健执导的电影《蓝色的骨头》。789se.com莫非现在的789mmm珍的com不管了www.zjs.com.cn我的信用卡已经申请成功了,显示正在寄卡,怎么查询寄卡信息?百度指数词什么是百度指数杨丽晓博客杨丽晓是如何进入娱乐圈的?www4399com4399小游戏 请记住本站网站 4399.urlwww.mfav.org海关编码在线查询http://www.ccpit.org.cdpscycleDPScycle插件为什么没有猎人模块 最好详细点盗车飞侠请教:游戏盗车飞侠4怎么开飞机,怎么买枪,怎么开坦克啊?ename.com要怎么在Ename.cn上注册个人域名?
如何注销域名备案 贝锐花生壳域名 国外主机 rak机房 dux 我爱水煮鱼 架设服务器 空间论坛 怎样建立邮箱 泉州电信 免费活动 服务器是干什么的 傲盾官网 卡巴斯基破解版 双线机房 厦门电信 免费邮件服务器 空间登陆首页 服务器维护 阿里云邮箱申请 更多