Posts Tagged ‘ Linux

常用的 .bashrc 设定

以下是我常用的 .bashrc 设定:

#格式化 ls 的颜色
alias ls='ls -F --color'
#关闭喇叭的 "BEEP" 声
setterm -bfreq
#用上/下键搜寻执行过的指令
bind '"\x1b\x5b\x41":history-search-backward'
bind '"\x1b\x5b\x42":history-search-forward'
#其它
alias h='history 25'
alias vi='vim'
#设定提示字符的颜色
PS1="\e[0;32m[\u@\h \W]$ \e[m"

在 Redhat Linux 9.0 驱动华硕 P4P800 的网络卡

第一次安装 Redhat Linux 9.0 就遇到华硕 P4P800 的网络卡 (3COM 3C940) 无法驱动的问题,就算装了华硕网站下载的驱动程式也不行,反复试了好久,也重装了 Linux 几次,终于解决了问题…但不确定是不是正确的做法。
Read more

如何将服务器上“查无此人”的邮件改由特定的用户接收

这是一个蛮实用的技巧,当外面的用户将信件寄到服务器时,如果写错了收件者,或收信的用户不存在,该信件就会被退回,寄件者会收到一封“查无此人”的信件。

以下这个技巧,就是为了把服务器上“查无此人”的信件,改由特定的“用户”或其它的“电子信箱”接收,修改步骤:

1. 编辑 /etc/mail/sendmail.mc,搜寻有关“LUSER_RELAY”的设定 (如果没有搜寻到,也可以新增下面的设定),改成:

define(`LUSER_RELAY',`local:nodoby')dnl

(表示将“查无此人”的信件由本机上的“nobody”用户接收)

或者改成:

define(`LUSER_RELAY',`smtp:[email protected]')dnl

(表示将“查无此人”的信件转寄给“[email protected]”这个电子信箱)

2. 重新制作 /etc/sendmail.cf,并重新启动 sendmail:

m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

这样就完成了。

[转载]Linux 的搜寻技巧

转载自: Sam Tang @ Blog


在档案内搜寻指定文字,search_key 是搜寻字串,/path/to/filename 是档案名称:

grep search_key /path/to/filename

功能同上,但不分大小写:

grep -i search_key /path/to/filename

搜寻档案:在指定目录中搜寻档案,以下是在 /var/www/ 目录下搜寻 upload.php 的档案:

find /var/www/ -name upload.php

功能同上,但目标不是档案,而是目录:

find /var/www/ -name uploads -type d

还有更多有用的功能,以上只列出较常用的用法。

安装 JSP 环境 - tomcat *

tomcat 可让 Linux 支援 JSP 的环境,系统必须先安装 Sun 的 J2SDK 之后,再安装 tomcat。而 tomcat 已是一个可独立执行的网页服务器,也可以跟 apache 相结合。

Read more

tar 指令的常用语法

常用参数

  • -c 打包档案
  • -x 解开压缩档
  • -t 检视压缩档的内容
  • -z 使用 gzip 压缩
  • -v 显示执行过程
  • -P 使用绝对路径
  • -f 指定压缩档的档案名称。此参数的后面要接档案名称,因此要注意参数的顺序 (通常是把 f 参数写在最后一个,或是与其它参数分开使用)

常用语法

  • 建立压缩档:
    tar -czvf 压缩档名称.tgz 来源档案

    来源档案 压缩后,打包成一个名称为 压缩档名称.tgz 的档案,来源档案 可以是多个档案或目录。
    如果有多个 来源档案 时,以空白字符分隔不同档案名称:

    tar -czvf 档案名称.tgz 来源档案1 来源档案2 ... 来源档案n
  • 检视压缩档的内容:
    tar -tzvf 压缩档名称.tgz
  • 解开压缩档到目前的目录:
    tar -xzvf 压缩档名称.tgz
  • 复制目录:
    tar -cvf - 来源目录 | tar -xvf -

    来源目录 下的所有档案及子目录复制到目前的目录,这样做的好处是可以保留原来的档案属性

ProFTP 的时区设定

我的服务器的时区设为“Asia/Taipei”(/etc/sysconfig/clock),但我用 ftp 登入服务器时,里面所显示的时间,却慢了 8 个小时,今天找了一下原因,原来是 ProFTP 的问题。ProFTP 默认使用 GMT 时间,把这个设定关掉即可。

请编辑“/etc/proftpd.conf”,加入

TimesGMT off

再重新启动 ProFTP 即可。

dig、host 与 nslookup 指令的查询语法

在 Linux 下执行 nslookup 指令都会出现下列讯息:

Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.

告诉你使用 dig 或 host 指令来取代 nslookup,但可惜在 Windows 系统并没有 dig 与 host 指令。

Read more

将 Samba 升级成 3.0.13

为什么要将 Samba 升级成 3.0.13 呢? 唉…还不是为了 Unicode。原本的 2.2.7 版本,我再怎么设定,都无法显示 Unicode 字符。所以本来在 Windows 里显示得好好的 Unicode 档名,放到 Samba 里就破功了! 我想,这个问题应该是很难让人接受的吧?!

而最后结论就是,升级成 3.0.13 就搞定了。

Read more

安装 Samba 服务器 *

Samba 这个套件的功用,可以让你把 Linux 服务器变成 Windows 里的“网络上的芳邻”中的一台电脑,提供档案服务器的服务,即使在没有网域管理(Domain)的局域网路环境中,也可以提供比 Windows 网络上的芳邻更多的权限控管。

本教学只介绍两种常用的配置方式:

  • 开放式的设定
  • 需要身份验证的设定
  • 安装好 Samba 套件之后,就可以开始进行设定了。

    安装 Samba

  • 使用 Apt 安装 Samba 套件:
  • apt-get install samba
  • 启用 Samba 服务:
  • service smb start
    尔后如果有修改 Samba 的设定,只要输入下列指令重新加载即可:
    service smb reload

    开放式的设定

    开放式的意思,就是不用任何身份验证,就可以存取提供 Samba 服务的服务器。以下的范例,是设定局域网路里的任何用户都可存取服务器,并分享 [/tmp] 里的档案:

  • 编辑 /etc/samba/smb.conf,设定如下:
  • [global]
    #欲加入的群组名称
    workgroup = WORKGROUP
    #在“网络上的芳邻”显示的电脑名称,如果不设定,就会以目前的 HostName 去掉网域名称显示。
    netbios name = FileServer
    #服务器的注解
    server string = Samba 档案服务器
    #设定哪些电脑可以存取服务器(以空白隔开)
    hosts allow = 192.168.1.0/255.255.255.0 127.0.0.1
    #显示繁体中文
    client code page = 950
    #身份验证的方式
    security = share
    
    #分享 [/tmp]
    [tmp]
      path = /tmp
      comment = 档案暂存区
      public = yes
      writable = yes
      create mode = 0666
      directory mode = 0777
  • 重新启动 Samba 服务:
  • service smb restart

    需要身份验证的设定

    如果你希望用户要连到服务器时,必须先输入帐号、密码才可以进入,并且可以存取自己的家目录及 [/tmp],请依照下列设定:

  • 编辑 /etc/samba/smb.conf,设定如下:
  • [global]
    #欲加入的群组名称
    workgroup = WORKGROUP
    #在“网络上的芳邻”显示的电脑名称,如果不设定,就会以目前的 HostName 去掉网域名称显示。
    netbios name = FileServer
    #服务器的注解
    server string = Samba 档案服务器
    #设定哪些电脑可以存取服务器(以空白隔开)
    hosts allow = 192.168.1.0/255.255.255.0 127.0.0.1
    #显示繁体中文
    client code page = 950
    #身份验证的方式
    security = user
    #将密码加密传输
    encrypt passwords = yes
    #指定密码档位置
    smb passwd file = /etc/samba/smbpasswd
    
    #让用户可以存取自己的家目录
    [homes]
      comment = 个人资料夹
      public = no
      browseable = no
      valid users = %S
      writable = yes
      create mode = 0600
      directory mode = 0700
    
    #分享 [/tmp]
    [tmp]
      path = /tmp
      comment = 档案暂存区
      public = no
      writable = yes
      create mode = 0666
      directory mode = 0777
  • 建立 Samba 的密码档,并转换用户到这个密码档:
  • cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
    chmod 600 /etc/samba/smbpasswd
    chown root.root /etc/samba/smbpasswd
  • 重新启动 Samba 服务:
  • service smb restart
  • 你必须要再设定用户的密码才可以存取:
  • smbpasswd UserName

    其它有用的参数

    以下介绍其它有用的参数,这些参数必须放在宣告的分享资源的区段下:

  • public = yes|no
  • 设定针对 Guest 是否“显示”该分享项目。
  • browseable = yes|no
  • 设定是否“显示”分享项目。
  • valid users = 用户列表
  • 允许“检视”该分享项目的用户,可输入“用户名称”或“@群组名称”,如有多个项目,请用“,”分隔。
  • invalid users = 用户列表
  • 不允许“检视”该分享项目的用户,可输入“用户名称”或“@群组名称”,如有多个项目,请用“,”分隔。
  • read only = yes|no
  • 是否唯读。
  • writable = yes|no
  • 是否可以写入。
  • write list = 用户列表
  • 允许“写入”该分享项目的用户,可输入“用户名称”或“@群组名称”,如有多个项目,请用“,”分隔。
  • create mode = 权限
  • 建立档案时默认的权限。
  • directory mode = 权限
  • 建立目录时默认的权限。
  • force user = 用户名称
  • 建立档案或目录时默认的用户。
  • force group = 群组名称
  • 建立档案或目录时默认的群组。

    Samba 的变量

  • %S: 取代目前的“资源名称”,所谓的“资源名称”就是在 [ ] 里面的内容。
  • ex: valid users = %S
  • %U: 代表目前登入的使用者的使用者名称。
  • %m: 代表 Client 端的 NetBIOS 名称。
  • %g: 代表登入的使用者的群组名称。
  • %M: 代表 Client 端的 Internet 主机名称,就是 HOSTNAME。
  • %L: 代表 SAMBA 主机的 NetBIOS 名称。
  • %h: 代表目前这部 SAMBA 主机的 HOSTNAME。
  • %H: 代表使用者的家目录。
  • %I: 代表 Client 端的 IP。
  • %T: 代表目前的日期与时间。
  • 新增 Samba 用户

    关于 Samba 上的用户帐号,有一些规则要说明:

  • Samba 上的用户帐号必须是已存在于 Linux 系统的帐号。
  • Linux 系统与 Samba 用户的密码是不同的,它们有各自的密码档。
  • Samba 的密码档位于 /etc/samba/smbpasswd。
  • 因此,如果你要新增 Samba 用户,你就必须先在 Linux 系统增加一个本机用户,新增本机用户之后,再输入下列指令将用户的帐号及密码加入至 Samba 的密码档:

    smbpasswd -a UserName

    以后如果只是要变更该用户的密码,只要输入:

    smbpasswd UserName

    用户自行变更密码

    原本 Samba 有提供一个 Swat 套件,就是 Samba 的网页管理接口,不过,我觉得似乎不太够用(给管理者用还可以)。如果我希望用户可以自行变更 Linux 系统的密码,并同步变更 Samba 的密码,那就要试试 ChangePassword 套件:

  • 从本站下载 ChangePassword 套件至 [/tmp]
  • cd /tmp
    wget http://www.vixual.net/download/source/ChangePassword/changepassword-0.9.tar.gz
    tar -xzvf changepassword-0.9.tar.gz
    cd changepassword-0.9
    ./configure --enable-cgidir=/var/www/cgi-bin --enable-smbpasswd=/etc/samba/smbpasswd --disable-squidpasswd
    请注意,上面(第 5 行)的 “/var/www/cgi-bin” 请改为你的网站的 cgi-bin 路径。
  • 然后继续下列步骤:
  • make
    make install

    这样就安装完成了,以后你就可以到 “http://host.example.com/cgi-bin/changepassword.cgi” 同步变更 Linux 系统及 Samba 的密码。

    网页管理接口

    这个套件(Swat)其实不是那么必要(尤其是有了上面的 ChangePassword 套件之后),但仍然列出安装步骤给大家参考:

  • 安装 Samba-Swat 套件:
  • apt-get install samba-swat
  • 编辑 /etc/xinetd.d/swat,搜寻:
  • disable = yes
    改成:
    disable = no
    继续搜寻:
    only_from = 127.0.0.1
    改成允许连线的位址:
    only_from = 192.168.1.0/24
  • 重新启动 Xinetd:
  • service xinetd restart
  • 从浏览器输入连线位址:
  • http://host.example.com:901/

    参考网页

  • Samba: User and Group Based Controls
  • Samba Documentation
  • 鸟哥的 Linux 私房菜
  • 网管专区
  • Samba 设定
  • return top