连接修改当前用户的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一般代理服务器都是多宿主机器 因

日本CN2独立物理服务器 E3 1230 16G 20M 500元/月 提速啦

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

Friendhosting 黑色星期五 VDS/VPS可享四五折优惠促销

Friendhosting商家在前面的篇幅中也又陆续介绍到,是一家保加利亚主机商,主要提供销售VPS和独立服务器出租业务,数据中心分布在:荷兰、保加利亚、立陶宛、捷克、乌克兰和美国洛杉矶等。这不近期黑色星期五活动,商家也有推出了黑五优惠,VPS全场一次性45折,虚拟主机4折,全球多机房可选,老用户续费可获9折加送1个月使用时长,VDS折后最低仅€14.53/年,有需要的可以看看。Friendhos...

极光KVM美国美国洛杉矶元/极光kvmCN7月促销,美国CN2 GIA大带宽vps,洛杉矶联通CUVIP,14元/月起

极光KVM怎么样?极光KVM本月主打产品:美西CN2双向,1H1G100M,189/年!在美西CN2资源“一兆难求”的大环境下,CN2+大带宽 是很多用户的福音,也是商家实力的象征。目前,极光KVM在7月份的促销,7月促销,美国CN2 GIA大带宽vps,洛杉矶联通cuvip,14元/月起;香港CN2+BGP仅19元/月起,这次补货,机会,不要错过了。点击进入:极光KVM官方网站地址极光KVM七月...

socks5代理为你推荐
neworiental我国最好的英语学校是在哪里?12306崩溃iphone 12306网络错误甲骨文不满赔偿劳动法员工工作不满一个月辞退赔偿标准18comic.fun贴吧经常有人说A站B站,是什么意思啊?同ip网站一个域名能对应多个IP吗seo优化工具SEO优化工具哪个好用点啊?sss17.comwww.com17com.com是什么啊?www.gegeshe.com《我的电台fm》 she网址是多少?杨丽晓博客杨丽晓哪一年出生的?lcoc.toptop weenie 是什么?
什么是二级域名 拜登买域名批特朗普 technetcal oneasiahost jsp主机 permitrootlogin 新世界电讯 权嘉云 中国网通测速 美国凤凰城 免费ftp lamp什么意思 阵亡将士纪念日 百度新闻源申请 免费网站加速 机柜尺寸 screen 赵荣博客 瓦工工资 次时代主机 更多