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

香港ceranetworks(69元/月) 2核2G 50G硬盘 20M 50M 100M 不限流量

香港ceranetworks提速啦是成立于2012年的十分老牌的一个商家这次给大家评测的是 香港ceranetworks 8核16G 100M 这款产品 提速啦老板真的是豪气每次都给高配我测试 不像别的商家每次就给1核1G,废话不多说开始跑脚本。香港ceranetworks 2核2G 50G硬盘20M 69元/月30M 99元/月50M 219元/月100M 519元/月香港ceranetwork...

虎跃云-物理机16H/32G/50M山东枣庄高防BGP服务器低至550元每月!

虎跃科技怎么样?虎跃科技(虎跃云)是一家成立于2017年的国内专业服务商,专业主营云服务器和独立服务器(物理机)高防机房有着高端华为T级清洗能力,目前产品地区有:山东,江苏,浙江等多地区云服务器和独立服务器,今天虎跃云给大家带来了优惠活动,为了更好的促销,枣庄高防BGP服务器最高配置16核32G仅需550元/月,有需要的小伙伴可以来看看哦!产品可以支持24H无条件退款(活动产品退款请以活动规则为准...

hosteons:10Gbps带宽,免费Windows授权,自定义上传ISO,VPS低至$21/年,可选洛杉矶达拉斯纽约

hosteons当前对美国洛杉矶、达拉斯、纽约数据中心的VPS进行特别的促销活动:(1)免费从1Gbps升级到10Gbps带宽,(2)Free Blesta License授权,(3)Windows server 2019授权,要求从2G内存起,而且是年付。 官方网站:https://www.hosteons.com 使用优惠码:zhujicepingEDDB10G,可以获得: 免费升级10...

socks5代理为你推荐
futureshop笔记本电脑一般国外比国内便宜多少哈利波特罗恩升级当爸哈利波特2为啥赫敏只抱哈利波特不抱罗恩。只是握手!!!这……留学生认证留学生服务中心认证内容和范围?蓝色骨头手机宠物的一个蓝色骨头代表多少级,灰色又代表多少级,另外假如有骨头又代表多少级甲骨文不满赔偿工作不满半年被辞退,请问赔偿金是怎么算的?关键字关键词标签里写多少个关键词为最好www.765.com有没好的学习网站抓站工具仿站必备软件有哪些工具?最好好用的仿站工具是那个几个?杨丽晓博客杨丽晓是怎么 出道的sesehu.com68lolita com是真的吗
免费国内空间 org域名 手机域名注册 私服服务器租用 河南vps 双线vps 个人域名备案流程 如何注册中文域名 3322动态域名 空间打开慢 12306抢票攻略 创宇云 typecho 免费smtp服务器 河南移动邮件系统 admit的用法 hostloc 169邮箱 cn3 美国堪萨斯 更多