??xml version="1.0" encoding="utf-8" standalone="yes"?>久久天天躁狠狠躁夜夜avapp,欧美一区二区精品久久,久久精品成人国产午夜http://www.shnenglu.com/prayer/category/11887.html在一般中L卓越zh-cnThu, 21 Mar 2019 13:20:01 GMTThu, 21 Mar 2019 13:20:01 GMT60Win下安装Cygwin中的SSH服务http://www.shnenglu.com/prayer/archive/2010/01/02/104641.htmlPrayerPrayerSat, 02 Jan 2010 04:45:00 GMThttp://www.shnenglu.com/prayer/archive/2010/01/02/104641.htmlhttp://www.shnenglu.com/prayer/comments/104641.htmlhttp://www.shnenglu.com/prayer/archive/2010/01/02/104641.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/104641.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/104641.html
单的讲述一下cygwin的安装和配置Q入门教程Q还请各位一二?br>
首先到http://www.cygwin.com 下蝲setup.exe?..exe攑ֈ此目录,

点击q行QNext->

选Install from InternetQNext->

填写Root DirectoryQ如X:\cygwinQNext->

填写Local Package DirectoryQ如X:\cygwin\ftpQNext->

选Direct ConnectionQNext->

选一个较快的ftpQNext->

C关键步骤Q如果仅惛_装基本系l,直接NextQ如果想完整安装Q则点击All旁边的旋转状图标Q将Default切换至InstallQ如果和我一P仅想在命令行下写写程序,则只要将 gcc、make{开发工具选上Q还有openssh{;选好后,Next->

开始下载,Take a coffee break。回来后QNext->

选择需不需要创建快h式?>END

点击快捷方式或X:\cygwin\cygwin.bat打开控制収ͼ如果是域用户Q按照提Cmakepasswd和makegroup卛_。下面说一些简单的调整和配|?br>
一、ssh的安?br>
cygwin自带的控制台可调参数很少Q舒适度较低。有没有办法用熟悉的putty或secureCRT来操控cygwin呢?办法有二:

1、用puttycyg。cygwin bash shell能做的,puttycyg基本上都能实玎ͼ本地操作的话Q极力推荐这Ƒ֥软g?br>
2、安装sshdQ然后本机登陆。如果安装时已选择opensshQ按照下面的操作l箋。如果忘了安装,点击setup.exeQ选上opensshQ再装一ơ即可?br>
a、右?#8220;我的电脑”->属?>高->环境变量Q在pȝ环境变量里添加变量CYGWINQgؓnetsec ttyQ然后在Path里追加X:\cygwin\bin

b、打开cygwin控制収ͼ输入ssh-host-configQ一路yesQ提CCYGWIN值时Q输入netsec tty

c、启动sshd服务? net start sshd ?cygrunsrv --start sshd; 停止sshd服务?net stop sshd ?cygrunsrv --stop sshd

d、用ssh yourname@127.0.0.1 ?ssh localhost登陆

e、还可以l箋安装配置sftp、scp{,׃l说?br>
f、每ơ输入密码登陆太ȝQ可以用key验证: 用puttygen.exe生存密钥对,然后在~/下,建立.ssh目录Q创建authorized_keys2文gQ将公钥复制到这个文Ӟ然后在putty里指定私钥登陆,一x逸?br>
二、vim的简单配|?br>
\usr\share\vim\vim64目录下的vimrc_example.vim复制到~/Q重命名为_vimrcQ?按照自己的喜好修攚w面的配置卛_Q如打开高亮Q选择喜欢的colorscheme

三、cygwin的中文显C和输入

让bash命o行支持中文输入,vi ~/.inputrcQ将下面几行的注释去?
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on

让ls命o支持中文昄Qvi ~\.bashrc中,修改:
alias ls='ls -hF --show-control-chars --color=tty'

vim64的话Q已l支持中文输入?br>
四、sdcv的安装配|?br>
坐在电脑前久了,屏幕太亮Q辐大Q对w体不好。能不能在全黑的命名行模式下工作和学习呢Qputty可以很好的全屏幕昄Qsdcv则可以让你在命o行模式查扑֍词?br>
安装: 到stardict主页下蝲sdcv和想要的字典Q编译安装后Q将字典解压Q放?usr/share/startdict/dic目录

使用: sdcv wordQ就q么单。小技? 可以在~/.bashrc里alias sdld='sdcv -u langdao'{等Q这样可以避免词典太多,直接sdld word可以用郎道字典查询?br>
我在q程W2k上装了一炚w题也没有Q就像是一台LINUX服务器,哈哈Q通过命o行管理,爽啊

Prayer 2010-01-02 12:45 发表评论
]]>
Cygwinhttp://www.shnenglu.com/prayer/archive/2010/01/02/104640.htmlPrayerPrayerSat, 02 Jan 2010 04:33:00 GMThttp://www.shnenglu.com/prayer/archive/2010/01/02/104640.htmlhttp://www.shnenglu.com/prayer/comments/104640.htmlhttp://www.shnenglu.com/prayer/archive/2010/01/02/104640.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/104640.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/104640.html cygwin是一个在windowsq_上运行的unix模拟环境Q是cygnus solutions公司开发的自由软gQ该公司开发了很多好东西,著名的还有eCosQ不q现已被Redhat收购Q。它对于学习unix/linux操作环境Q或者从unix到windows的应用程序移植,或者进行某些特D的开发工作,其是用gnu工具集在windows上进行嵌入式pȝ开发,非常有用。随着嵌入式系l开发在国内日渐行Q越来越多的开发者对cygwin产生了兴?br>
  cygnus当初首先把gccQgdbQgas{开发工兯行了改进Q他们能够生成q解释win32的目标文件。然后,他们要把q些工具UL到windowsq_上去。一U方案是Zwin32 api对这些工L源代码进行大q修改,q样做显焉要大量工作。因此,他们采取了一U不同的Ҏ——他们写了一个共享库(是cygwin dll)Q把win32 api中没有的unix风格的调用(如fork,spawn,signals,select,sockets{)装在里面,也就是说Q他们基于win32 api写了一个unixpȝ库的模拟层。这P只要把这些工L源代码和q个׃n库连接到一P可以用unixL上的交叉~译器来生成可以在windowsq_上运行的工具集。以q些UL到windowsq_上的开发工具ؓ基础Qcygnus又逐步把其他的工具Q几乎不需要对源代码进行修改,只需要修改他们的配置脚本QY件移植到windows上来。这P在windowsq_上运行bash和开发工兗用户工P感觉好像在unix上工作?br>
  关于cygwin实现的更详细描述Q请参考http://cygwin.com/cygwin-ug-net/highlights.html.

Prayer 2010-01-02 12:33 发表评论
]]>
修改LinuxL?/title><link>http://www.shnenglu.com/prayer/archive/2009/12/31/104506.html</link><dc:creator>Prayer</dc:creator><author>Prayer</author><pubDate>Wed, 30 Dec 2009 16:04:00 GMT</pubDate><guid>http://www.shnenglu.com/prayer/archive/2009/12/31/104506.html</guid><wfw:comment>http://www.shnenglu.com/prayer/comments/104506.html</wfw:comment><comments>http://www.shnenglu.com/prayer/archive/2009/12/31/104506.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/prayer/comments/commentRss/104506.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/prayer/services/trackbacks/104506.html</trackback:ping><description><![CDATA[<p style="TEXT-INDENT: 2em">hostname命o只是临时改动L名,重启后主机名q是恢复成原来的?</p> <p style="TEXT-INDENT: 2em">要想怹更改L名,需要修?etc/sysconfig/network 文g?</p> <p style="TEXT-INDENT: 2em">vi  /etc/sysconfig/networkQ修改HOSTNAME一行ؓ "HOSTNAME=L? </p> <p style="TEXT-INDENT: 2em">如: </p> <p style="TEXT-INDENT: 2em">HOSTNAME=linuxserver </p> <p style="TEXT-INDENT: 2em">GATEWAY=10.16.255.254 </p> <p style="TEXT-INDENT: 2em">(没有q行Q那添加这一行吧)Q然后运行命?"hostname L??/p> <p style="TEXT-INDENT: 2em">一般还要修?etc/hosts文g中的L名?</p> <p style="TEXT-INDENT: 2em">q样Q无Z是否重启Q主机名都修Ҏ功?/p> <img src ="http://www.shnenglu.com/prayer/aggbug/104506.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/prayer/" target="_blank">Prayer</a> 2009-12-31 00:04 <a href="http://www.shnenglu.com/prayer/archive/2009/12/31/104506.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LinuxL名Hostname详解 http://www.shnenglu.com/prayer/archive/2009/12/31/104505.htmlPrayerPrayerWed, 30 Dec 2009 16:03:00 GMThttp://www.shnenglu.com/prayer/archive/2009/12/31/104505.htmlhttp://www.shnenglu.com/prayer/comments/104505.htmlhttp://www.shnenglu.com/prayer/archive/2009/12/31/104505.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/104505.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/104505.html?什么是L名:

  无论在局域网q是INTERNET上,每台L都有一个IP地址Q是Z区分此台L和彼C机,也就是说IP地址是L的门牌号。但IP地址不方便记忆,所以又有了域名。域名只是在公网QINtERNET)中存?以实验ؓ目的的局域网域网实验性除外)Q每个域名都对应一个IP地址Q但一?IP地址可有对应多个域名。域名类?linuxsir.org q样的;

  L名是用于什么的呢?在一个局域网中,每台机器都有一个主机名Q用于主ZL之间的便于区分,可以ؓ每台机器讄L名,以便于以Ҏ记忆的方法来怺讉K。比如我们在局域网中可以ؓҎ每台机器的功用来为其命名?/p>

  L名相关的配置文gQ?etc/hosts;

  2. L名配|文Ӟ

  L名的配置文g大多?etc/hosts Q?/p>

  hosts - The static table lookup for host nameQ主机名查询静态表Q;

  ׃ Linux 发行版本众多Q与L名相关的配置文g有时也有所不同。现在我们说说常见版本的L名配|文Ӟ

  2.1 L名配|文?/etc/hosts解说Q?/p>

  Fedora/Redhat 或以Fedora/Redhat为基打包的发行版Q主机名配置文g?/etc/hosts

  Debian或以Debian为基打包的发行版Q主机名配置文g?/etc/hostname ?etc/hosts

  Slackware的主机名配置文g?/etc/hosts

  那我们来读读 /etc/hosts的内容,看这个文件是用来做什么的。hosts 配置文g是用来把L名字映射到IP地址的方法,q种Ҏ比较单。但q种映射只是本地机的映射Q也是说每台机器都是独立的Q所有的计算机都不能怺通过hostname来访问?/p>

  注:在debian 中还有一?etc/hostname的文Ӟq个文g是直接把本C机名写进d行了Q但要和 /etc/hosts中的本地L名保持一致?/p>

  /etc/hosts 的内容一般有如下cM内容Q?/p>

  127.0.0.1 localhost.localdomain localhost

  192.168.1.195 debian.localdomain debian

  注:

  一般情况下hosts的内容关于主机名(hostname)的定义,每行Z个主机,每行׃部䆾l成Q每个部份由I格隔开。其?号开头的行做说明Q不被系l解释?/p>

  W一部䆾Q网lIP地址Q?/p>

  W二部䆾Q主机名.域名Q注意主机名和域名之间有个半角的点,比如 localhost.localdomain

  W二部䆾Q主机名(L名别名) Q其实就是主机名Q?/p>

  当然每行也可以是两部份,是LIP地址和主机名Q比?192.168.1.195 debian

  127.0.0.1 是回环地址Q比如我们不惌局域网的其它机器看到我们测试的|络E序Q就可以用回环地址来测试?/p>

  Z么需要定义域名呢Q其实理解也单,比如我们有三C机,每台做不同的事,一台做MAIL服务器,一台做FTP服务器,一台做SMB服务器,所以我们就可以q样来设计hostnameQ?/p>

  127.0.0.1 localhost.localdomain localhost

  192.168.1.2 ftp.localdomain ftp

  192.168.1.3 mail.localdomain mail

  192.168.1.4 smb.localdomin smb

  把这上面q个配置文g的内容分别写入每台机器的/etc/hosts内容中,q样q三台局域网的机器就可以通过hostname来访问了?/p>

  2.2 L?hostname)和域?DomainQ的区别Q?/p>

  L名就机器本n的名字,域名是用来解析到IP的。但值得一说的是在局域网中,L名也是可以解析到IP上的Q比如我们前面所说D的例子;

  2.3 局域网的机器,不能通过L名互访的原因Q?/p>

  有的弟兄可能会说Q我的hostname彼此不能互访Q其实这也问题也单,我们前面已经提到了一个简单的解决办法。就是要让局域网中的所有主机都有一个通用的,q且包含所有主机的/etc/hosts文gQ?/p>

  另一个是做解军_法是做局域网DNS服务器,如果您的L特别,q前面所说的单方法就行;如何做DNS服务器,我将在以后的文档中专题介l;不过我值得一提的是做M服务器都是以效率优先的原则ؓ基础。比如我们在局域网中两台机器,我们q有必要做DNS服务器吗Q无论怎么解决Q最l的都是用最有效率的办法解决问题Q我们不能说明DNS多高U。如果DNS是ؓ外网服务的,那就另说了,不做也得做。对不对Q?/p>

  3、主机名修改工具 hostname;

  其实L名的修改也有专用工具Q就是hostname Q我认ؓ如果用这个工h修改L名,不如直接修改 /etc/hosts 来的方便Q您可以查看 hosname ——help?man hostname的帮?。在q里我们只说单的用法Q?/p>

  hostname 工具是用来显C和讄pȝL名,看下面的z文Q?/p>

  hostname - show or set the system‘s host name

  举例解说Q?/p>

  Q?昄L名:

  [root@linuxsir01 ~]# hostname

  linuxsir01

  此主机的L名是linuxsir01Q不加参数是用来昄当前操作的主机的L名;

  Q?临时讄L名:

  我们可以?hostname 后接L名,q样可以设|当前操作的L的主机名Q比如我们想把主机名讄为linuxsir02Q?/p>

  [root@linuxsir01 ~]# hostname linuxsir02

  [root@linuxsir01 ~]# hostname 注:昄L?/p>

  linuxsir02

  通过hostname 工具来设|主机名只是临时的,下次重启pȝӞ此主机名不会存在;所以您想修改主机名Q想一直有效的Q还是用前面所说修改主机名配置文g /etc/hostsQ?/p>

  Q?昄LIPQ?/p>

  昄当前L名的IPQ可以用-i参数Q?/p>

  [root@linuxsir01 ~]# hostname -i

  192.168.1.3

  4、本文未事宜;

  有时我们在登入桌面时Q会提示找不到hostname Q这时您要做的是修改/etc/hostsQؓ您的机器d一个主机名Q先?ifconfig -a 来查看主机的IP地址Q然后把你主机的IP地址Q指定主机名?/p>

 

怎样修改Linux的hostname

Linux操作pȝ的hostname是一个kernel变量Q可以通过hostname命o来查看本机的hostname。也可以直接cat /proc/sys/kernel/hostname查看?/p>

#hostname
#cat /proc/sys/kernel/hostname

上面两种输出l果相同?/p>

修改q行时Linuxpȝ的hostnameQ即不需要重启系l?/strong>
hostname命o可以讄pȝ的hostname

#hostname newname

newname卌讄的新的hostnameQ运行后立即生效Q但是在pȝ重启后会丢失所做的修改Q如果要怹更改pȝ的hostnameQ就要修改相关的讄文g?/p>

怹更改Linux的hostname

man hostname里有q么一句话Q?#8221;The host name is usually set once at system startup in /etc/rc.d/rc.inet1 or /etc/init.d/boot (normally by reading the contents of a file which contains the host name, e.g. /etc/hostname).” RedHat里没有这个文Ӟ而是?etc/rc.d/rc.sysinitq个脚本负责讄pȝ的hostnameQ它d /etc/sysconfig/networkq个文本文gQRedHat的hostname是在这个文仉讄?/p>

所以,如果要永久修改RedHat的hostnameQ就修改/etc/sysconfig/network文gQ将里面的HOSTNAMEq一行修ҎHOSTNAME=NEWNAMEQ其中NEWNAME是你要讄的hostname?/p>

Debian发行版的hostname的配|文件是/etc/hostname?/p>

修该配置文g后,重启pȝ׃d配置文g讄新的hostname?/p>

hostname?etc/hosts的关p?

很过Z提到更改hostname首先想C?etc/hosts文gQ认为hostname的配|文件就?etc/hosts。其实不是的?/p>

hosts文g的作用相当如DNSQ提供IP地址到hostname的对应。早期的互联|计机,单机hosts文g里够存放所有联|计机。不q随着互联|的发展Q这pq不够了。于是就出现了分布式的DNSpȝ。由DNS服务器来提供cM的IP地址到域名的对应。具体可以man hosts?/p>

Linuxpȝ在向DNS服务器发出域名解析请求之前会查询/etc/hosts文gQ如果里面有相应的记录,׃使用hosts里面的记录?etc/hosts文g通常里面包含q一条记?/p>

127.0.0.1 localhost.localdomain localhost

hosts文g格式是一行一条记录,分别是IP地址 hostname aliasesQ三者用I白字符分隔Qaliases可选?/p>

127.0.0.1到localhostq一条徏议不要修改,因ؓ很多应用E序会用到这个,比如sendmailQ修改之后这些程序可能就无法正常q行?/p>

修改hostname后,如果惌在本Z用newhostname来访问,必d/etc/hosts文g里添加一条newhostname的记录。比如我的eth0的IP?92.168.1.61Q我hosts文g修改如下Q?/p>

#hostname blog.infernor.net
# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.61 blog.infernor.net blog

q样Q我可以通过blog或者blog.infernor.net来访问本机?/p>

从上面这些来看,/etc/hosts于设|hostname是没直接关系的,仅仅当你要在本机上用新的hostname来访问自q时候才会用?etc/hosts文g。两者没有必然的联系?/p>

RHELq有个问题?/p>

我开始在试的时候,只修?etc/hostsQ里面添?192.168.1.61 blog.infernor.net blogQ?etc/sysconfig/networkl持原状Q也是里面的HOSTNAME=localhost.localdomain。我重启pȝ后居然发现hostnamel修Ҏ了blog.infernor.net。这L的话Q倒真觉得/etc/hosts是hostname的配|文件。后来终于在/etc/rc.d/rc.sysinitq个启动脚本里发C问题的所在?/p>

rc.sysinit文g里一开始就讄了hostname

if [ -f /etc/sysconfig/network ]; then
. /etc/sysconfig/network
fi
if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then
HOSTNAME=localhost
fi

实使用?etc/sysconfig/network里的hostname倹{不q后面还有一D关于设|hostname?/p>

ipaddr=
if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ]
; then
ipaddr=$(ip addr show to 0/0 scope global | awk '/[[:space:]]inet
/ { print gensub("/.*","","g",$2) }')
if [ -n "$ipaddr" ]; then
eval $(ipcalc -h $ipaddr 2>/dev/null)
hostname ${HOSTNAME}
fi
fi

脚本判断hostname是否为localhost或者localhost.localdomainQ如果是的话Q将会用接口IP地址对应?hostname来重新设|系l的hostname。问题就出在q里Q我?etc/sysconfig/network默认的hostname?localhost.localdomainQeth0的IP?92.168.1.61Q?etc/hosts里有192.168.1.61的记录。于是就?92.168.1.61q条记录来替换了hostname?/p>

估计q也是很多h?etc/hosts误以为是hostname的配|文件的原因?/p>

hostname带选项查询

hostname?s -f -i{等选项都用C/etc/hosts或者DNSpȝQ跟我们讨论的hostname有点q了Q也Ҏ产生误会。具体可以man hostname查看?/p>

Prayer 2009-12-31 00:03 发表评论
]]>
昄文g中的控制字符http://www.shnenglu.com/prayer/archive/2009/12/22/103737.htmlPrayerPrayerTue, 22 Dec 2009 15:24:00 GMThttp://www.shnenglu.com/prayer/archive/2009/12/22/103737.htmlhttp://www.shnenglu.com/prayer/comments/103737.htmlhttp://www.shnenglu.com/prayer/archive/2009/12/22/103737.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/103737.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/103737.html控制字符

sed -n '1,$l' filename
$后面跟了一个字母lQ用来显C所有的控制字符?

Prayer 2009-12-22 23:24 发表评论
]]>
单而有用的nohup命o介绍http://www.shnenglu.com/prayer/archive/2009/12/22/103733.htmlPrayerPrayerTue, 22 Dec 2009 14:07:00 GMThttp://www.shnenglu.com/prayer/archive/2009/12/22/103733.htmlhttp://www.shnenglu.com/prayer/comments/103733.htmlhttp://www.shnenglu.com/prayer/archive/2009/12/22/103733.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/103733.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/103733.html单而有用的nohup命o在UNIX/LINUX中,普通进E用&W号攑ֈ后台q行Q假如启动该E序的控制台logoutQ则该进E随即终止?

 

要实现守护进E,一U方法是按守护进E的规则ȝE(本站有文章介l过Q,比较ȝQ另一U方法是仍然用普通方法编E,然后用nohup命o启动E序Q?

 

nohupQ程序名Q?amp;

 

则控制台logout后,q程仍然l箋q行Qv到守护进E的作用Q虽然它不是严格意义上的守护q程Q?

 

使用nohup命o后,原程序的的标准输自动改向到当前目录下的nohup.out文gQvClog的作用,实现了完整的守护q程功能?

ygwu @ 2005q?4?8?上午10:03

For exampleQ?

 

如何q程启动WebLogic服务?

 

用telnetq程控制服务器,q程启动WEBLOGIC服务Q启动后关闭telnetQWebLogic服务也跟着停止Q这是因Z用telnet启动的进E会随着telnetq程的关闭而关闭。所以我们可以用一些UNIX下的命o来做C关闭?

 

使用如下命oQ?

nohup startWeblogic.sh&

假如惌监控标准输出可以使用Q?

tail -f nohup.out

 

当在后台q行了程序的时候,可以用jobs命o来查看后C业的状态。在有多个后台程序时Q要使用来参数的fg命o不同序L后台作业切换到前Cq行?

 

当用户启动一个进E的时候,q个q程是运行在前台Q用与相应控制l端相联pȝ标准输入、输行输入和输出。即使将q程的输入输出重定向Qƈ进E放在后台执行,q程仍然和当前终端设备有关系。正因ؓ如此Q在当前的登录会话结束时Q控制终端设备将和登录进E相qQ那么系l就向所有与q个l端相联pȝq程发送SIGHUP的信P通知q程U\已经挂v了,假如E序没有接管q个信号的处理,那么~省的反应是q程l束。因此普通的E序q不能真正脱ȝ录会话而运行进E,Z使得在系l登录后q可以正常执行,只有使用命onohup来启动相应程序?/p>


使用命onohup当然可以启动q样的程序,但nohup启动的程序在q程执行完毕退出,而常见的一些服务进E通常怹的运行在后台Q不向屏q输出结果。在Unix中这些永久的后台q程UCؓ守护q程QdaemonQ。守护进E通常从系l启动时自动开始执行,pȝ关闭时才停止?

 

在守护进E中Q最重要的一个是守护q程inetdQ这个进E接了大部分网l服务,但ƈ不是Ҏ个服务都自己q行处理Q而是依据q接hQ启动不同的服务E序与客h打交道。inetd支持|络服务U类在它的设|文?etc/inet.conf中定义。inet.conf文g中的每一行就对应一个端口地址Q当inetd接受到连接这个端口的q接hӞ启动相应的q程q行处理。用inetd的好处是pȝ不必启动很多守护q程Q从而节U了pȝ资源Q然而用inetd启动守护q程相应反应会迟~一些,不适合用于被密集访问的服务q程?/p>


 



Prayer 2009-12-22 22:07 发表评论
]]>
ps 不显C删除回复显C所有回复显C星U回复显C得分回?请问ps命o查出来的rss/vsz/size分别是何含义http://www.shnenglu.com/prayer/archive/2009/12/17/103394.htmlPrayerPrayerThu, 17 Dec 2009 05:40:00 GMThttp://www.shnenglu.com/prayer/archive/2009/12/17/103394.htmlhttp://www.shnenglu.com/prayer/comments/103394.htmlhttp://www.shnenglu.com/prayer/archive/2009/12/17/103394.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/103394.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/103394.htmlRSS: "Resident Set Size", 实际ȝ"在内存中"的内存数. 不包括已l交换出ȝ代码. 举一个例? 如果你有一个程序用了100K内存, 操作pȝ交换?0K内存, 那么RSS?0K. RSSq包括了与其它进E共享的内存区域. q些区域通常用于libc库等.
SHARE: RSS中与其它q程׃n的内存部分大?
VMSIZE: 一个进E占用的ȝ地址I间大小. 它包括了没有映射到内存中的页面?
szQPrivate RSSQ? 映射到内存中的页? q些面仅由q程单独使用. q也是我们最兛_地方: q程实际占用的内存数?


rss        RSS      resident set size, the non-swapped physical memory that a task has used (in kiloBytes). (alias rssize, rsz).


vsz        VSZ      virtual memory size of the process in KiB (1024-byte units). Device mappings are currently excluded; this is subject
                    to change. (alias vsize).


size      SZ      approximate amount of swap space that would be required if the process were to dirty all writable pages and then be
                    swapped out. This number is very rough!


sz        SZ      size in physical pages of the core image of the process. This includes text, data, and stack space. Device mappings
                    are currently excluded; this is subject to change. See vsz and rss.

Prayer 2009-12-17 13:40 发表评论
]]>
Aix命oQ列Z用内存和Cpu前几位的q程http://www.shnenglu.com/prayer/archive/2009/12/17/103390.htmlPrayerPrayerThu, 17 Dec 2009 05:25:00 GMThttp://www.shnenglu.com/prayer/archive/2009/12/17/103390.htmlhttp://www.shnenglu.com/prayer/comments/103390.htmlhttp://www.shnenglu.com/prayer/archive/2009/12/17/103390.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/103390.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/103390.html  # ps aux |head -1 ;ps aux |sort -rn +2 |head -10

  Q?Q显C?0个消耗内存最多的q程

  #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +6 |head -10

  Q?Q显C?0个换|多的q程

  #ps vx |head -1 ;ps vx |grep -v PID |sort -rn +4 |head -10

  Q?Q显C?0个消耗存储空间最多的q程

  #ps aux |head -1 ;ps aux |sort -rn +3 |head -10


如何监控q程的内存用情况(AIXQ?br />

AIX监控q程内存使用的工h较多Q个得比较方便的有nmon,svmonQ其中svmon是AIX自带的工P

需要root权限执行Q可以监控进E详l内存用信息,如:

svmon -P pid(要监控的q程PID) -i 1 (每秒h一?  |grep  pid 


 

 

AIX下进E内存分?br />AIX下可以用ps v工具或者svmon工具来分析进E内存。ps v命o是ps命o的一个工
P要注意的是v之前不要?#8221;-“。ps v工具在Q何AIX操作pȝ下都可以使用。比
如:

# ps -lfp 13288
  F      S    UID   PID PPID C PRI NI ADDR    SZ  WCHAN STIME  TTY TIME CMD
  240001 A oracle 13288    1 0  60 20 1ba2f 34032       Nov 03   - 0:06
ora_pmon_DEV

  # ps v 13288
    PID TTY STAT TIME PGIN SIZE   RSS   LIM  TSIZ   TRS %CPU %MEM  COMMAND
  13288   - A    0:08  225 5616 13904 32768 28420 13512  0.0  1.0
ora_pmon_DEV



从ps命o看到sz?4M。而用ps v命o可以看到rss?3904QTRS?3512。进E用的
内存是RSS-TRS=392K(ps v看到的内存单位是K)?br />

用svmon可以看到更多的信息,其结果和ps v是一致的。比如:

#svmon -P 23288
----------------------------------------------------------------------------
---
     Pid Command     Inuse   Pin   Pgsp Virtual   64-bit    Mthrd
   23288 ora_pmon_V8    29598     1451      182     16560        N        N
  Vsid Esid Type Description           Inuse       Pin Pgsp Virtual   Addr
Range
  1781    3 work shmat/mmap            11824         0    0 11824
0..24700
  1761    1 pers code,large file /dev   9681         0    -     -
0..9680
     0    0 work kernel seg             3982      1450  182  3390
0..21804 :
 
65474..65535
 18018    d work shared library text    2852         0    0   158
0..65535
  4764    2 work process private        1127         1    0  1127
0..1182 :
 
65307..65535
  f74f    f work shared library data      81         0    0    61
0..1291
 1e59e    - pers large file /dev/lv00     33         0    -     -      0..32
  e58e    - pers large file /dev/lv00     16         0    -     -      0..82
  b74b    - pers large file /dev/lv00      1         0    -     -      0..0
  3703    - pers large file /dev/lv00      1         0    -     -      0..0


#ps v 23288
   PID    TTY STAT  TIME PGIN  SIZE   RSS   LIM  TSIZ   TRS %CPU %MEM
COMMAND
 23288      - A     0:00    0  4752 43556 32768 27289 38724  0.0  5.0
ora_pmon_V8



要注意的是,svmon昄的内存都是以Page为单位的QAIX下,每个ؓ4K?br />通过work process private的virtual大小和work shared library data的virtual大小
的和ps v的SIZE是完全一致的Q?br />4752K=(1127Q?1)×4K
而RSS的内容相当于linux目的private working-storage segments加上pers code?br />shared library data?br />43556KQ(1127 + 9681 + 81Q?4K
TRS是INUSE目的pers code:
38724K=9681*4K
 



Prayer 2009-12-17 13:25 发表评论
]]>
AIX中ps命o中到底用不用?”?http://www.shnenglu.com/prayer/archive/2009/11/12/100777.htmlPrayerPrayerThu, 12 Nov 2009 02:26:00 GMThttp://www.shnenglu.com/prayer/archive/2009/11/12/100777.htmlhttp://www.shnenglu.com/prayer/comments/100777.htmlhttp://www.shnenglu.com/prayer/archive/2009/11/12/100777.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/100777.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/100777.html

    我发现很多玩AIX好多q的人都搞不清ps命o中的那个“-”Q到底是应该用ps -elf、ps aux呢?q是应该用ps elf、ps -aux呢?

 

 

    ?man一下ps 看看吧,你会发现AIX下的ps命o有两U语法格式:一U叫X/Open标准Q一U叫Berkeley标准?br>ps Command

Purpose

Shows current status of processes.

Syntax

X/Open Standards

ps [ -A ] [ -N ] [ -a ] [ -d ] [ -e ] [ -f ] [ -k ] [ -l ] [ -F format] [ -o
Format ] [ -c Clist ] [ -G Glist ] [ -g Glist ] [ -m ] [ -n NameList ] [ -p
Plist ] [ -t Tlist ] [ -U Ulist ] [ -u Ulist ]

Berkeley Standards

ps [ a ] [ c ] [ e ] [ ew ] [ eww ] [ g ] [ n ] [ U ] [ w ] [ x ] [ l | s | u |
v ] [ t Tty ] [ ProcessNumber ]

    现在你会知道ps -elf、ps aux是正的写法Q而ps elf、ps -aux自然是错误的了。这其实是个很容易被忽视的小问题Q所以很多h玩AIX的hL搞错。我接触AIX之前Q恰好学q一端时间的SOLARISQ所以一开始就注意Cq个l节。SOLARIS也有两个版本的psQ一个是默认的System V 版本Q如Q?usr/bin/ps -elfQ一个是非默认的BSD版本Q如Q?usr/ucb/ps -aux?/p>

    BSD的意思相信大安知道Q是Berkeley Software DistributionQ巴克利软g发行版)的羃写。那ucb是什么意思呢Q其实是
University of California, Berkeley Q加州大学巴克利分校Q的~写。看Q这两个都是~写?都有Berkeley。好了,说的q里Q我看就没必要l再|嗦下去了。用GOOGLE搜一?#8220;UNIX历史”?#8220;University of California, Berkeley”?#8220;System V”q些关键字,怿INTERNET上有很多详细说明它们之间关系的文章。知道点儿UNIX的历Ԍ其实是g很有的事情?/p>

    至于AIX的man中提到的“X/Open标准”?#8220;System V 版本”是什么关p,我也不知道,也懒得搞清楚了,惛_它们之间一定是有联pȝ。如果你想知道细情,那还是用GOOGLE搜吧Q呵c?/p>

    最后ȝ一下AIX中ps命oQ你只要C个命令就好了——ps -elf和ps aux。ps -elf是System V风格Q同SOLARIS的ps -elfQps aux是BSD风格Q同SOLARIS?usr/ucb/ps -auxQ估计LINUX和FREEBSD都用aux参数。另外,我的l验是:ps 的其它参数都不是很常用,只要死记住这两组参数Q必要的时候会zȝ成ps -el、ps -e、ps ax之类的就够了。当然你q要熟悉一下这两组参数的命令输Z的每一列的含义Q这个在man里都有写的,我也׃多说了?/p>


Prayer 2009-11-12 10:26 发表评论
]]>
linux用户权限的管?/title><link>http://www.shnenglu.com/prayer/archive/2009/09/24/97101.html</link><dc:creator>Prayer</dc:creator><author>Prayer</author><pubDate>Thu, 24 Sep 2009 02:13:00 GMT</pubDate><guid>http://www.shnenglu.com/prayer/archive/2009/09/24/97101.html</guid><wfw:comment>http://www.shnenglu.com/prayer/comments/97101.html</wfw:comment><comments>http://www.shnenglu.com/prayer/archive/2009/09/24/97101.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/prayer/comments/commentRss/97101.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/prayer/services/trackbacks/97101.html</trackback:ping><description><![CDATA[在Linux操作pȝ中,root的权限是最高的Q也被称U权限的拥有者。普通用h法执行的操作Qroot用户都能完成Q所以也被称之ؓ񔽎理用户?br><br>?pȝ中,每个文g、目录和q程Q都归属于某一个用P没有用户许可其它普通用h无法操作的,但对root除外。root用户的特权性还表现在root?以超Q何用户和用户l来Ҏ件或目录q行d、修Ҏ删除Q在pȝ正常的许可范围内Q;对可执行E序的执行、终止;对硬件设备的d、创建和U除{;?可以Ҏ件和目录q行属主和权限进行修改,以适合pȝ理的需要(因ؓroot是系l中权限最高的Ҏ用户Q;<br><br>一、对用户和普通用L理解Q?br><br>1、什么是用户Q?br><br>?所有Linuxpȝ中,pȝ都是通过UID来区分用h限别的Q而UID?的用戯pȝU定为是h权限。超U用户具有在pȝU定的最高权限满?内操作,所以说用户可以完成pȝ理的所有工P我们可以通过/etc/passwd 来查得UID?的用hrootQ而且只有root对应的UID?Q从q一Ҏ看,root用户在系l中是无可替代的至高C和无限制权限。root 用户在系l中是用户Q?br><br>2、理?UID 和用L对应关系<br><br>当系l默认安装时Q系l用户和UID 是一对一的对关系Q也是说一个UID 对应一个用戗我们知道用戯n份是通过UID 来确认的Q我们在 《用PuserQ和用户l(groupQ配|文件详解》中的UID 的解说中有谈?UID 是确认用h限的标识Q用L录系l所处的角色是通过UID 来实现的Q而非用户名;把几个用户共用一个UID 是危险的Q比如我们把普通用LUID 改ؓ0Q和rootq一个UID Q这事实上就造成了系l管理权限的混ؕ。如果我们想用root权限Q可以通过su或sudo来实玎ͼ切不可随意让一个用户和root分n同一个UID Q?<br><br>在系l中Q能不能让UID 和用h一对多的关p?是可以的Q比如我们可以把一个UID?q个值分配给几个用户共同使用Q这是UID 和用L一对多的关pR但q样做的有点危险;相同UID的用户具有相同的w䆾和权限。比如我们在pȝ中把beinanq个普通用LUID改ؓ0后,?实上q个普通用户就h了超U权限,他的能力和权限和root用户一P用户beinan所有的操作都将被标识ؓroot的操作,因ؓbeinan?UID?,而UID?的用hroot Q是不是有点扰口Q也可以理解为UID?的用户就是root Qroot用户的UID是0Q?br><br>UID和用L一对一的对应关p?Q只是要求管理员q行pȝ理Ӟ所要坚守的准则Q因为系l安全还是第一位的。所以我们还是把权限保留lrootq唯一的用h最好的选择Q?br><br>如果我们不把UID?值的分nl其它用户用,只有root用户是唯一拥有UID=0的话Qroot用户是唯一的超U权限用P<br><br>3、普通用户和伪装用户<br><br>?用户相对的就是普通用户和虚拟Q也被称Z装用PQ普通和伪装用户都是受限用户Q但Z完成特定的Q务,普通用户和伪装用户也是必须的;Linux 是一个多用户、多d的操作系l,多用户主要体现在用户的角色的多样性,不同的用h分配的权限也不同Q这也是Linuxpȝ比Windowspȝ更ؓ?全的本质所在,即是现在最新版本的Windows 2003 Q也无法抹去其单用户pȝ的烙华ͼ<br><br>? 用户Q权限)在系l管理中的作?br><br>权限用户QUID?的用P到底在系l管理中起什么作用呢Q主要表现在以下两点Q?br><br>1、对M文g、目录或q程q行操作Q?br><br>但值得注意的是q种操作是在pȝ最高许可范围内的操作;有些操作是h权限的root也无法完成;<br><br>比如/proc 目录Q?proc 是用来反应系l运行的实时状态信息的Q因此即便是root也无能ؓ力;它的权限如下<br><br>[root@localhost ~]# pwd<br>/root<br>[root@localhost ~]# cd /<br>[root@localhost /]# ls -ld /proc/<br>dr-xr-xr-x 134 root root 0 2005-10-27 /proc/<br><br>是q个目录Q只能是d执行权限Q但l对没有写权限的Q就是我们把/proc 目录的写权限打开lrootQroot用户也是不能q行写操作;<br><br>[root@localhost ~]# chmod 755 /proc <br>[root@localhost /]# ls -ld /proc/<br>drwxr-xr-x 134 root root 0 2005-10-27 /proc/<br>[root@localhost /]# cd /proc/<br>[root@localhost proc]# mkdir testdir<br>mkdir: 无法创徏目录?testdir?: 没有那个文g或目?br><br>2、对于涉及系l全局的系l管理;<br><br>g理、文件系l理解、用L理以及涉及到的系l全局配置{等......如果您执行某个命令或工具Ӟ提示您无权限Q大多是需要超U权限来完成Q?br><br>比如用adduser来添加用Pq个只能用通过权限的用h完成Q?br><br>3、超U权限的不可替代性;<br><br>?于超U权限在pȝ理中的不可~少的重要作用,Z完成pȝ理dQ我们必ȝ到超U权限;在一般情况下Qؓ了系l安全,对于一般常规别的应用Q不需 要root用户来操作完成,root用户只是被用来管理和l护pȝ之用Q比如系l日志的查看、清理,用户的添加和删除......<br><br>在不涉及pȝ理的工作的环境下,普通用戯可以完成Q比如编写一个文Ӟ听听音乐Q用gimp 处理一?span>囄</span>{?..... Z普通应用程序的调用Q大多普通用户就可以完成Q?br><br>当我们以普通权限的用户dpȝӞ有些pȝ配置及系l管理必通过权限用户完成Q比如对pȝ日志的管理,d和删除用戗而如何才能不直接以rootdQ却能从普通用户切换到root用户下才能进行操作系l管理需要的工作Q这涉及到权限理的问题;<br><br>获取权限的过E,是切换普通用戯n份到用户w䆾的过E;q个q程主要是通过su和sudo 来解冻I<br><br>三、?su 命o临时切换用户w䆾Q?br><br>1、su 的适用条g和威?br><br>su 命o是切换用户的工P怎么理解呢?比如我们以普通用户beinand的,但要d用户dQ执行useradd Qbeinan用户没有q个权限Q而这个权限恰恰由root所拥有。解军_法无法有两个Q一是退出beinan用户Q重Croot用户dQ但q种办法 q不是最好的Q二是我们没有必要退出beinan用户Q可以用su来切换到root下进行添加用L工作Q等d完成后再退出root。我们可以看到当?通过su 切换是一U比较好的办法;<br><br>通过su可以在用户之间切换,如果权限用户root向普通或虚拟用户切换不需要密码,什么是权力Q这是Q而普通用户切换到其它M用户都需要密码验证;<br><br>2、su 的用法:<br><br>su [OPTION选项参数] [用户] <br><br>??-, -l, --login dq改变到所切换的用L境;<br>??-c, --commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境Q?br><br>至于更详l的Q请参看man su Q?br><br>3、su 的范例:<br><br>su 在不加Q何参敎ͼ默认为切换到root用户Q但没有转到root用户家目录下Q也是说这时虽然是切换为root用户了,但ƈ没有改变rootd环境Q用户默认的d环境Q可以在/etc/passwd 中查得到Q包括家目录QSHELL定义{;<br><br>[beinan@localhost ~]$ su<br>Password:<br>[root@localhost beinan]# pwd<br>/<span>home</span>/beinan<br><br>su 加参?- Q表C默认切换到root用户Qƈ且改变到root用户的环境;<br><br>[beinan@localhost ~]$ pwd<br>/home/beinan<br>[beinan@localhost ~]$ su -<br>Password:<br>[root@localhost ~]# pwd<br>/root<br><br>su 参数 - 用户?<br><br>[beinan@localhost ~]$ su - root 注:q个和su - 是一L功能Q?br>Password:<br>[root@localhost ~]# pwd<br>/root<br><br>[beinan@localhost ~]$ su - linuxsir 注:q是切换?linuxsir用户<br>Password: 注:在这里输入密码;<br>[linuxsir@localhost ~]$ pwd 注:查看用户当前所处的位置Q?br>/home/linuxsir<br>[linuxsir@localhost ~]$ id 注:查看用户的UID和GID信息Q主要是看是否切换过来了Q?<br><br>uid=505(linuxsir) gid=502(linuxsir) groups=0(root),500(beinan),502(linuxsir)<br>[linuxsir@localhost ~]$<br><br>[beinan@localhost ~]$ su - -c ls 注:q是su的参数组合,表示切换到root用户Qƈ且改变到root环境Q然后列出root家目录的文gQ然后退出root用户Q?br>Password: 注:在这里输入root的密码;<br>anaconda-ks.cfg Desktop install.log install.log.syslog testgroup testgroupbeinan testgrouproot <br><br>[beinan@localhost ~]$ pwd 注:查看当前用户所处的位置Q?br>/home/beinan<br>[beinan@localhost ~]$ id 注:查看当前用户信息Q?br>uid=500(beinan) gid=500(beinan) groups=500(beinan)<br><br>4、su的优~点Q?br><br>su 的确为管理带来方便,通过切换到root下,能完成所有系l管理工P只要把root的密码交lQ何一个普通用P他都能切换到root来完成所有的pȝ理工作Q?br><br>?通过su切换到root后,也有不安全因素;比如pȝ?0个用P而且都参与管理。如果这10个用户都涉及到超U权限的q用Q做为管理员如果惌其它?户通过su来切换到权限的rootQ必Lroot权限密码都告诉这10个用P如果q?0个用户都有root权限Q通过root权限可以做Q何事Q?q在一定程度上对pȝ的安全造成了威协;xWindows吧,直就是恶梦;<br><br>?没有不安全的pȝQ只有不安全的h?Q我们绝对不能保证这10个用户都能按正常操作程来管理系l,其中M一人对pȝ操作的重大失误,都可能导致系l崩溃或数据损失Q?br><br>所以su 工具在多人参与的pȝ理中,q不是最好的选择Qsu只适用于一两个人参与管理的pȝQ毕竟suq不能让普通用户受限的使用Q?br><br>用户root密码应该掌握在少数用h中,q绝Ҏ真理Q所以集权而治的存在还是有一定道理的Q?br><br>四、sudo 授权许可使用的suQ也是受限制的su<br><br>1. sudo 的适用条gQ?br><br>?于su 对切换到权限用户root后,权限的无限制性,所以suq不能担d个管理员所理的系l。如果用su 来切换到用户来管理系l,也不能明哪些工作是由哪个管理员q行的操作。特别是对于服务器的理有多人参与管理时Q最好是针对每个理员的技术特长和 理范围Qƈ且有针对性的下放l权限,q且U定其用哪些工h完成与其相关的工作,q时我们有必要用到 sudo?br><br>通过sudoQ我们能把某些超U权限有针对性的下放Qƈ且不需要普通用L道root密码Q所以sudo 相对于权限无限制性的su来说Q还是比较安全的Q所以sudo 也能被称为受限制的su Q另外sudo 是需要授权许可的Q所以也被称为授权许可的suQ?br><br>sudo 执行命o的流E是当前用户切换到rootQ或其它指定切换到的用户Q,然后以rootQ或其它指定的切换到的用Pw䆾执行命oQ执行完成后Q直接退回到当前用户Q而这些的前提是要通过sudo的配|文?etc/sudoers来进行授权;<br><br>2、从~写 sudo 配置文g/etc/sudoers开始;<br><br>sudo的配|文件是/etc/sudoers Q我们可以用他的专用~辑工具visodu Q此工具的好处是在添加规则不太准时Q保存退出时会提C给我们错误信息Q配|好后,可以用切换到您授权的用户下,通过sudo -l 来查看哪些命令是可以执行或禁止的Q?br><br>/etc/sudoers 文g中每行算一个规则,前面带有#号可以当作是说明的内容,q不执行Q如果规则很长,一行列不下Ӟ可以用\hl行Q这L来一个规则也可以拥有多个行;<br><br>/etc/sudoers 的规则可分ؓ两类Q一cL别名定义Q另一cL授权规则Q别名定义ƈ不是必须的,但授权规则是必须的;<br><br>3?etc/sudoers 配置文g中别名规?br><br>别名规则定义格式如下Q?br><br>Alias_Type NAME = item1, item2, ...<br><br>?br><br>Alias_Type NAME = item1, item2, item3 : NAME = item4, item5<br><br>别名cdQAlias_TypeQ:别名cd包括如下四种<br><br>Host_Alias 定义L别名Q?br>User_Alias 用户别名Q别名成员可以是用户Q用LQ前面要?P<br>Runas_Alias 用来定义runas别名Q这个别名指定的?目的用户?Q即sudo 允许切换至的用户Q?br>Cmnd_Alias 定义命o别名Q?br><br>NAME 是别名了,NMAE的命名是包含大写字母、下划线以及数字Q但必须以一个大写字母开_比如SYNADM、SYN_ADM或SYNAD0是合法的QsYNAMDA?SYNAD是不合法的;<br><br>item 按中文翻译是目Q在q里我们可以译成成员Q如果一个别名下有多个成员,成员与成员之_通过半角,号分隔;成员在必L有效q事实存在的。什么是有效?呢?比如L名,可以通过w查看用户的主机名Q或ip地址Q,如果您只是本地机操作Q只通过hostname 命op查看Q用户名当然是在pȝ中存在的Q在/etc/paswd中必d在;对于定义命o别名Q成员也必须在系l中事实存在的文件名Q需要绝对\ 径)Q?br><br>item成员受别名类?Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias 制约Q定义什么类型的别名Q就要有什么类型的成员盔R。我们用Host_Alias定义L别名Ӟ成员必须是与L相关相关联,比如是主机名Q包括远E?d的主机名Q、ip地址Q单个或整段Q、掩码等Q当用户dӞ可以通过w命o来查看登录用户主Z息;用User_Alias?Runas_Alias定义Ӟ必须要用pȝ用户做ؓ成员Q用Cmnd_Alias 定义执行命o的别名时Q必Lpȝ存在的文Ӟ文g名可以用通配W表C,配置Cmnd_Alias时命令需要绝对\径;<br><br>其中 Runas_Alias 和User_Alias 有点怼Q但与User_Alias l对不是同一个概念,Runas_Alias 定义的是某个pȝ用户可以sudo 切换w䆾到Runas_Alias 下的成员Q我们在授权规则中以实例q行解说Q?br><br>别名规则是每行算一个规则,如果一个别名规则一行容不下Ӟ可以通过\来箋行;同一cd别名的定义,一ơ也可以定义几个别名Q他们中间用:号分隔,<br><br>Host_Alias HT01=localhost,st05,st04,10,0,0,4,255.255.255.0,192.168.1.0/24 注:定义L别名HT01Q通过=号列出成?br>Host_Alias HT02=st09,st10 注:L别名HT02Q有两个成员Q?br>Host_Alias HT01=localhost,st05,st04,10,0,0,4,255.255.255.0,192.168.1.0/24:HT02=st09,st10 注:上面的两条对L的定义,可以通过一条来实现Q别名之间用:号分Ԍ<br><br>注: 我们通过Host_Alias 定义L别名Ӟ目可以是主机名、可以是单个ipQ整Dip地址也可以)Q也可以是网l掩码;如果是主机名Q必L多台机器的网l中Q而且q些机器得能 通过L名相互通信讉K才有效。那什么才是通过L名相互通信或访问呢Q比?ping L名,或通过q程讉KL名来讉K。在我们局域网中,如果让计机通过L名访问通信Q必设|?etc/hostsQ?etc /resolv.conf Q还要有DNS做解析,否则怺之间无法通过L名访问;在设|主机别名时Q如果项目是中某个项目是L名的话,可以通过hostname 命o来查看本C机的L名,通过w命o查来看登录主机是来源Q通过来源来确认其它客h的主机名或ip地址Q对于主机别名的定义Q看上去有点复杂Q其?是很单?br><br>如果您不明白Host_Alias 是怎么回事Q也可以不用讄L别名Q在定义授权规则旉过ALL来匹配所有可能出现的L情况。如果您把主机方面的知识弄的更明白,的确需要多多学习?br><br>User_Alias SYSAD=beinan,linuxsir,bnnnb,lanhaitun 注:定义用户别名Q下有四个成员;要在pȝ中确实在存在的;<br>User_Alias NETAD=beinan,bnnb 注:定义用户别名NETAD Q我惌q个别名下的用户来管理网l,所以取了NETAD的别名;<br>User_Alias WEBMASTER=linuxsir 注:定义用户别名WEBMASTERQ我想用q个别名下的用户来管理网站;<br>User_Alias SYSAD=beinan,linuxsir,bnnnb,lanhaitun:NETAD=beinan,bnnb:WEBMASTER=linuxsir 注:上面三行的别名定义,可以通过q一行来实现Q请看前面的说明Q是不是W合Q?br><br>Cmnd_Alias USERMAG=/<span>usr</span>/sbin/adduser,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,/bin/chown,/bin/chmod <br><br>注意Q命令别名下的成员必L文g或目录的l对路径Q?br><br>Cmnd_Alias DISKMAG=/sbin/fdisk,/sbin/parted<br>Cmnd_Alias NETMAG=/sbin/ifconfig,/etc/init.d/net<span>work</span><br>Cmnd_Alias KILL = /usr/bin/kill<br>Cmnd_Alias PWMAG = /usr/sbin/reboot,/usr/sbin/halt <br>Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \ <br>? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???/usr/local/bin/tcsh, /usr/bin/rsh, \<br>? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???/usr/local/bin/zsh<br><br>注:q行定义命o别名有点长,可以通过 \ h行;<br><br>Cmnd_Alias SU = /usr/bin/su,/bin,/sbin,/usr/sbin,/usr/bin <br><br>在上面的例子中,有KILL和PWMAG的命令别名定义,我们可以合ƈZ行来写,也就是等仯Q?br><br>Cmnd_Alias KILL = /usr/bin/killQPWMAG = /usr/sbin/reboot,/usr/sbin/halt 注:q一行就代表了KILL和PWMAG命o别名Q把KILL和PWMAG的别名定义合q在一行写也是可以的;<br><br><br>Runas_Alias OP = root, operator <br>Runas_Alias DBADM=mysql:OP = root, operator 注:q行是上面两行的{h行;至于怎么理解Runas_Alias Q我们必d通过授权规则的实例来理解Q?br><br>4?etc/sudoers中的授权规则Q?br><br>授权规则是分配权限的执行规则Q我们前面所讲到的定义别名主要是Z更方便的授权引用别名Q如果系l中只有几个用户Q其实下放权限比较有限的话,可以不用定义别名Q而是针对pȝ用户直接直接授权Q所以在授权规则中别名ƈ不是必须的;<br><br>授权规则q不是无章可寻,我们只说基础一点的Q比较简单的写法Q如果您惌l了解授权规则写法的Q请参看man sudoers<br><br><strong>授权用户 L=命o动作</strong> <br><br>q三个要素缺一不可Q但在动作之前也可以指定切换到特定用户下Q在q里指定切换的用戯? )hhQ如果不需要密码直接运行命令的Q应该加NOPASSWD:参数Q但q些可以省略QD例说明;<br><br>实例一Q?br><br>beinan ALL=/bin/chown,/bin/chmod <br><br>?果我们在/etc/sudoers 中添加这一行,表示beinan 可以在Q何可能出现的L名的pȝ中,可以切换到root用户下执?/bin/chown ?bin/chmod 命oQ通过sudo -l 来查看beinan 在这CZ允许和禁止运行的命oQ?br><br>值得注意的是Q在q里省略了指定切换到哪个用户下执?bin/shown ?bin/chmod命oQ在省略的情况下默认为是切换到root用户下执行;同时也省略了是不是需要beinan用户输入验证密码Q如果省略了Q默认ؓ是需要验证密码?br><br>Z更详l的说明q些Q我们可以构造一个更复杂一点的公式Q?br><br>授权用户 L=[(切换到哪些用h用户l?] [是否需要密码验证] 命o1,[(切换到哪些用h用户l?] [是否需要密码验证] [命o2],[(切换到哪些用h用户l?] [是否需要密码验证] [命o3]...... <br><br>注解Q?br><br>凡是[ ]中的内容Q是可以省略Q命令与命o之间?号分隔;通过本文的例子,可以对照着看哪些是省略了,哪些地方需要有I格Q?br>在[(切换到哪些用h用户l?] Q如果省略,则默认ؓroot用户Q如果是ALL Q则代表能切换到所有用P注意要切换到的目的用户必ȝ()hhQ比?ALL)?beinan)<br><br>实例二:<br><br>beinan ALL=(root) /bin/chown, /bin/chmod <br><br>?果我们把W一个实例中的那行去掉,换成q行Q表C的是beinan 可以在Q何可能出现的L名的L中,可以切换到root下执?/bin/chown Q可以切换到M用户招执?bin/chmod 命oQ通过sudo -l 来查看beinan 在这CZ允许和禁止运行的命oQ?br><br>实例三:<br><br>beinan ALL=(root) NOPASSWD: /bin/chown,/bin/chmod <br><br>?果换成这个例子呢Q表C的是beinan 可以在Q何可能出现的L名的L中,可以切换到root下执?/bin/chown Q不需要输入beinan用户的密码;q且可以切换CQ何用户下执行/bin/chmod 命oQ但执行chmod旉要beinan输入自己的密码;通过sudo -l 来查看beinan 在这CZ允许和禁止运行的命oQ?br><br>关于一个命令动作是不是需要密码,我们可以发现在系l在默认的情况下是需要用户密码的Q除非特加指Z需要用户需要输入自己密码,所以要在执行动作之前加入NOPASSWD: 参数Q?<br><br>有可能有的弟兄对pȝ理的命令不太懂Q不知道其用法,q样媄响了他对 sudoers定义的理解,下面我们再D一个最单,最有说服务力的例子Q?br><br>实例四:<br><br>比如我们想用beinan普通用户通过more /etc/shadow文g的内ҎQ可能会出现下面的情况;<br><br>[beinan@localhost ~]$ more /etc/shadow<br>/etc/shadow: 权限不够<br><br>q时我们可以用sudo more /etc/shadow 来读取文件的内容Q就需要在/etc/soduers中给beinan授权Q?br><br>于是我们可以先su 到root用户下通过visudo 来改/etc/sudoers Q(比如我们是以beinan用户dpȝ的)<br><br>[beinan@localhost ~]$ su<br>Password: 注:在这里输入root密码 <br><br>下面q行visoduQ?br><br>[root@localhost beinan]# visudo 注:q行visudo 来改 /etc/sudoers <br><br>加入如下一行,退Z存;退Z存,在这里要会用viQvisudo也是用的vi~辑器;至于vi的用法不多说了;<br><br>beinan ALL=/bin/more 表示beinan可以切换到root下执行more 来查看文Ӟ<br><br>退回到beinan用户下,用exit命oQ?br><br>[root@localhost beinan]# exit<br>exit<br>[beinan@localhost ~]$<br><br>查看beinan的通过sudo能执行哪些命令? <br><br>[beinan@localhost ~]$ sudo -l<br>Password: 注:在这里输入beinan用户的密?br>User beinan may run the following commands on this host: 注:在这里清晰的说明在本CZQbeinan用户可以以root权限q行more Q在root权限下的more Q可以查看Q何文本文件的内容的;<br>? ? (root) /bin/more<br><br>最后,我们看看是不是beinan用户有能力看?etc/shadow文g的内容;<br><br>[beinan@localhost ~]$ sudo more /etc/shadow<br><br>beinan 不但能看?/etc/shadow文g的内容,q能看到只有root权限下才能看到的其它文g的内容,比如Q?br><br>[beinan@localhost ~]$ sudo more /etc/gshadow<br><br>对于beinan用户查看和读取所有系l文件中Q我只想?etc/shadow 的内容可以让他查看;可以加入下面的一行;<br><br>beinan ALL=/bin/more /etc/shadow<br><br>题外话:有的弟兄会说Q我通过su 切换到root用户p看到所有想看的内容了,哈哈Q对啊。但׃现在不是在讲qsudo的用法吗Q如果主Z有多个用户ƈ且不知道root用户的密码,但又x看某些他们看不到的文Ӟq时需要管理员授权了;q就是sudo的好处;<br><br>实例五:l习用户l在/etc/sudoers中写法;<br><br>如果用户l出现在/etc/sudoers 中,前面要加%P比如%beinan Q中间不能有I格Q?br><br>%beinan ALL=/usr/sbin/*,/sbin/*<br><br>如果我们?/etc/sudoers 中加上如上一行,表示beinan用户l下的所有成员,在所有可能的出现的主机名下,都能切换到root用户下运?/usr/sbin?sbin目录下的所有命令;<br><br>实例六:l习取消某类E序的执行;<br><br>取消E序某类E序的执行,要在命o动作前面加上!P 在本例中也出C通配W的*的用法;<br><br>beinan ALL=/usr/sbin/*,/sbin/*,!/usr/sbin/fdisk 注:把这行规则加入到/etc/sudoers中;但您得有beinanq个用户l,q且beinan也是q个l中的才行;<br><br>本规则表Cbeinan用户在所有可能存在的L名的L上运?usr/sbin?sbin下所有的E序Q但fdisk E序除外Q?<br><br>[beinan@localhost ~]$ sudo -l<br>Password: 注:在这里输入beinan用户的密码;<br>User beinan may run the following commands on this host:<br>(root) /usr/sbin/*<br>(root) /sbin/*<br>(root) !/sbin/fdisk<br><br>[beinan@localhost ~]$ sudo /sbin/fdisk -l<br>Sorry, user beinan is not allowed to execute '/sbin/fdisk -l' as root on localhost. <br><br>注:不能切换到root用户下运行fdisk E序Q?br><br><strong>实例七:别名的运用的实践Q?br><br>?如我们就一C机localhostQ能通过hostname 来查看,我们在这里就不定义主机别名了Q用ALL来匹配所有可能出现的L名;q且有beinan、linuxsir、lanhaitun 用户Q主要是通过例子能更好理解Qsudo虽然单好用,但能把说的明白的是仉事;最好的办法是多看例子和man soduers Q?br><br>User_Alias SYSADER=beinan,linuxsir,%beinan <br>User_Alias DISKADER=lanhaitun <br>Runas_Alias OP=root <br>Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root <br>Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk 注:定义命o别名DSKCMDQ下有成员parted和fdisk Q?br>SYSADER ALL= SYDCMD,DSKCMD <br>DISKADER ALL=(OP) DSKCMD</strong><br><br>注解Q?br><br>W一行:定义用户别名SYSADER 下有成员 beinan、linuxsir和beinan用户l下的成员,用户l前面必d%P<br>W二行:定义用户别名 DISKADER Q成员有lanhaitun<br>W三行:定义Runas用户Q也是目标用户的别名ؓOPQ下有成员root<br>W四行:定义SYSCMD命o别名Q成员之间用,号分隔,最后的!/usr/bin/passwd root 表示不能通过passwd 来更改root密码Q?br>W五行:定义命o别名DSKCMDQ下有成员parted和fdisk Q?br>W?六行Q?表示授权SYSADER下的所有成员,在所有可能存在的L名的L下运行或止 SYDCMD和DSKCMD下定义的命o。更为明遥_beinan、linuxsir和beinan用户l下的成员能以rootw䆾q行 chown 、chmod 、adduser、passwdQ但不能更改root的密码;也可以以rootw䆾q行 parted和fdisk Q本条规则的{h规则是;<br><br>beinan,linuxsir,%beinan ALL=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,/sbin/parted,/sbin/fdisk <br><br>W七行:表示授权DISKADER 下的所有成员,能以OP的n份,来运?DSKCMD Q不需要密码;更ؓ明确的说 lanhaitun 能以rootw䆾q行 parted和fdisk 命oQ其{h规则是:<br><br><br>lanhaitun ALL=(root) /sbin/parted,/sbin/fdisk <br><br>可能有的弟兄会说我想不输入用L密码p切换到rootq运行SYDCMD和DSKCMD 下的命oQ那应该把把NOPASSWD:加在哪里为好Q理解下面的例子吧,能明白的Q?br><br>SYSADER ALL= NOPASSWD: SYDCMD, NOPASSWD: DSKCMD <br><br>5?etc/sudoers中其它的未尽事项Q?br><br>在授权规则中Q还?NOEXEC:和EXEC的用法,自己查man sudoers 了解Q还有关于在规则中通配W的用法Q也是需要了解的。这些内容不多说了,毕竟只是一个入门性的文档。soduers配置文g要多单就有多单,要多隑ְ有多难,q自己的应用了?br><br>6、sudo的用法;<br><br>我们在前面讲?etc/sudoers 的规则写法,最l的目的是让用户通过sudod配置文g中的规则来实现匹配和授权Q以便替换n份来q行命o操作Q进而完成在其权限下不可完成的Q务;<br><br>我们只说最单的用法Q更l的请参考man sudo<br><br>sudo [参数选项] 命o<br>-l 列出用户在主Z可用的和被禁止的命oQ一般配|好/etc/sudoers后,要用q个命o来查看和试是不是配|正的Q?br>-v 验证用户的时间戳Q如果用戯行sudo 后,输入用户的密码后Q在短时间内可以不用输入口o来直接进行sudo 操作Q用-v 可以跟踪最新的旉戻I<br>-u 指定以以某个用户执行特定操作Q?br>-k 删除旉戻I下一个sudo 命o要求用求提供密码Q?br><br>丑ֈQ?br><br>首先我们通过visudo 来改/etc/sudoers 文gQ加入下面一行;<br><br>beinan,linuxsir,%beinan ALL=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,/sbin/parted,/sbin/fdisk<br><br>然后列出beinan用户在主Z通过sudo 可以切换用户所能用的命令或被禁止用的命令;<br><br>[beinan@localhost ~]$ sudo -l 注:列出用户在主Z能通过切换用户的可用的或被止的命令;<br>Password: 注:在这里输入您的用户密码;<br>User beinan may run the following commands on this host:<br>? ? (root) /bin/chown 注:可以切换到root下用chown命oQ?br>? ? (root) /bin/chmod 注:可以切换到root下用chmod命oQ?br>? ? (root) /usr/sbin/adduser 注:可以切换到root下用adduser命oQ?br>? ? (root) /usr/bin/passwd [A-Za-z]* 注:可以切换到root下用 passwd 命oQ?br>? ? (root) !/usr/bin/passwd root 注:可以切换到root下,但不能执行passwd root 来更改root密码Q?br>? ? (root) /sbin/parted 注:可以切换?root下执行parted Q?br>? ? (root) /sbin/fdisk 注:可以切换到root下执?fdisk Q?br><br>通过上面的sudo -l 列出可用命o后,我想通过chown 命o来改?opt目录的属Mؓbeinan Q?br><br>[beinan@localhost ~]$ ls -ld /opt 注:查看/opt的属主;<br>drwxr-xr-x 26 root root 4096 10?27 10:09 /opt 注:得到的答案是归属root用户和root用户l; <br><br>[beinan@localhost ~]$ sudo chown beinan:beinan /opt 注:通过chown 来改变属Mؓbeinan用户和beinan用户l;<br>[beinan@localhost ~]$ ls -ld /opt 注:查看/opt属主是不是已l改变了Q?br>drwxr-xr-x 26 beinan beinan 4096 10?27 10:09 /opt<br><br>我们通过上面的例子发现beinan用户能切换到root后执行改变用户口令的passwd命oQ但上面的sudo -l 输出又明文写着不能更改root的口令;也就是说除了root的口令,beinan用户不能更改外,其它用户的口令都能更攏V下面我们来试Q?br><br>对于一个普通用h_除了更改自n的口令以外,他不能更改其它用L口o。但如果换到rootw䆾执行命oQ则可以更改其它用户的口令;<br><br>比如在系l中有linuxsirq个用户, 我们惛_试更改这个用L口oQ?br><br>[beinan@localhost ~]$ passwd linuxsir 注:不通过sudo 直接q行passwd 来更改linuxsir用户的口令;<br>passwd: Only root can specify a user name. 注:p|Q提CZ能通过 root来更改;<br>[beinan@localhost ~]$ sudo passwd linuxsir 注:我们通过/etc/sudoers 的定义,让beinan切换到root下执?passwd 命o来改变linuxsir的口令;<br>Changing password for user linuxsir. <br>New UNIX password: 注:输入新口令;<br>Retype new UNIX password: 注:再输入一ơ;<br>passwd: all authentication tokens updated successfully. 注:改变成功Q? <img src ="http://www.shnenglu.com/prayer/aggbug/97101.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/prayer/" target="_blank">Prayer</a> 2009-09-24 10:13 <a href="http://www.shnenglu.com/prayer/archive/2009/09/24/97101.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux用户理全攻略(二)http://www.shnenglu.com/prayer/archive/2009/09/24/97098.htmlPrayerPrayerThu, 24 Sep 2009 01:52:00 GMThttp://www.shnenglu.com/prayer/archive/2009/09/24/97098.htmlhttp://www.shnenglu.com/prayer/comments/97098.htmlhttp://www.shnenglu.com/prayer/archive/2009/09/24/97098.html#Feedback0http://www.shnenglu.com/prayer/comments/commentRss/97098.htmlhttp://www.shnenglu.com/prayer/services/trackbacks/97098.html摘要Q本文详解用PUserQ和用户l(GroupQ的配置文gQ本文是《Linux 用户QUserQ和用户l(GroupQ管理概q》文档的兛_部䆾的细化;通过本文Q您臛_能明?etc/passwd /etc/group Q以及什么是UID和GID {;其中对UID的重要性加以详l的Q最后,本文q以通过修改用户及用L配置文g的办法来实现理用户和用LQ进而说明在Linuxpȝ中,pȝ文g的重要性;


用户QUserQ和用户l(GroupQ的配置文gQ是pȝ理员最应该了解和掌握的pȝ基础文g之一Q从另一斚w来说Q了解这些文件也是系l安全管理的重要l成部䆾Q做Z个合格的pȝ理员应该对用户和用L配置文g透彻了解才行Q?/p>

一、用PUserQ相养I

谈到用户Q就不得不谈用户理Q用户配|文Ӟ以及用户查询和管理的控制工具Q用L理主要通过修改用户配置文g完成Q用L理控制工hl目的也是ؓ了修改用户配|文件?br>什么是用户查询和管理控制工具呢Q用h询和控制工具是查询、添加、修改和删除用户{系l管理工P比如查询用户的id和finger命oQ添加用Luseradd 或adduser 、userdel 用户的删?、设|密码的passwd命o、修改用户usermod {等Q我们需要知道的是通过用户查询和控制工hq行的动作的最l目的也是修改用户配|文Ӟ所以我们进行用L理的时候,直接修改用户配置文g一样可以达到用L理的目的Q?br>通过上面的解_我们能实实在在的感觉到用PUserQ配|文件的重要性;其实用户和用L在系l管理中是不可分割的Q但Z说明问题Q我们还是得把用PUserQ的配置文g单列出来解说Q其中包?etc/passwd ?etc/shadow 文gQ在q之中,你还能了解UID的重要性;
通过本标题,您可以了解或掌握的内ҎQ了?etc/passwd?etc/shadowQ什么UID Q?br>与用L关的pȝ配置文g主要?etc/passwd ?etc/shadowQ其?etc/shadow是用戯讯的加密文gQ比如用L密码口o的加密保存等Q?etc/passwd ?etc/shadow 文g是互补的Q我们可以通过Ҏ两个文g来差看他们的区别Q?br>1、关?etc/passwd ?UIDQ?/p>

/etc/passwd 是系l识别用L一个文Ӟ做个不恰当的比喻Q?etc/passwd 是一个花名册Q系l所有的用户都在q里有登录记载;当我们以beinan q个账号dӞpȝ首先会查?/etc/passwd 文gQ看是否有beinan q个账号Q然后确定beinan的UIDQ通过UID 来确认用户和w䆾Q如果存在则d/etc/shadow 影子文g中所对应的beinan的密码;如果密码核实无误则登录系l,d用户的配|文Ӟ
1Q?etc/passwd 的内容理解:

?etc/passwd 中,每一行都表示的是一个用L信息Q一行有7个段位;每个D位?号分Ԍ比如下面是我的系l中?etc/passwd 的两行;

beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
linuxsir:x:505:502:linuxsir open,linuxsir office,13898667715:/home/linuxsir:/bin/bash
beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
linuxsir:x:501:502::/home/linuxsir:/bin/bash
W一字段Q用户名Q也被称为登录名Q;在上面的例子中,我们看到q两个用L用户名分别是 beinan 和linuxsirQ?br>W二字段Q口令;在例子中我们看到的是一个xQ其实密码已被映到/etc/shadow 文g中;
W三字段QUID Q请参看本文的UID的解_
W四字段QGIDQ请参看本文的GID的解_
W五字段Q用户名全称Q这是可选的Q可以不讄Q在beinanq个用户中,用户的全U是beinan sun Q而linuxsir q个用户是没有设|全Uͼ
W六字段Q用L家目录所在位|;beinan q个用户?home/beinan Q而linuxsir q个用户?home/linuxsir Q?br>W七字段Q用h用SHELL 的类型,beinan和linuxsir 都用的是 bash Q所以设|ؓ/bin/bash Q?/p>

2Q关于UID 的理解:

UID 是用LID |在系l中每个用户的UID的值是唯一的,更确切的说每个用户都要对应一个唯一的UID Q系l管理员应该保q一规则。系l用LUID的g0开始,是一个正整数Q至于最大值可以在/etc/login.defs 可以查到Q一般Linux发行版约定ؓ60000Q?在Linux 中,root的UID?Q拥有系l最高权限;
UID 在系l唯一Ҏ,做ؓpȝ理员应该确保这一标准QUID 的唯一性关pdpȝ的安全,应该值得我们xQ比如我?etc/passwd 中把beinan的UID 改ؓ0后,你设想会发生什么呢Qbeinanq个用户会被认为root用户。beinanq个帐号可以q行所有root的操作;

UID 是确认用h限的标识Q用L录系l所处的角色是通过UID 来实现的Q而非用户名,切记Q把几个用户q一个UID 是危险的Q比如我们上面所谈到的,把普通用LUID 改ؓ0Q和rootq一个UID Q这事实上就造成了系l管理权限的混ؕ。如果我们想用root权限Q可以通过su或sudo来实玎ͼ切不可随意让一个用户和root分n同一个UID Q?/p>

UID是唯一性,只是要求理员所做的Q其实我们修?etc/passwd 文gQ可以修改Q何用LUID的gؓ0Q?br>一般情况下Q每个Linux的发行版都会预留一定的UID和GIDl系l虚拟用户占用,虚拟用户一般是pȝ安装时就有的Q是Z完成pȝd所必须的用P但虚拟用h不能dpȝ的,比如ftp、nobody、adm、rpm、bin、shutdown{;
在Fedora pȝ会把?99 个UID和GID 预留出来Q我们添加新用户时的UID ?00开始的QGID也是?00开始,至于其它pȝQ有的系l可能会把前999UID和GID预留出来Q以各个pȝ?etc/login.defs中的 UID_MIN 的最gؓ准; Fedora pȝ login.defs的UID_MIN?00Q而UID_MAX gؓ60000Q也是说我们通过adduser默认d的用LUID的值是500?0000之间Q而Slackware 通过adduser不指定UID来添加用P默认UID 是从1000开始;

2、关?etc/shadow Q?br>1Q?etc/shadow 概说Q?/p>

/etc/shadow文g?etc/passwd 的媄子文Ӟq个文gq不?etc/passwd 而生的Q这两个文g是应该是对应互补的;shadow内容包括用户及被加密的密码以及其?etc/passwd 不能包括的信息,比如用户的有效期限等Q这个文件只有root权限可以d和操作,权限如下Q?/p>

-r-------- 1 root root 1.5K 10?16 09:49 /etc/shadow
/etc/shadow 的权限不能随便改为其它用户可读,q样做是危险的。如果您发现q个文g的权限变成了其它用户l或用户可读了,要进行检查,以防pȝ安全问题的发生;
如果我们以普通用h看这个文件时Q应该什么也查看不到Q提C是权限不够Q?/p>

[beinan@localhost ~]$ more /etc/shadow
/etc/shadow: 权限不够

2Q?etc/shadow 的内容分析;

/etc/shadow 文g的内容包?个段位,每个D位之间?号分Ԍ我们以如下的例子说明Q?/p>

beinan:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7:::
linuxsir:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:
W一字段Q用户名Q也被称为登录名Q,?etc/shadow中,用户名和/etc/passwd 是相同的Q这样就把passwd 和shadow中用的用戯录联pd一Pq个字段是非I的Q?br>W二字段Q密码(已被加密Q,如果是有些用户在q段是xQ表C个用户不能登录到pȝQ这个字D|非空的;
W三字段Q上ơ修改口令的旉Q这个时间是?970q?1?1日算起到最q一ơ修改口令的旉间隔Q天敎ͼQ您可以通过passwd 来修改用L密码Q然后查?etc/shadow中此字段的变化;
W四字段Q两ơ修改口令间隔最的天数Q如果设|ؓ0,则禁用此功能Q也是说用户必ȝq多天才能修改其口令;此项功能用处不是太大Q默认值是通过/etc/login.defs文g定义中获取,PASS_MIN_DAYS 中有定义Q?br>W五字段Q两ơ修改口令间隔最多的天数Q这个能增强理员管理用户口令的时效性,应该说在增强了系l的安全性;如果是系l默认|是在d用户时由/etc/login.defs文g定义中获取,在PASS_MAX_DAYS 中定义;
W六字段Q提前多天警告用户口o过期;当用L录系l后Q系l登录程序提醒用户口令将要作废;如果是系l默认|是在d用户时由/etc/login.defs文g定义中获取,在PASS_WARN_AGE 中定义;
W七字段Q在口oq期之后多少天禁用此用户Q此字段表示用户口o作废多少天后Q系l会用此用P也就是说pȝ会不能再让此用户dQ也不会提示用户q期Q是完全用Q?br>W八字段Q用戯期日期;此字D|定了用户作废的天敎ͼ?970q的1?日开始的天数Q,如果q个字段的gؓI,帐号怹可用Q?br>W九字段Q保留字D,目前为空Q以备将来Linux发展之用Q?br>如果更ؓ详细的,L man shadow来查看帮助,您会得到更ؓ详尽的资料;
我们再根据实例分析:
beinan:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7:::
linuxsir:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:
W一字段Q用户名Q也被称之ؓd名)Q在例子中有峡谷两条记录Q也表示有两个用户beinan和linuxsir
W二字段Q被加密的密码,如果有的用户在此字段中是xQ表C个用户不能登录系l,也可以看作是虚拟用户Q不q虚拟用户和真实用户都是相对的,pȝ理员随时可以对M用户操作Q?br>W三字段Q表CZơ更改口令的天数Q距1970q?1?1日)Q上面的例子能说明beinan和linuxsirq两个用P是在同一天更改了用户密码Q当然是通过passwd 命o来更改的Q更改密码的旉?970q?1?1日的天数?3072Q?br>W四字段Q禁用两ơ口令修改之间最天数的功能Q设|ؓ0
W五字段Q两ơ修改口令间隔最多的天数Q在例子中都?9999天;q个值如果在d用户时没有指定的话,是通过/etc/login.defs来获取默认|PASS_MAX_DAYS 99999Q您可以查看/etc/login.defs来查看,具体的|
W六字段Q提前多天警告用户口o过期;当用L录系l后Q系l登录程序提醒用户口令将要作废;如果是系l默认|是在d用户时由/etc/login.defs文g定义中获取,在PASS_WARN_AGE 中定义;在例子中的值是7 Q表C在用户口o过期的?天警告用hҎ口oQ?br>W七字段Q在口oq期之后多少天禁用此用户Q此字段表示用户口o作废多少天后Q系l会用此用P也就是说pȝ会不能再让此用户dQ也不会提示用户q期Q是完全用Q在例子中,此字D两个用L都是I的Q表C禁用这个功能;
W八字段Q用戯期日期;此字D|定了用户作废的天敎ͼ?970q的1?日开始的天数Q,如果q个字段的gؓI,帐号怹可用Q在例子中,我们看到beinanq个用户在此字段是空的,表示此用h久可用;而linuxsirq个用户表示在距1970q?1?1日后13108天后q期Q算h也就?005q?1?1可期;哈哈Q如果有兴趣的的弟兄Q自己来算Q大体还是差不多?)Q?br>W九字段Q保留字D,目前为空Q以备将来Linux发展之用Q?/p>


本文来自CSDN博客Q{载请标明出处Q?a >http://blog.csdn.net/wupan168/archive/2009/09/17/4563268.aspx



Prayer 2009-09-24 09:52 发表评论
]]>
Linux用户理全攻略(一Q?/title><link>http://www.shnenglu.com/prayer/archive/2009/09/24/97095.html</link><dc:creator>Prayer</dc:creator><author>Prayer</author><pubDate>Thu, 24 Sep 2009 01:40:00 GMT</pubDate><guid>http://www.shnenglu.com/prayer/archive/2009/09/24/97095.html</guid><wfw:comment>http://www.shnenglu.com/prayer/comments/97095.html</wfw:comment><comments>http://www.shnenglu.com/prayer/archive/2009/09/24/97095.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/prayer/comments/commentRss/97095.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/prayer/services/trackbacks/97095.html</trackback:ping><description><![CDATA[<p>Linux 用户QuserQ和用户l(groupQ管理概q?/p> <p>摘要Q本文主要讲q在Linux pȝ中用?user)和用L(group)理相应的概念;用户(user)和用L(group)相关命o的列举;其中也对单用户多dQ多用户多Q务也做以解说Q本文应该说是比较基的文档;</p> <p><br>一、理解Linux的单用户多Q务,多用户多d概念Q?br>Linux 是一个多用户、多d的操作系l;我们应该了解单用户多d和多用户多Q务的概念Q?/p> <p>1、Linux 的单用户多Q务;<br>单用户多dQ比如我们以beinan dpȝQ进入系l后Q我要打开gedit 来写文档Q但在写文档的过E中Q我感觉点音乐Q所以又打开xmms 来点音乐Q当然听炚w乐还不行QMSN q得打开Q想知道几个弟兄现在正在做什么,q样一P我在用beinan 用户dӞ执行了gedit 、xmms以及msn{,当然q有输入法fcitx Q这栯来就有点单了Q一个beinan用户Qؓ了完成工作,执行了几个Q务;当然beinanq个用户Q其它的能以q程dq来Q也能做其它的工作?/p> <p>2、Linux 的多用户、多dQ?/p> <p>有时可能是很多用户同时用同一个系l,但ƈ不所有的用户都一定都要做同一件事Q所以这有多用户多d之说Q?br>举个例子Q比如LinuxSir.Org 服务器,上面有FTP 用户、系l管理员、web 用户、常规普通用LQ在同一时刻Q可能有的弟兄正在访问论坛;有的可能在上传Y件包理子站Q比如luma 或Yuking 兄在理他们的主늳l和FTP Q在与此同时Q可能还会有pȝ理员在l护pȝQ浏览主늚用的是nobody 用户Q大安用同一个,而上传Y件包用的是FTP用户Q管理员的对pȝ的维护或查看Q可能用的是普通帐h权限root帐号Q不同用hh的权限也不同Q要完成不同的Q务得需要不同的用户Q也可以说不同的用户Q可能完成的工作也不一P<br>值得注意的是Q多用户多Q务ƈ不是大家同时挤到一接在一台机器的的键盘和昄器前来操作机器,多用户可能通过q程d来进行,比如Ҏ务器的远E控Ӟ只要有用h限Q何h都是可以上去操作或访问的Q?/p> <p>3、用L角色区分Q?/p> <p>用户在系l中是分角色的,在Linux pȝ中,׃角色不同Q权限和所完成的Q务也不同Q值得注意的是用户的角色是通过UID和识别的Q特别是UIDQ在pȝ理中,pȝ理员一定要坚守UID 唯一的特性;<br>root 用户Q系l唯一Q是真实的,可以dpȝQ可以操作系lQ何文件和命oQ拥有最高权限;<br>虚拟用户Q这cȝ户也被称之ؓ伪用h假用P与真实用户区分开来,q类用户不具有登录系l的能力Q但却是pȝq行不可~少的用P比如bin、daemon、adm、ftp、mail{;q类用户都系l自w拥有的Q而非后来d的,当然我们也可以添加虚拟用P<br>普通真实用Pq类用户能登录系l,但只能操作自己家目录的内容;权限有限Q这cȝ户都是系l管理员自行d的;</p> <p>4、多用户操作pȝ的安全;</p> <p>多用Ll从事实来说对系l管理更为方ѝ从安全角度来说Q多用户理的系l更为安全,比如beinan用户下的某个文g不想让其它用L刎ͼ只是讄一下文件的权限Q只有beinan一个用户可d写可~辑p了,q样一来只有beinan一个用户可以对其私有文件进行操作,Linux 在多用户下表现最佻ILinux能很好的保护每个用户的安全,但我们也得学会Linux 才是Q再安全的系l,如果没有安全意识的管理员或管理技术,q样的系l也不是安全的?br>从服务器角度来说Q多用户的下的系l安全性也是最为重要的Q我们常用的Windows 操作pȝQ它在系U权限管理的能力只能说是一般般Q根本没有没有办法和Linux或Unix cȝl相比;</p> <p>二、用?userQ和用户l(groupQ概念;</p> <p>1、用PuserQ的概念Q?br>通过前面对Linux 多用L理解Q我们明白Linux 是真正意义上的多用户操作pȝQ所以我们能在Linuxpȝ中徏若干用户QuserQ。比如我们的同事想用我的计算机,但我不想让他用我的用户名dQ因为我的用户名下有不想让别人看到的资料和信息(也就是隐U内容)q时我就可以l他Z个新的用户名Q让他用我所开的用户名L腾,q从计算机安全角度来说是W合操作规则的;<br>当然用户QuserQ的概念理解q不仅仅于此Q在Linuxpȝ中还有一些用h用来完成特定d的,比如nobody和ftp {,我们讉KLinuxSir.Org 的网늨序,是nobody用户Q我们匿名访问ftp Ӟ会用到用户ftp或nobody Q如果您想了解Linuxpȝ的一些帐Ph?/etc/passwd Q?/p> <p>2、用LQgroupQ的概念Q?br>用户l(groupQ就是具有相同特征的用户QuserQ的集合体;比如有时我们要让多个用户h相同的权限,比如查看、修Ҏ一文g或执行某个命令,q时我们需要用LQ我们把用户都定义到同一用户l,我们通过修改文g或目录的权限Q让用户l具有一定的操作权限Q这LL下的用户对该文g或目录都h相同的权限,q是我们通过定义l和修改文g的权限来实现的;<br>举例Q我们ؓ了让一些用h权限查看某一文档Q比如是一个时间表Q而编写时间表的h要具有读写执行的权限Q我们想让一些用L道这个时间表的内容,而不让他们修改,所以我们可以把q些用户都划C个组Q然后来修改q个文g的权限,让用L可读Q这LL下面的每个用户都是可ȝQ?br>用户和用L的对应关pLQ一对一、多对一、一对多或多对多Q?br>一对一Q某个用户可以是某个l的唯一成员Q?br>多对一Q多个用户可以是某个唯一的组的成员,不归属其它用LQ比如beinan和linuxsir两个用户只归属于beinan用户l;<br>一对多Q某个用户可以是多个用户l的成员Q比如beinan可以是rootl成员,也可以是linuxsir用户l成员,q可以是adm用户l成员;<br>多对多:多个用户对应多个用户l,q且几个用户可以是归属相同的l;其实多对多的关系是前面三条的扩展Q理解了上面的三条,q条也能理解Q?/p> <p>三、用PuserQ和用户l(groupQ相关的配置文g、命令或目录Q?/p> <p>1、与用户QuserQ和用户l(groupQ相关的配置文gQ?br>1Q与用户QuserQ相关的配置文gQ?/p> <p>/etc/passwd 注:用户QuserQ的配置文gQ?br>/etc/shadow 注:用户QuserQ媄子口令文Ӟ</p> <p>2Q与用户l(groupQ相关的配置文gQ?br>/etc/group 注:用户l(groupQ配|文Ӟ<br>/etc/gshadow 注:用户l(groupQ的影子文gQ?/p> <p>2、管理用PuserQ和用户l(groupQ的相关工具或命令;</p> <p>1Q管理用PuserQ的工具或命令;<br>useradd 注:d用户<br>adduser 注:d用户<br>passwd 注:为用戯|密?br>usermod 注:修改用户命oQ可以通过usermod 来修改登录名、用L家目录等{;<br>pwcov 注:同步用户?etc/passwd ?etc/shadow<br>pwck 注:pwck是校验用户配|文?etc/passwd ?etc/shadow 文g内容是否合法或完_<br>pwunconv 注:是pwcov 的立逆向操作Q是?etc/shadow?/etc/passwd 创徏/etc/passwd Q然后会删除 /etc/shadow 文gQ?br>finger 注:查看用户信息工具<br>id 注:查看用户的UID、GID及所归属的用L<br>chfn 注:更改用户信息工具<br>su 注:用户切换工具<br>sudo 注:sudo 是通过另一个用h执行命oQexecute a command as another userQ,su 是用来切换用P然后通过切换到的用户来完成相应的dQ但sudo 能后面直接执行命令,比如sudo 不需要root 密码可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编?etc/sudoers来实玎ͼ<br>visudo 注:visodo 是编?/etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编?/etc/sudoers 的效果是一LQ?br>sudoedit 注:和sudo 功能差不多;</p> <p>2Q管理用LQgroupQ的工具或命令;</p> <p>groupadd 注:d用户l;<br>groupdel 注:删除用户l;<br>groupmod 注:修改用户l信?br>groups 注:昄用户所属的用户l?br>grpck<br>grpconv 注:通过/etc/group?etc/gshadow 的文件内Ҏ同步或创?etc/gshadow Q如?etc/gshadow 不存在则创徏Q?br>grpunconv 注:通过/etc/group ?etc/gshadow 文g内容来同步或创徏/etc/group Q然后删除gshadow文gQ?/p> <p>3?etc/skel 目录Q?br>/etc/skel目录一般是存放用户启动文g的目录,q个目录是由root权限控制Q当我们d用户Ӟq个目录下的文g自动复制到新d的用L家目录下Q?etc/skel 目录下的文g都是隐藏文gQ也是cM.file格式的;我们可通过修改、添加、删?etc/skel目录下的文gQ来为用h供一个统一、标准的、默认的用户环境Q?/p> <p>[root@localhost beinan]# ls -la /etc/skel/<br>ȝ?92<br>drwxr-xr-x 3 root root 4096 8?11 23:32 .<br>drwxr-xr-x 115 root root 12288 10?14 13:44 ..<br>-rw-r--r-- 1 root root 24 5?11 00:15 .bash_logout<br>-rw-r--r-- 1 root root 191 5?11 00:15 .bash_profile<br>-rw-r--r-- 1 root root 124 5?11 00:15 .bashrc<br>-rw-r--r-- 1 root root 5619 2005-03-08 .canna<br>-rw-r--r-- 1 root root 438 5?18 15:23 .emacs<br>-rw-r--r-- 1 root root 120 5?23 05:18 .gtkrc<br>drwxr-xr-x 3 root root 4096 8?11 23:16 .kde<br>-rw-r--r-- 1 root root 658 2005-01-17 .zshrc<br>/etc/skel 目录下的文gQ一般是我们用useradd 和adduser 命od用户QuserQ时Q系l自动复制到新添加用PuserQ的家目录下Q如果我们通过修改 /etc/passwd 来添加用hQ我们可以自己创建用L家目录,然后?etc/skel 下的文g复制到用L家目录下Q然后要用chown 来改变新用户家目录的属主Q?br>4?etc/login.defs 配置文gQ?br>/etc/login.defs 文g是当创徏用户时的一些规划,比如创徏用户Ӟ是否需要家目录QUID和GID的范_用户的期限等{,q个文g是可以通过root来定义的Q?br>比如Fedora ?/etc/logins.defs 文g内容Q?/p> <p># *REQUIRED*<br># Directory where mailboxes reside, _or_ name of file, relative to the<br># home directory. If you _do_ define both, MAIL_DIR takes precedence.<br># QMAIL_DIR is for Qmail<br>#<br>#QMAIL_DIR Maildir<br>MAIL_DIR /var/spool/mail 注:创徏用户Ӟ要在目录/var/spool/mail中创Z个用户mail文gQ?br>#MAIL_FILE .mail<br># Password aging controls:<br>#<br># PASS_MAX_DAYS Maximum number of days a password may be used.<br># PASS_MIN_DAYS Minimum number of days allowed between password changes.<br># PASS_MIN_LEN Minimum acceptable password length.<br># PASS_WARN_AGE Number of days warning given before a password expires.<br>#<br>PASS_MAX_DAYS 99999 注:用户的密码不q期最多的天数Q?br>PASS_MIN_DAYS 0 注:密码修改之间最的天数Q?br>PASS_MIN_LEN 5 注:密码最长度;<br>PASS_WARN_AGE 7 注:<br>#<br># Min/max values for automatic uid selection in useradd<br>#<br>UID_MIN 500 注:最UID?00 Q也是说添加用hQUID 是从500开始的Q?br>UID_MAX 60000 注:最大UID?0000Q?br>#<br># Min/max values for automatic gid selection in groupadd<br>#<br>GID_MIN 500 注:GID 是从500开始;<br>GID_MAX 60000<br>#<br># If defined, this command is run when removing a user.<br># It should remove any at/cron/print jobs etc. owned by<br># the user to be removed (passed as the first argument).<br>#<br>#USERDEL_CMD /usr/sbin/userdel_local<br>#<br># If useradd should create home directories for users by default<br># On RH systems, we do. This option is ORed with the -m flag on<br># useradd command line.<br>#<br>CREATE_HOME yes 注:是否创用户家目录Q要求创建;</p> <p>5?etc/default/useradd 文gQ?/p> <p>通过useradd d用户时的规则文gQ?/p> <p> # useradd defaults file<br>GROUP=100<br>HOME=/home 注:把用L家目录徏?home中;<br>INACTIVE=-1 注:是否启用帐号q期停权Q?1表示不启用;<br>EXPIRE= 注:帐号l止日期Q不讄表示不启用;<br>SHELL=/bin/bash 注:所用SHELL的类型;<br>SKEL=/etc/skel 注:默认d用户的目录默认文件存放位|;也就是说Q当我们用adduserd用户Ӟ用户家目录下的文Ӟ都是从这个目录中复制q去的;</p> <p>后记Q?/p> <p>关于用户QuserQ和用户l(groupQ管理内容大U就是这么多Q只要把上面所说的内容了解和掌握,用户QuserQ和用户l(groupQ管理就差不多了Q由于用PuserQ和用户l(groupQ是和文件及目录权限联系在一LQ所以文件及目录权限的操作也会独立成文来l大家介l;<br>本文只是让新手弟兄明白用PuserQ和用户l(groupQ一些原理,所以我在写此文的时候,大多是解说内容,我的意思是通过解说和烦引一些命令,让新手弟兄明白一点理论是比较重要的,技术操作无非是命o的用法;</p> <p><br>本文来自CSDN博客Q{载请标明出处Q?a >http://blog.csdn.net/wupan168/archive/2009/09/17/4563265.aspx</a></p> <img src ="http://www.shnenglu.com/prayer/aggbug/97095.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/prayer/" target="_blank">Prayer</a> 2009-09-24 09:40 <a href="http://www.shnenglu.com/prayer/archive/2009/09/24/97095.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.huliduo.cn" target="_blank">ŷƷ˿þþĻ</a>| <a href="http://www.23tlbb.cn" target="_blank">69Ʒþþþ99</a>| <a href="http://www.vxpg.cn" target="_blank">þɫ</a>| <a href="http://www.antsgogo.cn" target="_blank">þۺϹapp</a>| <a href="http://www.deshizhai.cn" target="_blank">Ʒþþþþþþ</a>| <a href="http://www.lvomb.cn" target="_blank">ۺϾþþþۺ</a>| <a href="http://www.vxfawh.cn" target="_blank">Ʒþþþþ</a>| <a href="http://www.cxdsj.net.cn" target="_blank">Ҫþðѹۿ</a>| <a href="http://www.wanrengou.cn" target="_blank">Ʒþþþþ޾Ʒ</a>| <a href="http://www.sonsan.cn" target="_blank">þݺҹҹav˳ </a>| <a href="http://www.dfpt.net.cn" target="_blank">ƷþþþþĻ</a>| <a href="http://www.aaa62.cn" target="_blank">ƷžžþþƷŮͬŷպۺ</a>| <a href="http://www.vkbx.cn" target="_blank">Ʒþþþһ</a>| <a href="http://www.ssui1.cn" target="_blank">þþþþþþþþþĻ </a>| <a href="http://www.fashion28.cn" target="_blank">һþaþþƷvrۺ</a>| <a href="http://www.51index.cn" target="_blank">9þ9þþƷ</a>| <a href="http://www.donglianggc.cn" target="_blank">þþþþþòҰ¸߳</a>| <a href="http://www.hrbsyyy.cn" target="_blank">þúݺɫۺ</a>| <a href="http://www.nsimple.cn" target="_blank">ٸ88þĻ</a>| <a href="http://www.a1dk.cn" target="_blank">ձƷþþþþþþ</a>| <a href="http://www.mzwsjd.cn" target="_blank">99þ99þ</a>| <a href="http://www.qianhongg.cn" target="_blank">þþƷž޾Ʒ</a>| <a href="http://www.jnxfhb.cn" target="_blank">þƵᆱƷ99㽶</a>| <a href="http://www.beibeiyou.cn" target="_blank">Ʒþþþ</a>| <a href="http://www.y3d9.cn" target="_blank">ɫݺȷӰþ</a>| <a href="http://www.51peini.cn" target="_blank">Ưޱ˾þþƷ</a>| <a href="http://www.u33g.cn" target="_blank">þþƷav鶹ͼƬ</a>| <a href="http://www.buy162.cn" target="_blank">þþþþüƷþþ</a>| <a href="http://www.lc351.cn" target="_blank">þòþüӰԺwwwձ</a>| <a href="http://www.xsylsh.cn" target="_blank">AVþþƷ</a>| <a href="http://www.nbbook.com.cn" target="_blank">ҹƷþ</a>| <a href="http://www.jjzrhg.cn" target="_blank">뾫ƷþɪӰ</a>| <a href="http://www.smtch.cn" target="_blank">ҹӰԺþþƷѿһ </a>| <a href="http://www.k5158.cn" target="_blank">ŷ龫Ʒþþþ</a>| <a href="http://www.262833.cn" target="_blank">97þù޾Ʒ</a>| <a href="http://www.hbguangtao.cn" target="_blank">re99þþƷ99</a>| <a href="http://www.woaisheying.cn" target="_blank">˾þô߽</a>| <a href="http://www.847888.com.cn" target="_blank">þþùҺ</a>| <a href="http://www.vcexpress.cn" target="_blank">99þþƷһ</a>| <a href="http://www.vocard.cn" target="_blank">޳ɫWWWþվ</a>| <a href="http://www.xabger.cn" target="_blank">þþƷž޾Ʒ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>