Tag: Debian & Ubuntu

Ubuntu DNS 网络设定

一般上在 Linux 下要设定 DNS 服务器, 只要修改 /etc/reslov.conf 档案便可以, 但在 Ubuntu 开启 /etc/reslov.conf 时, 却出现用注解表示的警告: 那便表示不可以直接改 /etc/resolv.conf, 因为 Ubuntu 每次开机都会会将修改的内容覆蓋, 要使修改永久生效, 需要修改档案 /etc/network/interfaces, 先开启 /etc/network/interfaces: $ sudo vi /etc/network/interfaces 加入以下一行设定 …

禁止个别 VirtualHost 或目录使用 PHP mail() 函式

PHP 的 disable_functions 选项可以停用某些特定的 PHP 函式, 主要是基于安全理由, 将一些对系统有威胁的函式停用, 但 disable_functions 必须透过 php.ini 设定, 因为如果可以在 httpd.conf 或 .htaccess 设定, 使用者便很容易将停用的函式开启。 之前遇到一个情况, 要将个别 VirtualHost 的 mail() 函式停用, 但主机内其他 VirtualHost 仍要继续开启 mail()。虽然 …

个别 VirtualHost 或目录停用 PHP

在 Linux 安装 Apache 及 PHP 后, 可以按需要设定个别 VirtualHost 或目录停用 VirtualHost, 例如一个只用作储存上载图片的目录, 不需要执行 PHP 的权限, 以下的设定方法。 VirtualHost 停用 PHP: 首先开启储存 VirtualHost 的档案, RHEL 及 CentOS 是 /etc/httpd/conf/httpd.conf, 而 Debian …

安装 ChangePassword 线上修改系统密码工具

ChangePassword 是一个让用户线上修改系统密码的小工具, 它是由 C 写成的 CGI, 除了修改系统密码外, 还未援线上修改 Samba 及 Squid 的密码。虽然接口看上去很简单, 但对只想给用户修改密码很实用, 以下是安装方法。 1. ChangePassword 只提供源始码, 所以要先安装 GCC: RHEL / CentOS: # yum group install “Development Tools” Debian …

grep 过滤 “#” 及 “;” 的注解行

很多设定档的注解, 都会以 “#” 或 “;” 开头, 例如以 Apache 设定档 httpd.conf 为例, 我的 httpd.conf 有接近四百行: # wc -l httpd.conf 397 httpd.conf 想把注解过滤, 只显示实际的设定项目, 可以用 grep 过滤以下的行: — 空白行, 即没有任何内容 — …

Shell Script 检查系统帐号是否存在

在 Shell Script 想检查系统帐号是否存在, 可以用 grep 搜索 /etc/passwd 的内容达成, 指令是这样: 以上指令会检查 /etc/passwd 档案内, 是否有 “useraccount” 这个帐号存在, 其中 “^” 表示指定前面没有任何字符, 而 “:” 则是在 /etc/passwd 用作分开每个字段的分隔字符。 上面指令执行后, 如果帐号不存在, 不会回传任何内容, 如果帐号存在, 则会回传在 …

设定 vsftpd 显示隐藏档

近日有一台主机的其中一位使用者反应, 用 FileZilla 登入 ftp 想删除一个目录, 却回传以下错误: 550 Remove directory operation failed 查看了一下, 这个目录的 owner 是该名使用者没错, 用 “ls” 看目录是空白的, 然后用 “ls -a” 再看一次, 发现有一个 “.htaccess” 存在, 一般上以一点 “.” 开头的档案被视为隐藏档, …

sysctl 读取 / 修改 Kernel 变量

Linux 下的 sysctl 指令可以用作检视及修改执行中的 Kernel 变量, 例如想其中一个变量的数值, 指令是这样: # sysctl kernel.ostype 回传结果类似这样: kernel.ostype = Linux 在 sysctl 后面加上 -a 参数, 会列出所有变量的数值: # sysctl -a 由于变量很多, 配合 grep 可以更有效找到想要的变量, 例如以下会列出有 …

PHP 5.4 或以上重现 Register Globals

很久以前的 PHP 默认开启 Register Globals 选项, 这样写程式就很方便, 但这个方便也带来安全性问题, 所以后来 PHP 默认会将 Register Globals 关闭, 对于一些要开启 Register Globals 的程式, 在不修改程式码的情况下, 还可以透过修改 php.ini 或 .htaccess 的方法解决。 但在 PHP 5.4 开始, PHP …

Crontab 每月最后一天执行 Shell Script

Crontab 自动执行可以设定在每月的某一天执行, 如果遇到需要在每个月最后一天执行一次的情况, crontab 则没有这个功能, 这时可以用 Shell Script (其他语言的做法也一样) 检查今天是否当月最后一天来解决, 以下是具体做法。 首先建立一个 Wrapper Script, 加入以下内容: wrapper.sh 这个 Wrapper Script 很简单, 第三行会取得明天的日期并放到 $DAY 变量, 然后检查 $DAY 是否 1, 如果明天的日子是 1 …