Archive for the ‘linux笔记’ Category
解决系统重启后samba无法共享的问题
Written by admin on 2010/05/30 – 00:12 -我配置samba主要提供给其他windows主机简单文件共享之用。碰到的问题是每次重新启动后,都需要在xwindows状态下重新进入samba管理界面设置一下才能提供共享。
经过研究,是smbd和nmbd这两个samba的守护进程没有随重启而启动的关系。于是在启动配置文件/etc/rc.d/rc.local中加入:
/sbin/samba/smbd -D
/sbin/samba/nmbd -D
其中smbd负责samba的文件和打印服务、授权与被授权,nmbd负责samba的名字解析、浏览服务,所以nmbd不是必须的。
重新启动后,无需再次设置,即可提供其他windows主机文件共享了!
Centos升级到5.5后PAM引起的无法远程启动xwindows
Written by admin on 2010/05/18 – 23:39 -昨天将Centos升级到5.5后,突然发现无法通过telnet启动xwindows了。
错误提示如下图:
但是如果从本机直接运行startx的话,没有问题。
本机运行startx后,再退出,然后在telnet下再运行startx也没有问题了。
觉得这应该是与权限有关,通过Google搜索得到解决方案:
在/var/run/console/目录下新建一个当前用户的用户名的目录
然后再运行startx即可
适合旧电脑的Mini Linux选择
Written by admin on 2009/05/22 – 15:24 -最近在研究适合低配置电脑的Mini Linux,我手头有一台P2 233+128M+8.4G配置的“破”电脑,想寻找适合其运行的Linux系统,需要Xwin、浏览网页、中文支持、文字处理等最基本操作。
众所周知,现在主流的Linux发行版比如Ubuntu、Federa等对于旧电脑来说也是非常庞大的系统,低配硬件不足以支持其运行Xwin等,所以我把目光转向了Mini Linux,选择对象有Puppy、Deli、slitaz。
经过初步考察发现三者均能很好的适应低配置硬件,但是Deli已经停止开发一段时间了,slitaz对于中文支持不是很好,所以仅剩下Puppy了。
我在以后会发布一些关于使用Puppy的经验与大家分享。
使用更新命令yum时出现故障的解决方法
Written by admin on 2009/05/15 – 08:00 -近日在运行系统更新命令yum update时候出现了如下错误提示:
Component: pirut
Summary: TBe8ae967a sqlitesack.py:94:_read_db_obj:TypeError: unsubscriptable object
Traceback (most recent call last):
File “/usr/sbin/pup”, line 407, in _apply
output = self.applyChanges(self.mainwin)
File “/usr/lib/python2.4/site-packages/pirut/__init__.py”, line 813, in applyChanges
self.checkDeps(mainwin)
File “/usr/lib/python2.4/site-packages/pirut/__init__.py”, line 550, in checkDeps
(result, msgs) = self.buildTransaction()
File “/usr/lib/python2.4/site-packages/yum/__init__.py”, line 647, in buildTransaction
(rescode, restring) = self.resolveDeps()
File “/usr/lib/python2.4/site-packages/yum/depsolve.py”, line 704, in resolveDeps
for po, dep in self._checkFileRequires():
File “/usr/lib/python2.4/site-packages/yum/depsolve.py”, line 939, in _checkFileRequires
if not self.tsInfo.getOldProvides(filename) and not self.tsInfo.getNewProvides(filename):
File “/usr/lib/python2.4/site-packages/yum/transactioninfo.py”, line 414, in getNewProvides
for pkg, hits in self.pkgSack.getProvides(name, flag, version).iteritems():
File “/usr/lib/python2.4/site-packages/yum/packageSack.py”, line 300, in getProvides
return self._computeAggregateDictResult(”getProvides”, name, flags, version)
File “/usr/lib/python2.4/site-packages/yum/packageSack.py”, line 470, in _computeAggregateDictResult
sackResult = apply(method, args)
File “/usr/lib/python2.4/site-packages/yum/sqlitesack.py”, line 861, in getProvides
return self._search(”provides”, name, flags, version)
File “/usr/lib/python2.4/site-packages/yum/sqlitesack.py”, line 43, in newFunc
return func(*args, **kwargs)
File “/usr/lib/python2.4/site-packages/yum/sqlitesack.py”, line 837, in _search
for pkg in self.searchFiles(name, strict=True):
File “/usr/lib/python2.4/site-packages/yum/sqlitesack.py”, line 43, in newFunc
return func(*args, **kwargs)
File “/usr/lib/python2.4/site-packages/yum/sqlitesack.py”, line 586, in searchFiles
self._sql_pkgKey2po(rep, cur, pkgs)
File “/usr/lib/python2.4/site-packages/yum/sqlitesack.py”, line 470, in _sql_pkgKey2po
pkg = self._packageByKey(repo, ob['pkgKey'])
File “/usr/lib/python2.4/site-packages/yum/sqlitesack.py”, line 413, in _packageByKey
po = self.pc(repo, cur.fetchone())
File “/usr/lib/python2.4/site-packages/yum/sqlitesack.py”, line 68, in __init__
self._read_db_obj(db_obj)
File “/usr/lib/python2.4/site-packages/yum/sqlitesack.py”, line 94, in _read_db_obj
setattr(self, item, _share_data(db_obj[item]))
TypeError: unsubscriptable object
Local variables in innermost frame:
item: name
db_obj: None
这个问题是由于yum的原数据损坏导致的,需要先删除原数据和数据库缓存,然后重建,问题即可解决
解决方法,依次运行以下命令:
yum clean metadata
yum clean dbcache
yum makecache
Centos下telnet服务的安装
Written by admin on 2009/04/03 – 08:00 -本人linux环境:CentOS 5.3
在终端中使用 #rpm -q telnet 和 #rpm -q telnet-server 命令查询是否安装了telnet的client和server端。
一般client默认已经安装了,但是server端需要安装,安装命令:#yum install telnet-server
安装完毕后,需要开启服务:#gedit /etc/xinetd.d/telnet
将其中的disable = yes 的 yes 改成 no
开机启动设置: #gedit /etc/rc.d/rc.local
添加: /sbin/service xinetd start
接下来激活telnet并测试是否安装成功,运行命令: #/sbin/service xinetd restart
测试服务,找一台其他机器,输入命令:telnet IP
如果配置正确,系统提示输入远程机器的用户名和密码 (默认情况root用户是不能通过telnet直接登录的)
Login:
Password:
为了安全起见,我们需要改变端口,限制登录ip。
改变端口:
命令:#gedit /etc/services
找到如下内容:
telnet 23/tcp
telnet 23/udp
将端口改成你希望的,比如:
telnet 1000/tcp
telnet 1000/udp
限制登录ip:
命令:#gedit /etc/xinetd.d/telnet
修改成如下格式:
service telnet
{
disable = no #激活 telnet 服务,no
bind = 192.168.1.1 #本机ip
only_from = 192.168.0.0/16 #只允许 192.168.0.0 ~ 192.168.255.255 这个网段进入
only_from = .edu.cn #只有教育网才能进入!
no_access = 210.45.160.{115,116} #这两个ip不可登陆
access_times = 8:00-12:00 20:00-23:59 # 每天只有这两个时间段开放服务
……
}
设置完毕,重新启动telnet服务,命令:#/sbin/service xinetd restart
端口修改的话,命令格式:telnet ip port (注意ip与port之间没有冒号,例如:telnet 192.168.1.1 1000)
linux简单设置samba,提供windows共享
Written by admin on 2008/09/02 – 08:00 -首先,启动samba服务,并且确保linux启动时自动启动。
我使用centos5.2,默认安装了samba,安装目录/etc/samba
其中有2个配置文件:smb.conf和smbusers,主要修改也在这两个文件中。
另外还有记录密码的passdb.tdb,这个文件不需要手动设置。
创建samba用户:
由于我们设置的是以“用户”为验证模式,所以该帐户必须是linux系统帐户中存在的。
先创建一个新用户(linux用户),比如linuxsmb,账户目录/home/linuxsmb。
帐户可操作自己的用户目录,所以共享也设置在这个目录中,否则如果设置在其他用户目录/home/user1或者其他目录时,会有windows共享时无权操作的问题。
随后建立samba用户:smbpasswd -a linuxsmb
设置共享密码后即可。
随后打开smbusers文件,会看到其中增加了一行 linuxsmb = linuxsmb
然后修改smb.conf文件:
在[global]中设置工作组和服务器信息:
workgroup = mygroup
server string = Samba Server Version %v
共享目录设置,一般在文件最后部分:
[smbtest] //共享名称,可以是任意
path = /home/linuxsmb //共享目录,应该是linuxsmb用户有权操作的目录
writeable = yes //写权限
browseable = yes //可见
guest account = linuxsmb //用户访问帐户
重新启动samba,使设置生效。
然后在windows中访问共享,比如//192.168.1.100(samba服务器ip),会要求输入samba帐户的用户名和密码,此处的我们填写linuxsmb帐户用户名和密码。如果能够访问,那么就设置成功了。
——————————
smbpasswd关于samba帐户的操作:
smbpasswd -a USERNAME 增加用户
smbpasswd -x USERNAME 删除用户
smbpasswd -d username 禁用用户
CentOS下删除无依赖关系软件包方法
Written by admin on 2008/08/02 – 08:00 -由于经常安装和卸载软件后,会造成一些已经无依赖关系的软件包。
安装yum-utils:
#yum install yum-utils
然后执行:#package-cleanup –leaves
会出现无效软件包的列表,删除列表中的软件包即可。删除后还会生成新的无依赖关系软件包,所以之后再执行一次,直到没有列表出现!
利用Openvpn快速建立虚拟局域网
Written by admin on 2008/07/12 – 08:00 -服务器端CentOS5.1,客户端windowsXP Sp2,两台电脑分别安放在不同的局域网内。
需要点对点组建成VPN,最简单方法如下:
配置服务器端CenOS:
在安装openvpn之前,先要安装openssl,用户数据加密;安装lzo,用于数据压缩。
下载lzo:
http://www.oberhumer.com/opensource/lzo/download/
(我下载的是最新的lzo-2.03.tar.gz包)
安装lzo:
#tar zxvf lzo-2.03.tar.gz
#cd lzo-2.03
#./configure
#make
#make install
安装openssl,
我通过CentOS自带的添加删除程序,安装了openssl的development包,文件名:openssl-devel-0.9.8b-10.el5.i386
然后下载openvpn,我安装的是最新版的2.1_rc7,文件名:openvpn-2.1_rc7.tar.gz
下载地址:http://openvpn.net/index.php/downloads.html
安装openvpn:
#tar zxvf openvpn-2.1_rc7.tar.gz
#cd openvpn-2.1_rc7.tar.gz
#./configure –with-lzo-headers=/usr/local/include –with-lzo-lib=/usr/local/lib
#make
#make install
安装完成后,创建openvpn存放启动和key文件的目录:
#mkdir /etc/openvpn
#cd /etc/openvpn
#/usr/local/sbin/openvpn –genkey –secret static.key
(有可能生成的static.key文件不在/etc/openvpn下,如果不在就cp过去。这个文件需要同时存在于服务器和客户端上,内容必须一样。)
然后创建server配置文件:
#gedit /etc/openvpn/server.conf
内容:
dev tun (路由模式)
ifconfig 192.168.xx.1 192.168.xx.2 (前个ip表示本服务器的ip,后一个ip我也没搞懂什么意思,待研究,现在只知道是客户端的ip。xx是网段,1-254之间的数字,但与你现在的局域网网段不要重复。)
secret /etc/openvpn/static.key (刚才生成的key文件)
然后保存。
随后启动vpn服务器,运行:
#/usr/local/sbin/openvpn –config /etc/openvpn/server.conf
如果不报错,可以ping一下自己的ip,也就是192.168.xx.1,如果ping通则说明服务器端启动正常。
然后,如果与外网间有路由器,需要映射UDP 1194端口。
如果希望开机启动openvpn服务器端,则在/etc/rc.d/rc.local文件中加入如下行:
/usr/local/sbin/openvpn –daemon –config /etc/openvpn/server.conf
————————-
配置windows客户端:
下载windows版本openvpn:
http://openvpn.net/index.php/downloads.html
文件名:openvpn-2.1_rc7-install.exe
安装时一直点下一步即可,当然你也可自定义一些选项。
安装完成,将服务器端生成的static.key文件复制到windows客户端的openvpn/config目录,然后改名称key.txt。
(打开key.txt时发现linux下生成的key文件在windows的txt下有若干“方块”,表示换行。我将其全部删除,并手动换行。)
然后在同目录下创建client.ovpn文件,文件内容如下:
remote www.domain.com(或者服务器外网ip)
dev tun
ifconfig 192.168.xx.2 192.168.xx.1(正好与服务器端相反)
secret key.txt (key文件)
随后在“开始”“程序”“openvpn”菜单中运行“OpenVpn GUI”,在右下角出现了小图标,鼠标右键点击“Connect”,连接成功的话,可以ping一下服务器的vpn ip。如果ping通则表示安装成功了。
linux下的删除命令rm
Written by admin on 2008/07/01 – 08:00 -rm -R *
删除目录及目录下所有文件,但会有确认是否删除的提示,对于很多目录和文件时候会很不方便。
所以rm -Rf * 就可去除提示,直接删除。但必须注意操作安全。
CentOS安装LumaQQ
Written by admin on 2008/06/23 – 08:00 -下载lumaQQ:http://lumaqq.linuxsir.org/download/2006/lumaqq_2006M2-linux_gtk2_x86_no_jre.tar.gz
下载jre,不推荐在sun的网站下载,速度较慢!文件名:jre-6u6-linux-i586-rpm.bin,可搜索下载。
接下来在终端中用su或者root身份运行下载的jre:
sh jre-6u6-linux-i586-rpm.bin
安装后gedit /etc/environment
添加如下内容:
CLASSPATH=/usr/java/jre1.6.0_06/lib
JAVA_HOME=/usr/java/jre1.6.0_06
然后解压缩LumaQQ到/usr/local目录下,tar zxvf lumaqq_2006M2-linux_gtk2_x86_no_jre.tar.gz -C /usr/local
创建快捷方式
sudo gedit /usr/share/applications/LumaQQ.desktop
在新增的文件内加入下面这几行
[Desktop Entry]
Name=LumaQQ
Comment=QQ Client
Exec=/usr/local/LumaQQ/lumaqq
Icon=/usr/local/LumaQQ/QQ.png
Terminal=false
Type=Application
Categories=Application;Network;


