linux
聊天:eva scim-qtimm 一起装上
星际词典:apt-cache search stardict 查看 安装其还有其它的词典.一起装上
flash 插件:flashplngin-nonfree
查看网站类型:HEAD www.sina.com
down网站:httrack -A -s0 host www.sina.com
安装kubuntu桌面:kubuntu-desktop
图形界面编程: GTK(gnome) . QT(kde) . OpenGL
网页制作: bluefish
杀毒软件: clamav
刻录软件:GnomeBaker
FTP工具 - gFTP 2.0.18
下载工具 - d4x 2.5.6
P2P工具 - BitTorrent(系统自带)/aMule 2.1.0
解压工具 - unrar
网络电视 :sopcast
kpdf Acrobat Reader PDF文件
绘网络图流程图软件dia
KDE3.4以上版本的文件管理器输入 smb://IP/share即可 访问Windows共享
Downloader for X http://www.krasu.ru/soft/chuchelo/files/d4x-2.5.0final.tar.gz
WxDfast http://heanet.dl.sourceforge.net/sourceforge/dfast/wxdfast-0.2.1-src.tar.gz
Aria http://aria.rednoah.com/download_e.html
OnlyDownload 0.0.0.2
本软件是一个多线程下载的软件,由于最近一直在linux和windows上不停的进行切换,平时又喜欢让我的机器去浪费一下网络带宽,而 一直没有 找到可以在两个平台上进行不间断下载的软件,于是就有了作它的想法.如果您和我有一样的要求,我想这是个好用的东西,如果想在两个平台下下载,就要把文件 下载到win/linux都识别的文件系统上,比如说fat32,然后在各自的平台上添加文件就好.
下载地址:http://www.onlinedown.net/soft/33675.htm
电驴 amule
本手册的 HTML 和 PDF 版本可以在 Ubuntu 文档网站 在线获得。
您可以在our Lulu store 上购买到本指南的纸质品,只需支付打印和邮寄费用。
安装类型 |
RAM |
硬盘空间 |
服务器 |
64 MB |
500 MB |
关于 APT 用法的更多信息,可阅读全面的Debian APT 用户手册 或输入:
apt-get help
sudo aptitude 当 Aptitude 开始之后,你将看在屏幕顶部的一个菜单条,其下有两个窗,顶窗包含包的类别,如 新软件包 和 未安装软件包 。底窗包含包和包类别的相关信息。 使用 Aptitude 作包管理相对直观,用户界面便于执行常用任务。下面是在 Aptitude 中进行包管理时常见用法如下:
这里 是一个典型的 /etc/apt/sources.list 文件范例。 您可以编辑该文件来使软件库生效或失效。举个例子,要不想无论何时在发生文件包操作都会引起要求插入 Ubuntu CD-ROM ,只需要简单地将在文件顶部的 CD-ROM 相应行注释掉即可:
# no more prompting for CD-ROM please
# deb cdrom:[Ubuntu 6.06 _Dapper Drake_ - Release i386 (20060329.1)]/ dapper main restricted
# We want Multiverse and Universe repositories, please
deb http://archive.ubuntu.com/ubuntu dapper universe multiverse
deb-src http://archive.ubuntu.com/ubuntu dapper universe multiverse
如何添加软件库(Ubuntu Wiki)
# This file describes the network interfaces available on your system如果您只有一个以太网设备 eth0,被配置成从 DHCP 服务器得到设置,并且在引导时自动激活,那么只需要再添加两行:
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0
auto eth0↵第 一行说明 eth0 将会在您启动时自动激活。第二行说明该接口 (“iface”) eth0 将有得到一个 IPv4 地址空间 (如果是一个 IPv6 的设备将须将 “inet” 用 “inet6” 代替) 并且它将自动从 DHCP 中自动获得它的配置。假定您的网络和 DHCP 服务都已经被正确配置,该机的网络将不需要更多的配置。DHCP 服务器将提供默认网关 (通过 route 命令来实现) 、设备的 IP 地址 (通过 ifconfig 命令来实现)以及网络使用的 DNS 服务器 (在 /etc/resolv.conf 文件中实现)。 要 把您的以太网设备配置成静态 IP 地址和自定义配置的话,则要求更多的信息。假设您想指定 IP 地址 192.168.0.2 给设备 eth1,其掩码是 255.255.255.0。您的默认网关的 IP 地址是 192.168.0.1。您可以在 /etc/network/interfaces 中输入类似下面的语句:
iface eth0 inet dhcp
iface eth1 inet static在这个例子中,您将需要在 /etc/resolv.conf 中手工指定您的DNS服务器,看起来如下:
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
search mydomain.comsearch 语句在试图解析网络名时把 mydomain.com 添到主机名查询中。举个例子,如果您的网络域名是 mydomain.com 并且您试图去 ping 主机 “mybox”,DNS 查询将在解析时改为 “mybox.mydomain.com”。nameserver 语句指定用于将主机名解析成 IP 地址的的 DNS 服务器。如果您使用自己的名称服务器,在这里输入它。否则询问您的 Internet 服务供应商要使用的主、辅 DNS 服务器,并把它们如上所示输入到 /etc/resolv.conf 中。 配 置更多的接口是可能的,包括拨号的 PPP 接口、IPv6 网络、VPN 设备等。更多信息和支持选项请参考 man 5 interfaces。记住 ifup/ifdown 脚本使用的/etc/network/interfaces 是比其他一些 Linux 发行版更高级的配置模式。传统的低级工具如ifconfig、route 和 dhclient 也为了 ad hoc 配置对您来说也是可用的。
nameserver 192.168.0.1
nameserver 4.2.2.2
search comsearch 关键字指字为未完成主机名添加的字符串,在这里我们使用com。因此当我们运行:ping ubuntu 时它被理解成 ping ubuntu.com。 nameserver 关键字指定名称服务器的 IP 地址,它将被用来解析 IP 地址或主机名。该文件可以有多个名称服务器记录。名称服务器将按相同顺序进行网络查询。 如果 DNS 服务器名称是通过 DHCP 或 PPPOE 动态取回的(从您 ISP 取回),那么不要在该文件中添加名称服务器记录。它将被自动更新。
nameserver 204.11.126.131
nameserver 64.125.134.133
nameserver 64.125.134.132
nameserver 208.185.179.218
man interfaces 查阅 resolv.conf 系统手册页,用以下命令:
man resolv.conf
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE上述命令假设您的私有地址空间是192.168.0.0/16,您与 Internet 相连的设备是 ppp0。语法分解如下所示:
sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT上述命令将允许通过从您局域网到 Internet 的所有连接,这些连接所有的相关流量也都返回到发起它们的机器。
sudo iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT
有很多工具可以帮助您构建一个完整的防火墙,而不需要 iptables 的专业知识。偏好图形界面的,Firestarter 非常流行也易于使用,fwbuilder 则非常强大而且其界面对于用过诸如 Checkpoint FireWall -1 商业防火墙工具的管理员来说相当熟悉。如果您偏好有着纯文本配置文档的命令行工具,Shorewall 是个非常强大的解决方案,可以帮您为任何网络配置一个高级防火墙。如果您的网络相对简单,或如果您没有网络,那么 ipkungfu 将给您一个无需配置就可以工作的防火墙,也允许您通过编辑简单友好的配置文件来轻松设置更高级的防火墙。另一个感兴趣的工具就是fireflier,被设 计成桌面防火墙应用程序。它由一个服务器 (fireflier-server) 和可选的 GUI 客户端 (GTK 或 QT) 组成,操作就象 Windows 中许多流行的交互式防火墙应用程序一样。
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "一个从本机发起的对 80 端口的请求将会在 dmesg 中生成一条日志,如下所示:
[4304885.870000] NEW_HTTP_CONN: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=58288 DF PROTO=TCP SPT=53981 DPT=80 WINDOW=32767 RES=0x00 SYN URGP=0上 面的日志也会出现在/var/log/messages、/var/log/syslog 和 /var/log/kern.log 中。这一过程可以通过适当编辑 /etc/syslog.conf 或安装配置 ulogd 并用 ULOG 代替 LOG 来进行改变。ulogd 守护程序是一种用户态服务器可以监听来自内核的防火墙日志指令,并且能够将其写到任何您希望的文件中,甚至是 PostgreSQL 或 MySQL 数据库。使用诸如 fwanalog、fwlogwatch 或 lire 日志分析工具将会很轻松地弄懂您的防火墙日志。
sudo apt-get install openssh-client要安装 OpenSSH 服务器应用程序及相关的支持文件,可以在终端提示符后使用以下命令:
sudo apt-get install openssh-server
man sshd_config在 sshd 配置文件中有许多语句来控制那些诸如通信设置和认证模式。下面是一个通过编辑 /etc/ssh/ssh_config 文件来改变配置语句的例子。 在编辑配置文件之前,您应该生成一个原始文件的拷贝并对其写保护,以便您可以参考原始文件并在必要时重用它。 拷贝 /etc/ssh/sshd_config 文件并对其写保护可以通过在终端提示符后运行下列命令:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original以下是您可能更改配置语句的范例:
sudo chmod a-w /etc/ssh/sshd_config.original
Port 2222
PubkeyAuthentication yes 到 /etc/ssh/sshd_config 文件中。如果已经存在,确保该行语句没有被注释。
Banner /etc/issue.net 到 /etc/ssh/sshd_config 文件中即可。
sudo /etc/init.d/ssh restart许 多其他的 sshd 配置语句可以使服务器应用程序按您的要求运行。然而,给您一个忠告,如果您访问服务器的唯一方法就是使用 ssh,而且您在通过 /etc/ssh/sshd_config 文件来配置 sshd 时犯了一个错误,那么在重启该服务之后您可能会发现您被锁在服务器外面了,或者是 sshd 服务在处理一个不正确的配置语句时拒绝启用。因此当在远程服务器上编辑该文件时要格外的小心。
OpenSSH 网站
高级 OpenSSH 维基页
sudo apt-get install vsftpd
anonymous_enable=YES改为
anonymous_enable=NO
#local_enable=YES
#anon_upload_enable=YES
sudo /etc/init.d/vsftpd start请注意在配置文件中缺省的设置主要是出于安全考虑。上面每一个改变都会使系统的安全性更小,所以请只在您需要时才改变他们。
sudo apt-get install nfs-kernel-server
/ubuntu *(ro,sync,no_root_squash)您可以用主机名来代替 *。尽量指定主机名以便使那些不想其访问的系统访问 NFS 挂载的资源。 您可以在终端提示符后运行以下命令来启动 NFS 服务器:
/home *(rw,sync,no_root_squash)
sudo /etc/init.d/nfs-kernel-server start
sudo mount example.hostname.com:/ubuntu /local/ubuntu挂载点 /local/ubuntu 目录必须已经存在。而且在 /local/ubuntu 目录中没有文件或子目录。 另一个挂载其他机器的 NFS 共享的方式就是在 /etc/fstab 文件中添加一行。该行必须指明 NFS 服务器的主机名、服务器输出的目录名以及挂载 NFS 共享的本机目录。 以下是在 /etc/fstab 中的常用语法:
example.hostname.com:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,intr
Linux NFS 常见问答
sudo apt-get install dhcpd您将看到下面的输出,说明接下来做什么:
Please note that if you are installing the DHCP server for the first
time you need to configure. Please stop (/etc/init.d/dhcp
stop) the DHCP server daemon, edit /etc/dhcpd.conf to suit your needs
and particular configuration, and restart the DHCP server daemon
(/etc/init.d/dhcp start).
You also need to edit /etc/default/dhcp to specify the interfaces dhcpd
should listen to. By default it listens to eth0.
NOTE: dhcpd's messages are being sent to syslog. Look there for
diagnostics messages.
Starting DHCP server: dhcpd failed to start - check syslog for diagnostics.
# Sample /etc/dhcpd.conf这 将导致 DHCP 服务器从 192.168.1.10-192.168.1.100 或 192.168.1.150-192.168.1.200 范围中分配客户端一个 IP 地址。如果客户端没有要求一个特定的时间帧的话它将租用 600秒的 IP 地址。否则最大 (允许) 租用时间为 7200 秒。服务器也 "建议" 客户端使用 255.255.255.0 做为它的子网掩码,192.168.1.255 作为它的广播地址,192.168.1.254 作为路由器/网关,同时将 192.168.1.1 和 192.168.1.2 作为它的 DNS 服务器。 如果您需要为您的 Windows 客户机指定一个 WINS 服务器,您需要包含 netbios-name-servers 选项,如:
# (add your comments here)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.org";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}
option netbios-name-servers 192.168.1.1;Dhcpd 配置设置可以从 DHCP 快速指南中得到,该指南可以在 这里 找到。
DHCP 常见问答
sudo apt-get install bind
// This is the primary configuration file for the BIND DNS server named.include 行指定包含 DNS 选项的文件名。在选项文件中的directory 行告诉 DNS 在哪儿寻找文件。所有 BIND 用到的文件都与该目录相关。 名为 /etc/bind/db.root 的文件描述世界上的根名称服务器。这些服务器按时更新并不时被维护。 zone 部分定义一个主服务器,并将其保存在 file 标签所指定的文件中。每个 zone 文件包括 3 个资源记录 (RRs):一个 SOA RR、一个 NS RR 以及一个 PTR RR。SOA 是授权开始的缩写。"@" 符是一个特定的符号表示原点。NS 是名称服务器 RR。PTR 是域名指针。要开始 DNS 服务器,可以在终端提示符后运行以下命令:
//
// Please read /usr/share/doc/bind/README.Debian for information on the
// structure of BIND configuration files in Debian for BIND versions 8.2.1
// and later, *BEFORE* you customize this configuration file.
//
include "/etc/bind/named.conf.options";
// reduce log verbosity on issues outside our control
logging {
category lame-servers { null; };
category cname { null; };
};
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
// add local zone definitions here
include "/etc/bind/named.conf.local";
sudo /etc/init.d/bind start详情您可以参考在参考部分所提及的文档。
DNS 指南
CUPS 管理打印作业和队列,并使用标准的 Internet 打印协议 (IPP) 提供网络打印,该协议提供最大范围的打印机支持,从点阵打印机到激光打印机以及位于两者之间的许多打印机。CUPS 也支持 PostScript Printer Description (PPD) 和网络打印机的自动检测,以及提供基于 Web 的简单配置和管理工具。
sudo apt-get install cupsys cupsys-client
认 证您的用户密码之后,这些包将被下载并正确安装。在安装结束之后,CUPS 服务器将自动开始。为了发现并修复问题,您可以通过错误日志文件 /var/log/cups/error_log 来查看 CUPS 服务器的错误。如果错误日志并没有显示足够的用于找到和解决您所遇问题的信息,通过将配置文件 (下面要讨论) 中将LogLevel 语句从缺省的 "info" 改为 "debug" 甚至是记录每件事的 "debug2",以获得 CUPS 日志的详细信息。
sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
sudo chmod a-w /etc/cups/cupsd.conf.original
ServerAdmin :要配置指定 CUPS 服务器管理员的邮件地位,只需用你喜欢的文本编辑器简单编辑 /etc/cups/cupsd.conf 配置文件,并修改相应的 ServerAdmin 行即可。举个例子,如果您是 CUPS 服务器的管理员,并且您的邮件地址是'[email protected] ',那么您可以象下面这样修改 ServerAdmin 行:
ServerAdmin [email protected]
man cupsd.conf无论您在什么时间修改了 /etc/cups/cupsd.conf 配置文件,您都需要重启 CUPS 服务,在终端提示符后键入以下命令:
sudo /etc/init.d/cupsys restartCUPS 服务器的其它一些配置在文件 /etc/cups/cups.d/ports.conf 中:
Listen 127.0.0.1:631 # existing loopback Listen在 上面的例子里,如果您不想 cupsd 监听环回地址 (127.0.0.1) ,您可能注释或删除了相关语句。但最好保留它以监听局域网 (LAN) 的以太网接口。为了能监听一个特定主机名所绑定的所有的网络接口,您可以为 socrates 主机名创建一个 Listen 条目,如下所示:
Listen /var/run/cups/cups.sock # existing socket Listen
Listen 192.168.10.250:631 # Listen on the LAN interface, Port 631 (IPP)
Listen socrates:631 # Listen on all interfaces for the hostname 'socrates'或者忽略 Listen 语句并使用 Port 来代替,如:
Port 631 # Listen on port 631 on all interfaces
CUPS 网络
sudo apt-get install apache2
服务器也查看包含 mime 文档类型的文件;该文件名通过 TypesConfig 设置,缺省情况下是mime.types。 缺省的 Apache2 配置文件是 /etc/apache2/apache2.conf。您可以编辑该文件以配置 Apache2 服务器。您可以配置端口号、文档根目录、模块、日志文件及虚拟主机等。
Apache2 提供了一个友好虚拟主机的缺省配置。它配置成单个缺省虚拟主机 (使用 VirtualHost 语句) 。如果您有单个站点,可以修改或直接使用它。如果您有多个站点的话,可以将其作为其它虚拟主机的模板。如果对其不加理会,该缺省虚拟主机将会作为您的缺省网站提供服务,或者如果网站用户所输入的 URL 并没有匹配您任何所定义站点的 ServerName 语句时,将看到该虚拟主机内容。要修改缺省虚拟主机,可以编辑文件 /etc/apache2/sites-available/default。如果您希望配置一个新的虚拟主机或站点,在同一目录中将拷贝该文件并将新文 件重命名为您所想要的文件名,如sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mynewsite。编辑新文件并用下面的所描述的语句来配置新的站点:
ServerAdmin 语句指定服务器管理员的邮件地址,缺省值是 webmaster@localhost。应该改成您的邮件地址 (如果您是服务器管理员的话)。如果您的网站有问题,Apache2 将显示包含该邮件地址的错误信息以便报告该问题。在 /etc/apache2/sites-available 目录中您网站的配置文件里可以找到该语句。
The ServerName 语句是可选的,它指明您站点要应答什么 FQDN。缺省虚拟主机没有指定 ServName ,因为它要应答没有匹配其它虚拟主机 ServerName 语句的所有请求。如果您只获得 ubunturocks.com 域名并希望在您的 Ubuntu 服务器上只作它的主机,那么在您虚拟主机配置文件中的 ServerName 语句值应该是 ubunturocks.com。在您先前创建的新虚拟主机文件 (/etc/apache2/sites-available/mynewsite) 中添加该语句。
您也可能要您的网站响应 www.ubunturocks.com 的请求,因为许多用户会假定 www 前缀是适当的。可以使用 ServerAlias 语句来解决这个问题。您也可以在 ServerAlias 中使用通配符。例如,ServerAlias *.ubunturocks.com 将使您的网站响应任何域名以 .ubunturocks.com 结尾的请求。
DocumentRoot 语句指定 Apache 将到哪儿去寻找站点文件,缺省值为 /var/www。没有站点配置在那里,但如果您反注释在 /etc/apache2/apache2.conf 中的 RedirectMatch 语句,请求将被重定向到 /var/www/apache2-default,那里是缺省的 Apache2 站点。在您站点的虚拟主机文件中改变该值,记住在必要时可以创建相应的目录!
这部分内容说明 Apache2 服务器缺省设置的配置。举个例子,如果您添加一个虚拟主机,您为该虚拟主机配置的设置将优先于缺省虚拟主机。如果在该虚拟主机的设置中有个语句没有定义,那么将使用缺省值。
当用户在目录名后使用斜杠 (/) 来请求一个目录索引时,The DirectoryIndex 将通过服务器提供缺省页服务。
例如,当一个用户请求 http://www.example.com/this_directory/ 页时,他或她要么得到 DirectoryIndex 页,如果它存在的话;要么得到一个服务器生成的目录列表,如果它不存在且设置了 Indexes 选项的话;要么就得到一个无权访问页,如果它不存在且没有设置 Indexes 选项的话。服务器尝试找到在 DirectoryIndex 语句中所列文件之一,并返回它所找到的第一个。如果它没有找到任何一个文件且该目录设置了 Indexes 选项,服务器将生成并返回一个 HTML 格式的列表,包括该目录中的子目录和文件。缺省值可以在 /etc/apache2/apache2.conf 文件中找到,是 " index.html index.cgi index.pl index.php index.xhtml"。因此,如果 Apache2 在所请求的目录中找到任何一个匹配这些名字的文件,第一个将被显示。
ErrorDocument 语句允许您为 Apache 指定一个用于特定错误事件的文件。例如,如果用户请求的资源不存在,那么将引发 404 错误,而在 Apache2 的缺省配置中,文件 /usr/share/apache2/error/HTTP_NOT_FOUND.html.var 将被显示。该文件并不在服务器的 DocumentRoot 中,但在 /etc/apache2/apache2.conf 中有个别名语句将到 /error 目录的请求重定向到 /usr/share/apache2/error/ 中。要查看缺省的 ErrorDocument 语句列表,可以使用命令:grep ErrorDocument /etc/apache2/apache2.conf
在缺省状态下,服务器将传输日志记录在文件 /var/log/apache2/access.log 中。您可以在您每个虚拟主机站点的配置文件上用 CustomLog 语句来改变它,或者忽略它以接受在 /etc/apache2/apache2.conf 中指定的缺省设置。您也可以通过 ErrorLog 语句来指定记录错误日志的文件,该文件缺省是 /var/log/apache2/error.log。这些都从传输日志中分离出来以便更好地在您的 Apache2 服务器中发现和解决问题。您也可以指定 LogLevel (缺省值是 "warn") 和 LogFormat (缺省值参见 /etc/apache2/apache2.conf)
...
大多数文件不会作为 CGI 脚本运行的。这是非常危险的。CGI 脚本应该位于您 DocumentRoot 目录以外与之分开的目录中,并且只能该目录才有 ExecCGI 选项设置。缺省状态下,CGI 脚本默认位于 /usr/lib/cgi-bin。
Indexes - 如果 DirectoryIndex (如 index.html) 在请求的目录没存在的话,按一定方式显示目录内容列表。
SymLinksIfOwnerMatch - 仅在软连接与其目的文件或目录拥有相同所有者时才使用。
虚拟主机允许您在同一台机器上相对不同的 IP 地址、主机名或不同端口号运行不同的服务器。例如,您可以运行使用虚拟主机在同一个 Web 服务器上运行网站 http://www.example.com 和 http://www.anotherexample.com。这一选项适用于缺省虚拟主机和基于 IP 的虚拟主机的
为虚拟主机设置 DocumentRoot 语句到包含根文档 (如 index.html) 目录。缺省的 DocumentRoot 是 /var/www。
在 VirtualHost 段中的 ServerAadmin 语句是指用于错误页的页脚中的邮件地址,如果您想在错误页的页脚显示邮件地址的话。
LockFile - 当服务器编译时使用了 USE_FCNTL_SERIALIZED_ACCEPT 或 USE_FLOCK_SERIALIZED_ACCEPT 参数时,使用 LockFile 语句来设置 lockfile 的路径。它必须保存在本地磁盘上,它应该设置成缺省值,除非日志目录被定位在 NFS 共享上。如果是这种情况,缺省值应该被改为本地磁盘的位置并且其目录只对 root 用户可读。
PidFile - PidFile 语句设置服务器记录其进程 ID (pid) 的文件。该文件只对 root 用户可读。在大多数情况下,应该保留其缺省值。 User - 用户语句设置被服务器用于回应请求的用户 ID。该设置决定服务器的权限。一些该用户无法访问的文件也无法被您网站的访问者访问。用户缺省值是 www-data。 除非您的确知道您在做什么,否则请不要将 User 设为 root 用户。用 root 作为 User 的值将会在您的 Web 服务器中产生极大的安全漏洞。 Group 语句同 User 语句相似。Group 设置被服务器用于回应请求的用户组。缺省的组也是 www-data。
Apache 是一个模块化的服务器。这就意味着在核心服务器中只包括最基本的功能。扩展功能可以通过被引导进 Apache 的模块来实现。缺省情况下,基本模块是在编译时被包含进服务器的。如果服务器编译成可以动态引导模块,那么模块可以单独编译,并在任何时候使用 LoadModule 语句来添加。否则,Apache 必须在添加或删除模块时重新编译。Ubuntu 编译 Apache2 时是允许动态引导模块的。配置语句通过将已有模块放置
sudo apt-get install libapache2-mod-auth-mysql一 旦您安装了模块,模块将出现在 /etc/apache2/mods-available 目录中。您可以使用 a2enmod 命令来启用模块。您也可以使用 a2dismod 命令来禁用模块。一旦您启用该模块,该模块将在 /etc/apache2/mods-enabled 目录中出现。
The mod_ssl 模块为 Apache2 服务器添加了一个重要的功能 - 通讯加密的能力。因此,当您的浏览器要用 SSL 加密通讯时,需要在浏览器导航栏中在输入的统一资源定位器 (URL) 的开始处使用 https:// 前缀。 mod_ssl 模块已经包含在 apache2-common 软件包中。如果您安装该软件包,您可以在终端提示符之后执行下列命令启用 mod_ssl 模块:
sudo a2enmod ssl
openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus您现在可以输入您的 passphrase。为了最大程度的安全,它至少应该包含八个字符。当指定 -des3 时最小长度为四个字符。它应该包含数字和/或标点符号,并且不应该是字典中的单词。也请记住您的 passphrase 是大小写敏感的。 再次输入 passphrase 核对。一旦您再次输入正确的话,服务器密钥就生成了并保存在 server.key 文件中。 您也可以不用 passphrase 来运行您的安全 Web 服务器。这样比较方便,因为在您启动您的安全 Web 服务器时您不需要每次都输入 passphrase。但它也是相当不安全的,钥匙的风险也同样意味着服务器的风险。 在任何情况下,您都可以选择不用 passphrase 来运行您的安全 Web 服务器,这可以通过在生成时不带 -des3 参数来实现或者通过在终端提示符后执行以下命令:
.....................++++++
.................++++++
unable to write 'random state'
e is 65537 (0x10001)
Enter pass phrase for server.key:
openssl rsa -in server.key -out server.key.insecure一旦您运行上述命令,不安全的钥匙将被保存在 server.key.insecure 文件中。您可以使用该文件来生成没有 passphrase 的 CSR。 要创建 CSR,可以在终端提示符后运行以下命令:
openssl req -new -key server.key -out server.csr它 将提示您输入 passphrase。如果您输入正确的 passphrase,它将提示您输入公司名、站点名、邮件ID等。一旦您输入了所有内容,您的 CSR 将被创建并被保存在 server.csr 文件中。您可以提交该 CSR 文件给一家 CA 去处理。CA 将使用该 CSR 并颁发证书。但是,您也可以使用该 CSR 生成自己签署的证书。
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt上述命令将提示您输入 passphrase。一旦您输入正确的 passphrase,您的证书将被创建并将保存在 server.crt 文件中。 如果您的安全服务器被用在生产环境中,你也许需要 CA 签署的证书。并不推荐使用自己签署的证书。
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private
您要添加以下四行到 /etc/apache2/sites-available/default 文件或您安全虚拟主机的配置文件。您要将它们放在 VirtualHost 部分。他们应该放在 DocumentRoot 行下面:
SSLEngine onHTTPS 在 443 端口监听。您可以将下面一行添加到 /etc/apache2/ports.conf 文件中:
SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
Listen 443
sudo /etc/init.d/apache2 restart您应该记住并在每次您启动您的安全 web 服务器时输入 passphrase。
您将被提示输入 passphrase。一旦您输入正常的 passphrase,将启动安全 web 服务器。您可以通过在您的浏览器地址栏上输入 https://your_hostname/url/ 来访问安全服务器的页面。
Apache2 文档
Mod SSL 文档
sudo apt-get install squid squid-common
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
sudo chmod a-w /etc/squid/squid.conf.original
http_port 8888
visible_hostname weezie
acl fortytwo_network src 192.168.42.0/24 然后添加下列语句到你 /etc/squid/squid.conf 文件 http_access 部分的 顶部: http_access allow fortytwo_network
acl biz_network src 10.1.42.0/24 acl biz_hours time M T W T F 9:00-17:00 然后添加下列语句到你 /etc/squid/squid.conf 文件 http_access 部分的 顶部: http_access allow biz_network biz_hours
sudo /etc/init.d/squid restart
Squid 网站
sudo apt-get install subversion libapache2-svn
svnadmin create /path/to/repos/project
模式 |
访问方式 |
file:// |
直接访问库 (在本地磁盘) |
http:// |
通过 WebDAV 协议访问带有 Subversion 的 Apache2 web 服务器。 |
https:// |
与 http:// 相同,但有 SSL 加密 |
svn:// |
通过自身协议访问 svnserve 服务 |
svn+ssh:// |
与 svn:// 一样,但使用 SSH 遂道 |
svn co file:///path/to/repos/project或
svn co file://localhost/path/to/repos/project如果您没有指定主机名,则需要三个斜杠 (///) -- 其中两个是协议的 (这里是 file),另一个是路径前的。如果您指定了主机名,那么您必须使用双个斜杠 (//)。 库权限依赖于文件系统的权限。如果用户有读/写权限,他可以从库中检出或者提交到库。
接下来,您必须创建 /etc/subversion/passwd 文件。该文件包含用户认证细节。要添加一个条目,如添加一个用户,您可以在终端提示符后运行下列命令:
DAV svn
SVNPath /path/to/repos
AuthType Basic
AuthName "Your repository name"
AuthUserFile /etc/subversion/passwd
Require valid-user
htpasswd2 /etc/subversion/passwd user_name该命令将提示您输入密码。一旦您输入密码。该用户将被添加。现在您可以运行下列命令来访问库:
svn co http://servername/svn该密码是以纯文本传输的。如果您担心密码被截取,建议您使用 SSL 加密。相关细节,请参考下一章节。
通过带 SSL 加密的 WebDAV 协议 (https:// ) 访问也使用 http:// 类似,只是您必须在您的 Apache2 web 服务器中安装和配置数字证书。 您可以安装由证书签署机构如 Verisign 颁发的数字证书。或者,您也可以安装自己签署的证书。
这一步假设您已经在您的 Apache2 web 服务器中安装和配置了数字证书。现在要访问 Subversion 库,请参考上一章节!除了所用协议之外访问方式完全相同。您必须使用 https:// 来访问 Subversion 库。
# [general]在反注释上面几行之后,您可以在 passwd 文件中维护用户列表。因此编辑同一目录中的文件 passwd 并添加新用户。其语法如下:
# password-db = passwd
username = password更多细节,请参考该文件。 现在要从本机或不同机器通过 svn:// 自身协议来访问 Subversion,您可以使用 svnserve 命令来运行 svnserver。其语法如下:
$ svnserve -d --foreground -r /path/to/repos一旦您运行该命令,将启动 Subversion 并在缺省端口 (3690) 监听。要访问项目库,您必须在终端提示符后运行下列命令:
# -d -- daemon mode
# --foreground -- run in foreground (useful for debugging)
# -r -- root of directory to serve
For more usage details, please refer to:
$ svnserve --help
svn co svn://hostname/project project --username user_name根据服务器的配置,出现密码提示。一旦您认证通过,将从 Subversion 库检出代码。要让本地副本同步项目库,您可以运行 update 子命令。在终端提示符后的命令语法如下所示:
cd project_dir ; svn update关于 Subversion 子命令的更多细节,您可以参考手册。如为了学到关于 co (checkout) 命令的细节,请在终端提示符后运行下列命令:
svn co help
svn co svn+ssh://hostname/var/svn/repos/project使用这种访问方式您必须使用全路径 (/path/to/repos/project) 来访问 Subversion 库。 根据服务器配置,它将提示输入密码。在使用 ssh 登录时您必须输入密码。一旦您被认证通过之后,它将从 Subversion 库中检出代码。
sudo apt-get install cvs在您安装 cvs之后,您将安装 xinetd 来启动和停用 cvs 服务器。在提示符后输入下列命令以安装
xinetd:
sudo apt-get install xinetd
cvs -d /your/new/cvs/repo init一旦库开始建立,您可以配置 xinetd 来启动 CVS 服务器。您可以拷贝以下行到 /etc/xinetd/cvspserver 文件。
service cvspserver如果你改变缺省的库目录 (/var/lib/cvs) 那么您必须要编辑库。 一旦您配置好 xinetd ,您就可以运行以下命令来启动 cvs 服务器了:
{
port = 2401
socket_type = stream
protocol = tcp
user = root
wait = no
type = UNLISTED
server = /usr/bin/cvs
server_args = -f --allow-root /var/lib/cvs pserver
disable = no
}
sudo /etc/init.d/xinetd start您可以执行以下命令来确定 CVS 服务器正在运行:
sudo netstat -tap | grep cvs当您运行该命令时,您可以看到类似下面的行:
tcp 0 0 *:cvspserver *:* LISTEN在这里您可以继续添加用户,添加新的项目以及管理 CVS 服务器 CVS 允许用户添加独立于 OS 安装的用户。也许最容易的方式就是让 CVS 使用 Linux 的用户,虽然它有潜在的安全隐患。详细请参考 CVS 手册。
cd your/project您可以使用 CVSROOT 环境变量来保存 CVS 根目录。一旦您导出 CVSROOT 环境变量,您可以在上面的 cvs 命令中避免使用 -d 选项。 字符串 new_project 是一个 vendor 标签,start 是一个版本标签。它们在此没有任何用处,但由于 CVS 要求要有它们,所以它们必须出现。 当您新添项目时,您所用的 CVS 用户必须对 CVS 库 (/var/lib/cvs) 有写权限。缺省状态下,src 组有对 CVS 库的写权限,因此,您可以添加用户到该组,然后就该用户就可以在 CVS 库中添加和管理项目了。
cvs import -d :pserver:[email protected]:/var/lib/cvs -m "Importing my project to CVS repository" . new_project start
Subversion 主页
Subversion 书 (使用Subversion进行版本控制)
CVS 手册
sudo apt-get install mysql-server mysql-client一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:
sudo netstat -tap | grep mysql当您运行该命令时,您可以看到类似下面的行:
tcp 0 0 localhost.localdomain:mysql *:* LISTEN -如果服务器不能正常运行,您可以通过下列命令启动它:
sudo /etc/init.d/mysql restart
sudo mysqladmin -u root password newrootsqlpassword您可以编辑 /etc/mysql/my.cnf 文件来进行基本设置 -- 日志文件、端口号等。详情请参考 /etc/mysql/my.cnf 文件。
sudo mysqladmin -u root -h localhost password newrootsqlpassword
sudo apt-get install postgresql一旦安装完成,您就要按您的需要配置 PostgreSQL 服务器,尽管缺省配置已经可以使它可以正常运行了。
接下来的讨论假定您希望启用 TCP/IP 连接并对客户认证使用 MD5 模式。PostgreSQL 配置文件被保存在 /etc/postgresql/
local all postgres trust sameuser然后运行下列命令启动 PostgreSQL 服务器:
sudo /etc/init.d/postgresql start一旦 PostgreSQL 服务器成功启动,在终端提示符后运行下面的命令以连接缺省的 PostgreSQL 模板数据库。
psql -U postgres -d template1上面的命令是以用户 postgres 的身份连接 PostgreSQL 的 template1 数据库。一旦您连到 PostgreSQL 服务器,您将会在 SQL 提示符下。您可以在 psql 提示符中运行下列命令来为用户 postgres 配置密码。
template1=# ALTER USER postgres with encrypted password 'your_password';在配置密码后,编辑文件 /etc/postgresql/7.4/main/pg_hba.conf 以使用 MD5 认证: 注释掉最近添加的 trust 行并添加下面行:
local all postgres md5 sameuser无论如何上面配置并不完整。更多的配置参数请参考 PostgreSQL 管理员指南。
sudo apt-get install postfix当安装进程提问时简单地按回车,下面将详细说明相关配置。
sudo dpkg-reconfigure postfix用户界面将显示。在每一屏中,选择下列值:
* Ok把 mail.example.com 作为您的邮件服务器的主机名。
* Internet 站点
* NONE
* mail.example.com
* mail.example.com, localhost.localdomain, localhost
* No
* 127.0.0.0/8
* Yes
* 0
* +
* 全部
postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024您可以从证书颁发机构得到数字证书。或者您可以创建您自己的证书。详情参考 第4.10.3.4节 ― 创建一个自己签署的证书。
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
mv smtpd.key /etc/ssl/private/
mv smtpd.crt /etc/ssl/certs/
mv cakey.pem /etc/ssl/private/
mv cacert.pem /etc/ssl/certs/
postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'
postconf -e 'myhostname = mail.example.com'
sudo /etc/init.d/postfix start现在 postfix 已经被安装、配置及成功运行。Postfix 支持在 RFC2554 中定义的 SMTP AUTH。它基于 SASL。无论如何在您使用 SMTP 之前必须设置 SASL 认证。
apt-get install libsasl2 sasl2-bin要 让其正常工作的话做一些改动是必须的。因为 Postfix 是被 chroot 在 /var/spool/postfix 中运行,SASL 需要被配置在假根目录中运行 (从 /var/run/saslauthd 到 /var/spool/postfix/var/run/saslauthd):
mkdir -p /var/spool/postfix/var/run/saslauthd要 激活 saslauthd,编辑文件 /etc/default/saslauthd,并修改或添加 START 变量。为了将 saslauthd 配置成在假根目录中运行,添加 PWDIR、PIDFILE 和 PARAMS 变量。最终,随您所好配置 MECHANISMS 变量。该文件看起来象这样:
rm -rf /var/run/saslauthd
# This needs to be uncommented before saslauthd will be run如果您喜欢,您可以使用 shadow 代替 pam。这将使用 MD5 哈希密码传输并更为安全。需要认证的用户名和密码将是您正在服务器上使用系统的那些用户。 接下来更新 /var/spool/portfix/var/run/saslauthd 的 dpkg "state"。saslauthd 初始化脚本将使用该设置来创建有着适当权限和所有权的目录:
# automatically
START=yes
PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"
# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"
MECHANISMS="pam"
dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd
sudo /etc/init.d/saslauthd start要查看 SMTP-AUTH 和 TLS 是否正常工作,运行下列命令:
telnet mail.example.com 25在您建立到 postfix 邮件服务器连接之后,输入:
ehlo mail.example.com如果您看到包括下列行时,那么一切工作正常。输入 quit 退出。
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
sudo apt-get install exim4 exim4-base exim4-config
sudo dpkg-reconfigure exim4-config用户界面将显示。该用户界面让您配置许多参数。例如,在 exim4 中配置文件被分成多个文件。如果您希望将它们放在一个文件中,您可以根据该用户界面进行配置。 您在用户界面配置的所有参数被保存在 /etc/exim4/update-exim4.conf.conf 文件。如果您希望重新配置,您可以重新运行配置向导或用您喜欢的编辑器手工编辑该文件。一旦您配置好了,您可以运行下列命令来生成主配置文件:
sudo update-exim4.conf生成主配置文件且被保存在 /var/lib/exim4/config.autogenerated. 在任何时候,你都不要手工编辑主配置文件 /var/lib/exim4/config.autogenerated。它在每次您运行 update-exim4.conf 之后会自动更新。 您可以运行下列命令以启动 exim4 守护程序。
sudo /etc/init.d/exim4 startTODO: 该内容将覆盖 exim4 的 SMTP AUTH 配置。
sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d
protocols = pop3 pop3s imap imaps当 dovecot 启动时协议开始生效。接下来在文件 /etc/dovecot/dovecot.conf 的 pop3 部分添加下列行:
pop3_uidl_format = %08Xu%08Xv然后选择您所用的收件箱。Dovecot 支持 maildir 和 mbox 格式。大多数通常使用 mailbox 格式。它们都有自己的优点,并且在 dovecot 网站 上讨论。 一旦您选择了您的收件箱格式后,就可以编辑文件 /etc/dovecot/dovecot.conf 并修改下列行:
default_mail_env = maildir:~/Maildir # (for maildir)或
default_mail_env = mbox:~/mail:INBOX=/var/spool/mail/%u # (for mbox)如果接收到的邮件类型与您已经配置不同,那么您要配置您的邮件传输代理 (MTA) 用来将该邮件传输到这种类型的收件箱中。 一旦您已经配置好了 dovecot,启动 dovecot 守护程序以测试您的设置:
sudo /etc/init.d/dovecot start如果您启用 imap 或 pop3,您也可以试着用命令 telnet localhost pop3 或 telnet localhost imap2 登录。如果您看到类似下面的东西,那么安装就成功了:
bhuvan@rainbow:~$ telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Dovecot ready.
ssl_cert_file = /etc/ssl/certs/dovecot.pem当您安装 dovecot 时,会通过它自动创建 cert 和 key 文件。请注意这些钥匙没被签名并会在客户端连接时给出 "bad signature" 的错误。要避免这一点,您可以使用商业证书,甚至更好,使用您自己签署的 SSL 证书。
ssl_key_file = /etc/ssl/private/dovecot.pem
ssl_disable = no
disable_plaintext_auth = no
* IMAP - 143
* IMAPS - 993
* POP3 - 110
* POP3S - 995
sudo apt-get install exim4一旦安装好 exim4,配置文件被保存在 /etc/exim4 目录中。缺省情况下,在 ubuntu 中,exim4 配置文件被分成不同的文件。您可以通过配置 /etc/exim4/update-exim4.conf 中的下列变量来改变这一现状:
sudo apt-get install exim4-base
sudo apt-get install exim4-config
sudo apt-get install mailman它复制安装文件到 /var/lib/mailman 目录,将 CGI 脚本安装到 /usr/lib/cgi-bin/mailman目录,创建 list linux 用户,创建 list linux 用户组。mailman 进程将以该用户运行。
Alias /images/mailman/ "/usr/share/images/mailman/"
Alias /pipermail/ "/var/lib/mailman/archives/public/"
Mailman 使用 apache2 来运行它的 CGI 脚本。mailman 的 CGI 脚本被安装在 /usr/lib/cgi-bin/mailman 目录中。因此 mailman 的 url 将是 http://hostname/cgi-bin/mailman/。如果您希望改变这一状况,您可以修改 /etc/apache2/apache2.conf 文件。
sudo apt-get /etc/init.d/exim4 start为了使 mailman 可以和 exim4 一起工作,您需要配置 exim4。正如先前所说的那样,在缺省状态下 exim4 使用不同类型的多个配置文件。详情请参考 Exim 网站。要运行 mailman,我们可以新建一个配置文件到下列配置类型:
# start
# Home dir for your Mailman installation -- aka Mailman's prefix
# directory.
# On Ubuntu this should be "/var/lib/mailman"
# This is normally the same as ~mailman
MM_HOME=/var/lib/mailman
#
# User and group for Mailman, should match your --with-mail-gid
# switch to Mailman's configure script. Value is normally "mailman"
MM_UID=list
MM_GID=list
#
# Domains that your lists are in - colon separated list
# you may wish to add these into local_domains as well
domainlist mm_domains=hostname.com↵
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# These values are derived from the ones above and should not need
# editing unless you have munged your mailman installation
#
# The path of the Mailman mail wrapper script
MM_WRAP=MM_HOME/mail/mailman
#
# The path of the list config file (used as a required file when
# verifying list addresses)
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
# end
mailman_transport:
driver = pipe
command = MM_WRAP /
'${if def:local_part_suffix /
{${sg{$local_part_suffix}{-(//w+)(//+.*)?}{/$1}} } /
{post}}' /
$local_part
current_directory = MM_HOME
home_directory = MM_HOME
user = MM_UID
group = MM_GID
mailman_router:主类和传输类的配置文件的顺序可以随意。但路由类的配置文件的顺序必须相同。该文件必须在 200_exim4-config_primary 文件之前出现。如果两个配置文件包含相同类型的信息。第一个文件优先。详情请参阅参考部分。
driver = accept
require_files = MM_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : /
-confirm+* : -join : -leave : /
-owner : -request : -admin
transport = mailman_transport
sudo /etc/init.d/mailman start一旦 mailman 安装,您必须创建缺省的邮件列表。运行下列命令以创建邮件列表:
sudo /usr/sbin/newlist mailman我们已经把 exim 配置成可以识别所有来自 mailman 的邮件。因此并不需要在 /etc/aliases 中添加任何新的条目。如果您对配置文件做了改动,请确保您在进入下一章节之前重启了这些服务。
Enter the email address of the person running the list: bhuvan at ubuntu.com
Initial mailman password:
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
## mailman mailing list
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Hit enter to notify mailman owner...
#
http://hostname/cgi-bin/mailman/admin缺 省的邮件列表 mailman 将出现在屏幕上。如果您点击邮件列表名,它将询问您的认证密码。如果您输入了正确的密码,您将可以改变该邮件列表的管理设置。您可以使用命令行工具 (/usr/sbin/newlist) 创建一个新的邮件列表,您也可以使用 web 界面来创建新的邮件列表。
http://hostname/cgi-bin/mailman/listinfo缺省邮件列表 mailman 将出现在屏幕上。如果您点击邮件列表名,它将显示订阅表单。您可以输入您的邮件地址、姓名 (可选)及密码来订阅。一个邀请邮件将发送给您。您可以根据该邮件的指示完成订阅。
GNU Mailman - 安装手册
指南 - 一起使用 Exim 4 和 Mailman 2.1
sudo apt-get install samba
man smb.conf在编辑配置文件之前,您应该保留一份原文件的副本,不对其作修改,以便今后必要时可参考和重用这份原始配置。 备份 /etc/samba/smb.conf 文件:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original然后编辑 /etc/samba/smb.conf 文件,进行相应的修改。
realm = DOMAIN_NAME添加到文件中并保存 请确定上面示例中的 DOMAIN_NAME 已经被你的 Windows 域名所代替。 你需要重启 SAMBA 进程以使改变产生作用。重启 SAMBA 进程可以在终端提示符后输入以下命令:
security = ADS
sudo /etc/init.d/samba restart
sudo smbpasswd -a -m COMPUTER_NAME请确定示例中的 COMPUTER_NAME 被那台你希望添加机器账号的计算机实际名字所代替。
read list = @planning将其保存在 /etc/samba/smb.conf中,以使其生效。 另 一个适合的权限就是对特定的共享资源声明 administrative 权限。有着administrative 权限的用户可以读、写或修改任何包含在用户已明确给予 administrative 权限的资源里的任何信息。举个例子,如果你想给用户 melissa 在示例 sourcedocs 共享上的 administrative 权限,你可以编辑/etc/samba/smb.conf 文件,并将下面一行添加到 [sourcedocs] 条目下:
write list = @authors, richard
admin users = melissa将其保存在 /etc/samba/smb.conf中,以使其生效。
smbclient //bill/documents -U然后你将被提示输入相对于 -U 参数之后用户名的密码,当成功验证后,将出现一个提示符,在那里我们可以使用与非图形化 FTP 客户端类似的语法来操作和传输文件。smbclient 工具的详细信息可以输入以下命令来查阅该工具的手册页: 使 用 SMB 协议的远程网络资源在本地挂载也可以使用 mount 命令。例如,要挂载在一个名为 development 的Windows 服务器上的一个名为 project-code 共享文件夹,并使用 dlightman 用户名挂载到你的 Ubuntu 系统的 /mnt/pcode 挂载点上,你可以在提示符后运行以下命令:
mount -t smbfs -o username=dlightman //development/project-code /mnt/pcode然后你将被提示输入用户密码,在成功验证之后,共享资源的内容就可以通过 mount 命令中的最后一个参数所指定的本地挂载点来访问了。要卸载该共享资源,就象其他被挂载的文件系统一样只需简单的使用 umount 命令即可。例如:
umount /mnt/pcode
smbpasswd -a jseinfeld然后 smbpasswd 应用程序将提示你为该用户输入密码:
New SMB password:输入你想为用户设置的密码,smbpasswd 会要求你确认密码:
Retype new SMB password:确认密码之后,smbpasswd 将为用户在 SAMBA 密码文件中添加一个条目。
workgroup = LEVELONE保存文件并重启 SAMBA 守护程序以使改变生效。 其 它重要的全局策略设置包括 server string,定义了 Ubuntu 系统向基于 Windows 网络上其它机器所宣称的 NETBIOS 服务器名称。该名称也使你的 Ubuntu 系统被 Windows 客户端及其它使用 SMB 协议浏览网络的计算机所识别。而且用户还可以通过 /etc/samba/smb.conf 文件中的 log file 指令来指定 SAMBA 服务器日志文件的名称和所在位置。 还 有一些可以管理全局组策略的附加指令包括对所有共享资源全局性能的说明。例如在 /etc/samba/smb.conf 中 [global] 标题下面的指令将影响所有共享资源,除非在某些共享资源标题下有覆盖全局设置的指令。你可以通过 browseable 指令来使网络中所有的客户机都能浏览全部共享。该指令使用一个布尔值,位于 /etc/samba/smb.conf 文件的 [global] 标题中。编辑该文件,并添加下面一行:
browseable = true到 /etc/samba/smb.conf 文件的 [global] 节的下面。这样所有你 Ubuntu 系统中的共享将通过 SAMBA 被授权客户机浏览,除非该共享包含了覆盖全局指令的 browseable = false 指令。 相同方式运作的其他例子还有 public 和 writeable 指令。public 指令接受一个布尔值并决定特定的共享资源对所有客户是否可见,而无论其被授权与否。writeable 指令也采用布尔值以定义特定共享资源是否对部分或所有网络客户可写。
dpkg -L xxx
apt-cache search 正则表达式
dpkg -S filename
apt-file search filename
apt-cache depends xxx
apt-cache rdepends xxx
sudo apt-cdrom add
sudo apt-get update
sudo apt-get dist-upgrade
dpkg -l |grep ^rc|awk '{print $2}' |tr ["n"] [" "]|sudo xargs dpkg -P -
sudo auto-apt run ./configure
ls /var/cache/apt/archives
uname -a
cat /etc/issue
lsmod
lspci
lsusb
sudo ethtool eth0
cat /proc/cpuinfo
lshw
sudo fdisk -l
df -h
df -H
du -hs 目录名
sync
fuser -km /media/usbdisk
free -l
ps -A
kill 进程号(就是ps -A中的第一列的数字)
或者 killall 进程名
kill -9 进程号
或者 killall -9 进程名
top
lsof -p
sudo pppoeconf
sudo pon dsl-provider
sudo /etc/ppp/pppoe_on_boot
sudo poff
sudo plog
arping IP地址
sudo ifconfig eth0 |awk '/inet addr/ {split($2,x,":");print x[2]}'
w3m -no-cookie -dump www.ip138.com|grep -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'
w3m -no-cookie -dump ip.loveroot.com|grep -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'
lsof -i :80
sudo arp -a | awk '{print $4}'
sudo ifconfig eth0 | head -1 | awk '{print $5}'
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -I POSTROUTING -j MASQUERADE
netstat -rn
sudo route -n
sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
sudo ifconfig eth0 down #关闭网卡
sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #然后改地址
sudo ifconfig eth0 up #然后启动网卡
sudo update-rc.d 服务名 defaults 99
sudo update-rc.d 服务名 remove
/etc/init.d/服务名 restart
/etc/init.d/服务名 stop
/etc/init.d/服务名 start
sudo update-alternatives --config java
sudo chfn userid
export http_proxy=http://xx.xx.xx.xx:xxx
sudo vim /etc/motd
sudo apt-get install convmv
convmv -r -f cp936 -t utf8 --notest --nosmart *
iconv -f gbk -t utf8 $i > newfile
whereis filename
find 目录 -name 文件名
file filename
tail -n 6 xxx
grep -l -r xxx .
apropos xxx
man -k xxx
scp -rp /path/filename username@remoteIP:/path #将本地文件拷贝到服务器上
scp -rp username@remoteIP:/path/filename /path #将远程文件从服务器下载到本地
lsof 文件名
tar -zxvf xxx.tar.gz
tar -jxvf xxx.tar.bz2
tar -zcvf xxx.tar.gz aaa bbb
tar -jcvf xxx.tar.bz2 aaa bbb
Ctrl+h
Ctrl+l
* computer:/// - 全部挂载的设备和网络
* network:/// - 浏览可用的网络
* burn:/// - 一个刻录 CDs/DVDs 的数据虚拟目录
* smb:/// - 可用的 windows/samba 网络资源
* x-nautilus-desktop:/// - 桌面项目和图标
* file:/// - 本地文件
* trash:/// - 本地回收站目录
* ftp:// - FTP 文件夹
* ssh:// - SSH 文件夹
在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts
strace -f -F -o outfile
#date -s mm/dd/yy
#date -s HH:MM
hwclock --systohc
hwclock --hctosys
Ctrl + ALT + ←
Ctrl + ALT + →
Ctrl + ALT + Fn(n:1~7)
SHIFT + pageUp/pageDown
setterm -dump n(n:1~7)
/var/lib/mysql
mysqldump 数据库名 > 文件名 #导出数据库
mysqladmin create 数据库名 #建立数据库
mysql 数据库名
sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &
sudo mysqladmin -u user password 'newpassword''
sudo mysqladmin flush-privileges
sudo mysqladmin -uroot -p password '你的新密码'
wget -r -p -np -k http://www.21cn.com
· -r:在本机建立服务器端目录结构;
· -p: 下载显示HTML文件的所有图片;
· -np:只下载目标站点指定目录及其子目录的内容;
· -k: 转换非相对链接为相对链接。
rm ~/.recently-used