2008年11月25日

Samba使用/etc/samba/smb.conf作为它的配置文件。如果你改变了这个配置文件,这个改变直到你使用service smb restart命令重启Samba守护进程后才会生效。要指定Windows工作组和对它的简短描述,编辑 smb.conf 文件中的以下几行:

    workgroup = WORKGROUPNAME
    server string = BRIEF COMMENT ABOUT SERVER

    把WORKGROUPNAME换成你的机器所属的Windows工作组名。BRIEFCOMMENT ABOUT SERVER 是可选的,它被用作关于Samba系统的Windows注释。

    要在你的Linux系统上创建Samba共享目录,在smb.conf文件中添加以下几行(根据你和你的系统需要修改了该文件之后):

[sharename]
comment = Insert a comment here
path = /home/share/
valid users = tfox carole
public = no
writable = yes
printable = no
create mask = 0765

    上面的例子允许用户 tfox 和 carole 从 Samba 客户中读写 Samba 服务器上的目录 /home/share。

加密口令

    在 Red Hat Linux 9中,加密口令被默认启用,因为它更安全。如果加密口令没有被使用,纯文本口令就会被使用,它能够被别人使用网络分组嗅探器来截取。建议你使用加密口令。

    Microsoft SMB协议最初使用纯文本口令。然而,带有服务包3或更高的 Windows NT 4.0、Windows 98、Windows 2000、Windows ME、以及 Windows XP要求加密的Samba口令。要在RedHatLinux系统和运行以上Windows操作系统的系统间使用Samba,你可以编辑Windows注册器来使用纯文本口令过配置你的Linux系统的Samba来使用加密口令。如果你选择要修改你的注册器,你必须为你的全部Windows机器这么做—这很冒险,有可能导致进一步的冲突。为了更高的安全性,推荐你使用加密口令。

    要在你的RedHatLinux系统上配置Samba使用加密口令,遵循以下步骤:

    1.为 Samba 创建一个单独的口令文件。要根据你的现存 /etc/passwd 文件来创建,在 shell 提示下键入以下命令:

    cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

    如果系统使用 NIS,键入以下命令:

    ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
    mksmbpasswd.sh 脚本和 samba 软件包一起被安装在你的 /usr/bin 目录上。

    2.改变Samba口令文件的权限许可,因此只有根用户才有读写权限:

    chmod 600 /etc/samba/smbpasswd

    3.这个脚本不会把用户口令复制到新文件,Samba用户账号在没有设置口令之前不会被激活。为了更高的安全性,建议你把用户的 Samba 口令设置为不同于用户的 Red Hat Linux 口令的口令。要设置每个 Samba 用户的口令,使用以下命令(把 username 替换为每个用户的用户名):

    smbpasswd username

    4.加密口令必须在Samba配置文件中被启用。在smb.conf文件中,请确定以下行没有被注释掉:
    encrypt passwords = yes
    smb passwd file = /etc/samba/smbpasswd

    5.在 shel提示下键入 service smb restart来确定smb服务被启动。

    6.如果你想让 smb 服务被自动启动,使用 ntsysv、chkconfig、或 服务配置工具来在运行时间启用它。

窍门

    阅读 /usr/share/doc/samba-/docs/htmldocs/ENCRYPTION.html 来进一步了解有关加密口令的信息。(替换你安装了的 Samba 版本号码)。

    当使用了 passwd 命令后,pam_smbpass PAM模块能够被用来同步用户的 Samba口令和他们的系统口令。如果用户启用了passwd命令,他用来登录到RedHatLinux系统的口令以及他要连接 Samba 共享所必须提供的口令就会被改变。

    要启动这个功能,把以下行添加到 /etc/pam.d/system-auth 的启动 pam_cracklib.so 之下:password required /lib/security/pam_smbpass.so nullok use_authtok try_first_pass

启动和停止服务器

    在通过Samba共享目录的服务器上必须运行 smb 服务。

    使用以下命令来查看 Samba 守护进程的状态:
    /sbin/service smb status

    使用以下命令来启动守护进程:
    /sbin/service smb start

    使用以下命令来停止守护进程:
    /sbin/service smb stop

    要在引导时启动 smb 服务,使用以下命令:
    /sbin/chkconfig –level 345 smb on

    你还可以使用chkconfig、ntsysv或服务配置工具来配置要在引导时启动的服务

2008年11月18日

比如想把以下的ip地址表按升序进行排列
192.1.8.1
192.1.8.2
192.1.8.128
192.1.8.168
192.1.8.233
192.1.82.159
192.1.8.221
192.1.8.6
192.1.8.85
可是当使用"排序"选项进行排序时,就变成以下顺序:
192.1.8.1
192.1.8.128
192.1.8.168
192.1.8.2
192.1.8.221
192.1.8.233
192.1.8.6
192.1.8.85
192.1.82.159

除非把192.1.8.1这样形式的地址都变成192.1.8.001才可以正常排列出来,可是这样手动改起来太麻烦啦,有没有简单的方法呢?

方法如下:
首先添加个辅助列,输入下面的公式,再按该列排序即可(其中A1为原始IP列的坐标)。

程序代码 程序代码
=LEFT(A1,FIND("%",SUBSTITUTE(A1,".","%",3))-1)&"."&TEXT(RIGHT(A1,LEN(A1)-FIND("%",SUBSTITUTE(A1,".","%",3))),"000")
引用内容 引用内容
SUBSTITUTE语法:
SUBSTITUTE(text,old_text,new_text,instance_num)
Text   为需要替换其中字符的文本,或对含有文本的单元格的引用。
Old_text   为需要替换的旧文本。
New_text   用于替换 old_text 的文本。
Instance_num   为一数值,用来指定以 new_text 替换第几次出现的 old_text。如果指定了 instance_num,则只有满足要求的 old_text 被替换;否则将用 new_text 替换 Text 中出现的所有 old_text。
示例
SUBSTITUTE("Sales Data", "Sales", "Cost") 等于 "Cost Data"
SUBSTITUTE("Quarter 1, 1991", "1", "2", 1) 等于 "Quarter 2, 1991"
SUBSTITUTE("Quarter 1, 1991", "1", "2", 3) 等于 "Quarter 1, 1992"
如果要在名称为 CellCont2 的单元格中,用方括号来替换所有出现的文本常量 "Separator",请输入:
SUBSTITUTE(CellCont2, Separator, "] [")