2010年01月20日

newusers和chpasswd的用法

  一、为什么需要大批量添加用户;

  我们什么时候才需要大批量添加用户呢?有时我们需要让几十个或更多的用户在主机上完成相同或相似的任务,比如我们想同时添加一堆的ftp 用户,这些ftp用户归属同一组,但不允许他们通过终端或远程登录服务器;有时我们可能为了教学,比如我们有50个学生,并且每个学生在服务器上有一个独立的用户名,能登录系统,并能管理自己的帐号或完成一些在自己权限下的作业;

  二、批量用户添加流程;

  批量添中用户流程是通过newusers 导入一个严格按照/etc/passwd 的书写格式来书写内容的文件来完成添加用户,然后通过chpasswd 导入用户密码文件来完成批量更新用户密码的过程;

  1、newusers 成批添加用户的工具;

  其用法很简单,newusers 后面直接跟一个文件;文件格式和/etc/passwd 的格式相同;

  用户名1:x:UID:GID:用户说明:用户的家目录:所用SHELL (更多...)

  • » 阅读全文...
  • 2009年12月11日

    There are no public key available for the following key IDs:解决方法

    Thenynoc的VPS由于停止洛杉矶机房VPS服务并转移已有洛杉矶VPS至纽约机房,而且不能退款,所以分配下新的IP直接重装为Debian~瞎折腾着玩。

    thenynoc:/var/lib/apt/lists# apt-get update
    Get:1 http://security.debian.org stable/updates Release.gpg [835B]
    ……省略N多没用的……
    Hit http://security.debian.org stable/updates/main Packages
    Fetched 41.6kB in 0s (56.5kB/s)
    Reading package lists... Done
    W: There is no public key available for the following key IDs:
    9AA38DCD55BE302B
    W: There is no public key available for the following key IDs:
    9AA38DCD55BE302B
    W: GPG error: http://security.debian.org stable/updates Release: The following signatures

    couldn't be verified because the public key is not available: NO_PUBKEY 9AA38DCD55BE302B
    W: You may want to run apt-get update to correct these problems (更多...)

  • » 阅读全文...
  • 2009年11月6日

    UEX - UltraEdit for Linux 今天正式发布

    UltraEdit 是 Windows 下一款流行的老牌文本/HEX 编辑器。最近,UltraEdit 正被移植到 Linux 平台。该移植名为 UEX,意即 UltraEdit for Linux。UEX 具有原生的 Linux 外观,其界面、配置、热键等与 Windows 版并无二致。

    UltraEdit  for Linux 版,目前已经正式发布  。

    http://www.ultraedit.com/products/uex.html

    正式的售价为:49.95美元

    PS:想买一个尝尝,有点贵啊,况且在Linux下有很多开源的编辑器也很不错。

  • » 阅读全文...
  • 2009年10月29日

    tar排除指定目录

    假设 test目录下有 1 2 3 4 5 这5个目录
    现在要将 3 4 5目录tar打包,1和2目录不要
    命令如下:

    tar -zcvf test.tar.gz --exclude=1 --exclude=2 test

    tar -zcvf test.tar.gz --exclude=test/1 --exclude=test/2 test

    看man tar帮助,--exclude后面跟的好像是正则

    注意: 要打包的test必须在命令最后,不然没有效果.刚才郁闷了半天

  • » 阅读全文...
  • 2009年09月16日

    Linux下dd命令生成一个指定大小的虚拟块设备文件

    虚拟块设备文件更通用的名称是硬盘镜像文件(Hard Disk Image),但不是所有的硬盘镜像文件都是虚拟块设备文件,例如,目前Ghost的GHO格式的镜像文件就不能成为虚拟机中的硬盘。

    Linux的dd命令,可以用于生成虚拟块设备文件。既可以用于创建空镜像文件,也可以用于创建物理硬盘的镜像。

    # dd if=/dev/hda of=/mnt/nebula/hda_dd.image4757130+0 records in4757130+0 records out
    上面这个命令将IDE设备/dev/hda的内容复制到/mnt/nebula/hda_dd.image文件。参数if告诉dd从哪个文件读取数据,参数 of告诉dd读出的数据写入哪个文件中。注意,对于dd来说,输入和输出都是文件,dd做的只是文件拷贝工作,这得益于Unix/Linux下面将设备也抽象为特殊的文件。

    一般来说设备文件有两种,一种是块设备,一种是字符设备。块设备的特点是可以随机读写(Random Access),比如内存、硬盘等。字符设备的特点是顺序读写(Sequential Access),比如鼠标,键盘,麦克风等。

    前面说了如何生成物理硬盘的镜像,如果想生成空镜像文件(本文的主要目的),还需要一个特殊的设备。/dev/zero是Linux提供的一个特殊的字符设备,它的特点是可以永远读该文件,每次读取的结果都是二进制0。下面的命令可以生成一个100M的空镜像文件:

    dd if=/dev/zero of=100M.img bs=1M count=100

    除了前面已经解释的of和if参数,这次又出现了bs和count参数。bs=1M表示每一次读写1M数据,count=100表示读写 100次,这样就指定了生成文件的大小为100M。bs参数还可以进一步细分为ibs和obs两种,为读操作与写操作分别指定不同的Buffer大小。

    这样就生成100M的空镜像文件,问题是,如果要生成1G的虚拟块设备文件,就得占用1G的硬盘空间,而这个镜像文件完全是空的,是不是有一点浪费?好在Linux支持Sparse(稀疏)文件。请看下面的例子

    # dd if=/dev/zero of=1G.img bs=1M seek=1000 count=0

    # ls -l 1G.img
    -rw-r-r- 1 root  root  1048576000 Mar 25 15:32 1G.img
    # du -m 1G.img

    这里用了一个新的命令seek,表示略过1000个Block不写(这里Block按照bs的定义是1M),count=0表示写入0个Block。用ls命令看新生成的文件,大小可以看出是1000M。但是再用du一看,实际占用硬盘大小只有1M。

  • » 阅读全文...
  • 2009年08月26日

    LNMP Debian/Ubuntu下Nginx+MySQL+PHP+phpMyAdmin+Zend一键安装包

    LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat、Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境的Shell程序。

    LNMP一键安装包 0.4版更新记录:

    • 添加LNMP状态管理
    • 添加PureFTPd状态管理
    • PHP增加suhosin
    • 增加VsFTPd、PureFTPd安装及管理
    • 增强Nginx虚拟主机添加功能,添加多域名、伪静态支持、日志是否启用的功能
    • 升级Nginx到0.7.65、MySQL到5.1.44

    LNMP一键安装包 0.4版下载地址:

    下载版:http://soft.vpser.net/lnmp/lnmp0.4.tar.gz
    完整版:http://soft.vpser.net/lnmp/lnmp0.4-full.tar.gz

    LNMP一键安装包 0.4版安装步骤:

    1、下载LNMP一键安装包:
    可以选择使用下载版(推荐国外或者美国VPS使用)或者完整版(推荐国内VPS使用),如果使用下载版执行命令 wget -c http://soft.vpser.net/lnmp/lnmp0.4.tar.gz,如果使用完整版,执行命令 wget -c http://soft.vpser.net/lnmp/lnmp0.4-full.tar.gz,执行上述命令后LNMP一键安装包就会被下载到VPS 上。

    2、解压LNMP一键安装包:
    执行tar zxvf lnmp0.4.tar.gz 或者tar zxvf lnmp0.4-full.tar.gz 就会将LNMP一键安装包解压缩。

    3、CentOS下安装步骤
    执行命令 cd lnmp0.4/
    然后再执行./centos.sh ,输入要绑定的域名,回车,再输入要设置的MySQL root的密码,再次回车确认。程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。

    4、Debian/Ubuntu下安装步骤
    执行命令 cd lnmp0.4/
    然后32位系统执行./debian.sh ,输入要绑定的域名,回车,再次输入VPS/服务器所在位置:asia、america、europe、oceania或africa,回车,再输入要设 置的MySQL root的密码,回车后,再次回车确认。程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。安装大约10分 钟左右需要设置MySQL root用户的密码。

    安装其他组件
    1、安装eAccelerator,执行如下命令:./eaccelerator.sh 就会自动安装并重启web服务。
    2、安装PureFTPd和管理面板,执行如下命令:./pureftpd.sh 就会自动安装PureFTPd,安装完PureFTPd,需要在浏览器执行http://你的域名或IP/ftp/install.php 安装PureFTPd用户管理。

    虚拟主机管理
    1、添加虚拟主机,执行如下命令:./vhost.sh 根据提示输入要绑定的域名,回车,如果需要添加更多的域名,输入y,再输入要另外绑定的域名,多个域名可以用空格隔开。再输入域名绑定的目录(绝对目录, 如/home/wwwroot/lnmp,如果不填默认是/home/wwwroot/绑定的域名),再选择是否添加伪静态规则,默认已经有了 Discuz、Wordpress、Sablog、emlog、dabr,可直接输入以上名称即可,如果需要添加自定义伪静态规则,直接输入一个想要的名 字,程序会自动创建伪静态文件,直接在/usr/local/nginx/conf/你自定义的伪静态名字.conf 里面添加伪静态规则就行。接下来会提示是否需要启用日志功能,一般情况下不需要启动,直接输入n就行,如需启动,输入y,再输入要定义的日志文件名字,回 车就会自动添加虚拟主机。

    LNMP状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
    PureFTPd状态管理 /root/pureftpd {start|stop|restart|kill|status}
    phpinfo : http://$domain/phpinfo.php
    phpMyAdmin : http://$domain/phpmyadmin/
    探针 : http://$domain/p.php"

    LNMP相关目录:
    mysql :   /usr/local/mysql
    php :     /usr/local/php
    nginx :   /usr/local/nginx
    网站目录 :     /home/wwwroot

    注:已经在DiaHostingPhotonVPS(感谢提供测试VPS)、Burst、VPS.net、breezehostRapidxen 及几位lnmp网友提供的VPS上的CentOS 32/64bit、Debian 4/5 32/64bit上测试成功。同时感谢提供测试VPS的商家及网友。

    技术支持
    ————————
    LNMP官网:http://www.lnmp.org/
    作者技术支持邮箱:www@lnmp.org
    技术支持论坛:http://bbs.vpser.net/forum-25-1.html (注册需注明原因,人工审核。)

  • » 阅读全文...
  • 2009年07月22日

    雨林木风的Linux发行版:Ylmf Linux(附下载地址)

    雨林木风以前是制作Windows系统安装光盘的组织,在MS反盗版的作用下,雨林木风已经转战Linux阵营,并在近期推出了基于Fedora 11的、中文友好的Linux发行版:Ylmf Linux!

    关于Ylmf Linux的详细介绍可以看这里:http://www.ylmf.net/read.php?tid=1352508

    下面引用其中的说明:

    Ylmf linux v1.0 版特性说明:
    - 基于 Fedora11 版本 去掉系统多余的软件包,增加驱动与常用应用软件
    - 集成openoffice3.1办公软件(能打开所有ms office 文件)
    - 集成输入法为:ibus 拼音(linux下类似搜狗、谷歌、紫光拼音等的完美替代选择!)
    - 集成默认桌面管理器:KDE(最接近Windows上的使用习惯,满足个人使用便利需求!)
    - 集成全能电影播放机与解码器 (能播放各类电影文件)
    - 集成图形处理软件 GIMP 2.6.16 (包含新的UI)
    - 集成浏览器 Firefox 3.5
    - 集成功能强大的邮件客户端 :evolution
    - 集成轻量级 BT 下载工具: Trasmission Bittorrent
    - 集成腾讯官方 QQ for Linux
    - 桌面已添加常用工具gnome和kde桌面切换脚本
    - 默认完全支持c/c++开发环境
    - 使用最新内核 2.6.29

    两张相关截图:

    下载地址:
    电信地址
     
    电信主下载地址


    电信镜像地址1


    电信镜像地址2


    电信镜像地址3


    电信镜像地址4


    电信镜像地址5

    网通地址

    网通镜像地址1


    网通镜像地址2


    网通镜像地址3

    MD5:
    0A49FE3F1A8B2935DA903152754CA71E 

  • » 阅读全文...
  • 2009年07月9日

    Google(谷歌)操作系统ChromeOS发布(附下载地址) 2009年11月更新

    在Google的官方Blog中写道,Chrome发布已经9个月了,近3000万用户试用了Google的高效率浏览器,但是遗憾的是目前Chrome赖以运行的操作系统都是在Web出现前开发的,为了能让Chrome发挥出所有的能量,Google决定推出Chrome Opreating System!

    在开发初期,Google Chrome OS是一个为上网本设计的轻量级开源操作系统,今年晚些时候Google将公开其源代码,使用Chrome OS的上网本预计将在2010年下半年开始销售。

    在Chrome OS中绝大部分的应用都将在Web中完成,迅速,简洁,安全是Chrome OS的重点特征,Chrome OS的用户不用担心病毒,恶意软件,木马,安全更新等烦人的事情。

    Google Chrome OS将同时提供对Intel x86以及ARM处理器的支持,软件结构极其简单,可以理解为在Linux的内核上运行一个使用新的窗口系统的Chrome浏览器。对于开发人员来说,web就是平台,所有现有的web应用可以完美的在Chrome OS中运行,开发者也可以用不同的开发语言为其开发新的web应用。当然,为Chrome OS开发的程序也可以在Windows/Mac OSX/Linux平台下的各种传统的浏览器中运行,这也为开发者的程序构建了足够大的用户群基础。

    Google Chrome OS是独立于Android外的全新项目,Android已经从开始为手机设计的操作系统走向了机顶盒以及上网本。Google Chrome OS是为在web上花费大量时间的人所设计,在从上网本到高端台式机的任何电脑上都可以很好的运行。
    ————————————————————————————————
    Google Chrome OS是一款基于Linux的开源操作系统,初期主要面向上网本领域,而非桌面和笔记本。即使这样,和Windows XP/7的正面交锋也势不可免,而且Android也应该要退回到智能手机上去了。

    Chrome OS系统和Chrome浏览器一样有三大重点要素,那就是速度、简洁、安全,启动和运行速度都会很快,界面元素将会最少化,并且直接集成Chrome浏览器、配合上网本提供流畅的网络体验,所有程序均基于Web运行。Google的网络取代桌面的战略思想将再一次得到贯彻执行。

    最重要的是,Chrome OS将同时支持x86和ARM两种处理器架构。一度有迹象表明微软可能会在Windows 7里加入对ARM的支持,但希望很快落空。现在有了Google的支持,ARM在上网本领域站稳脚跟应该不成问题,厂商可以籍此开发更丰富的产品线,消费者也会拥有更多选择。

    Google保证会在今年年内提供Chrome OS的源代码,并计划2010年下半年正式发布。Google声称已经再和多家OEM厂商谈判,届时会同步推出预装其操作系统的上网本。

    下载地址:

    推荐硬盘安装或者虚拟机安装:http://www.wuala.com/chromeos/download/Chrome_OS.i686-0.4.220.vmx.tar.gz/ 

    ISO:http://www.wuala.com/chromeos/download/Chrome_OS.i686-0.4.220.iso/

    User password: user
    Root password: root
  • » 阅读全文...
  • 2009年07月6日

    Linux VPS禁止某个IP访问

    今天在查看VPS侦探VPS的SSH登录记录吓了一跳,居然与几个IP连续登录SSH字典猜root密码,我很生气,后果很严重,GFW掉他们,现公布他们的名单:

    62.75.214.93  gera125.server4you.de  德国/德国鬼子

    203.215.252.189  香港特别行政区/无语。。。。

    219.143.200.169  北京市电信 /在党中央还做坏事。。。。

    60.12.193.134  浙江省湖州市网通  /

    c953dc2c.virtua.com.br  201.83.220.44 巴西 /就你最多。。。。

    其中几个还搭建了Nginx的环境,都没做站。

    /etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。

    如果请求访问的主机名或IP不包含在/etc/hosts.allow中,那么tcpd进程就检查/etc/hosts.deny。看请求访问的主机名或IP有没有包含在hosts.deny文件中。如果包含,那么访问就被拒绝;如果既不包含在/etc/hosts.allow中,又不包含在/etc/hosts.deny中,那么此访问也被允许。

    <daemon list>:<client list>[:<option>:<option>:...]

    daemon list     服务进程名列表,如telnet的服务进程名为in.telnetd
    client list     访问控制的客户端列表,可以写域名、主机名或网段,如.trubolinux.com.cn或者192.168.1.
    option          可选选项,这里可以是某些命令,也可以是指定的日志文件

    例子:hosts.allow
    in.telnetd:.vpser.net
    vsftpd:192.168.0.
    sshd:192.168.0.0/255.255.255.0

    /etc/hosts.allow里第一行vpser.net表示,只有vpser.net这个域里的主机允许访问TELNET服务,注意vpser.net前面的那个点(.)。
    /etc/hosts.allow里第二行表示,只有192.168.0这个网段的用户允许访问FTP服务,注意0后面的点(.)。
    /etc/hosts.allow里第三行表示,只有192.168.0这个网段的用户允许访问SSH服务,注意这里不能写为192.168.0.0/24。虽然在CISCO路由器种这两中写法是等同的。

    在/etc/hosts.deny里加上:

    sshd:62.75.214.93
    sshd:203.215.252.189
    sshd:219.143.200.169
    sshd:60.12.193.134
    sshd:201.83.220.44
    sshd:c953dc2c.virtua.com.br
    sshd:gera125.server4you.de

    把他们访问SSH的全部给拒绝了,Linux的GFW也很强。

    本文系:VPS侦探 原创文章,转载请注明出处。

  • » 阅读全文...
  • 2009年07月1日

    正确理解Linux内存占用过高的问题

    最近有个月经问题,老有人问为何开机后,还没有其他服务,mem就被用完了?是不是内存泄露?是否要重启服务?只能说不要看现象,要看本质才能找到问题的根源。
    往往给出这样的结果,怀疑内存用了90%:
    Mem: 4146788k total, 3825536k used, 321252k free, 213488k buffers
    Swap: 2650684k total, 80k used, 2650604k free, 3006404k cached

    这样怀疑很普遍,因为很多人用惯了Windows。Windows下,可以使用任务管理器查看当前进程对于内存的消耗情况。在我看来,Windows物理内存总是留下一定的空间,就算此时物理内存有空闲时,也会让某些程序去使用虚拟内存,目的是在Windows下启动新程序时,直接分配空闲的物理内存,这样子新程序启动速度就较快,而Linux则不然。

    而在Linux下,使用top命令看到内存占用情况:

    Mem: 4146788k total, 3825536k used, 321252k free, 213488k buffers
    Swap: 2650684k total, 80k used, 2650604k free, 3006404k cached

    这里的结果显示使用了3.8G的used,占用率达到90%。看看free的结果你还可以对比一下:
    $ free -m
    total used free shared buffers cached
    Mem: 4049 3784 265 0 208 2939
    -/+ buffers/cache: 636 3413
    Swap: 2588 0 2588

    虽然MEM显示了3.7G左右的used,但是(-/+ buffers/cache)减去buffers和cache的结果可以看到,当前进程实际占用内存是636M,而可用空闲(free)内存为3.4G

    可以这么理解:在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。

    如上面的例子:使用了4G的内存,3.7G被占用,但是buuffer和cached部分作为缓存,可以使用命中率的方式提高使用效率,而且这部分缓存是根据指令随时可以释放的,我们可以认为这部分内存没有实际被使用,也可以认为它是空闲的。

    因此查看目前进程正在实际被使用的内存,是used-(buffers+cache),也可以认为如果swap没有大量使用,mem还是够用的,只有mem被当前进程实际占用完(没有了buffers和cache),才会使用到swap的。

    个人之见,欢迎拍砖。

  • » 阅读全文...