CentOS 經常使用命令大全

下面,就給你們介紹這些CentOS經常使用命令。

一:使用CentOS經常使用命令查看cpu

more /proc/cpuinfo | grep "model name"
grep "model name" /proc/cpuinfo
[root@localhost /]# grep "CPU" /proc/cpuinfo
model name : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz
model name : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz
若是以爲須要看的更加舒服
grep "model name" /proc/cpuinfo | cut -f2 -d:

二:使用CentOS經常使用命令查看內存

grep MemTotal /proc/meminfo grep MemTotal /proc/meminfo | cut -f2 -d: free -m |grep "Mem" | awk '{print $2}'

三:使用CentOS經常使用命令查看cpu是32位仍是64位

查看CPU位數(32 or 64)
getconf LONG_BIT

四:使用CentOS經常使用命令查看當前linux的版本

more /etc/redhat-release
cat /etc/redhat-release

五:使用CentOS經常使用命令查看內核版本

uname -r
uname -a

六:使用CentOS經常使用命令查看當前時間

date上面已經介紹如何同步時間了

七:使用CentOS經常使用命令查看硬盤和分區

df -h
fdisk -l
也能夠查看分區
du -sh
能夠看到所有佔用的空間
du /etc -sh
能夠看到這個目錄的大小

八:使用CentOS經常使用命令查看安裝的軟件包

查看系統安裝的時候裝的軟件包
cat -n /root/install.log
more /root/install.log | wc -l
查看如今已經安裝了那些軟件包
rpm -qa
rpm -qa | wc -l
yum list installed | wc -l
不過很奇怪,我經過rpm,和yum這兩種方式查詢的安裝軟件包,數量並不同。沒有找到緣由。
九:使用CentOS經常使用命令查看鍵盤佈局
cat /etc/sysconfig/keyboard
cat /etc/sysconfig/keyboard | grep KEYTABLE | cut -f2 -d=
十:使用CentOS經常使用命令查看selinux狀況
sestatus
sestatus | cut -f2 -d:
cat /etc/sysconfig/selinux
十一:使用CentOS經常使用命令查看ip,mac地址
在ifcfg-eth0 文件裏你能夠看到mac,網關等信息。 ifconfig cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPADDR cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPADDR | cut -f2 -d= ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6- ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}' 查看網關 cat /etc/sysconfig/network 查看dns cat /etc/resolv.conf 十二:使用CentOS經常使用命令查看默認語言
echo $LANG $LANGUAGE
cat /etc/sysconfig/i18n
十二:使用CentOS經常使用命令查看所屬時區和是否使用UTC時間
cat /etc/sysconfig/clock
十三:使用CentOS經常使用命令查看主機名
hostname
cat /etc/sysconfig/network
修改主機名就是修改這個文件,同時最好也把host文件也修改。

十四:使用CentOS經常使用命令查看開機運行時間
uptime
09:44:45 up 67 days, 23:32, ...
看來剛纔確實是網段的問題,個人機器仍是67天前開機的。
#系統資源使用狀況
vmstat 1 -S m procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 233 199 778 0 0 4 25 1 1 3 0 96 0 0 0 0 0 233 199 778 0 0 0 0 1029 856 13 1 86 0 0

十五:使用CentOS經常使用命令查看開機運行時間
uptime
09:44:45 up 67 days, 23:32, ...
看來剛纔確實是網段的問題,個人機器仍是67天前開機的。
#系統資源使用狀況
1. vmstat 1 -S m
2. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
3. r b swpd free buff cache si so bi bo in cs us sy id wa st
4. 0 0 0 233 199 778 0 0 4 25 1 1 3 0 96 0 0
5. 0 0 0 233 199 778 0 0 0 0 1029 856 13 1 86 0 0
6.
對你們推薦很好使用的Linux CentOS系統,像讓你們對Linux CentOS系統有所瞭解,而後對Linux CentOS系統全面講解介紹,但願對你們有用Linux CentOS經常使用的命令.
wget$ wget -r -np -nd http://example.com/packages/ 這條命令能夠下載 http://example.com 網站上 packages 目錄中的全部文件。Linux CentOS其中,-np 的做用是不遍歷父目錄,-nd 表示不在本機從新建立目錄結構。
$ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/ 與上一條命令類似,Linux CentOS但多加了一個 --accept=iso 選項,這指示 wget 僅下載 i386 目錄中全部擴展名爲 iso 的文件。你也能夠指定多個擴展名,Linux CentOS只需用逗號分隔便可。
$ wget -i filename.txt 此命令經常使用於批量下載的情形,Linux CentOS把全部須要下載文件的地址放到 filename.txt 中,而後 wget 就會自動爲你下載全部文件了。 Linux CentOS$ wget -c http://example.com/really-big-file.iso 這裏所指定的 -c 選項的做用爲斷點續傳。
$ wget -m -k (-H) http://www.example.com/ 該命令可用來鏡像一個網站,wget 將對連接進行轉換。Linux CentOS若是網站中的圖像是放在另外的站點,那麼可使用 -H 選項。


VI 編輯命令命令模式
移動光標
[Ctrl] + [f] → 屏幕『向下』移動一頁,至關於 [Page Down]按鍵
[Ctrl] + [b] → 屏幕『向上』移動一頁,至關於 [Page Up] 按鍵
n<space> → n 表示『數字』。按下數字後再按空白鍵,光標會向右移動這一行的 n 個字元
0 → 數字『 0 』:移動到這一行的最前面字元處
$ → 移動到這一行的最後面字元處
G → 移動到這個文件的最後一行
nG → n 爲數字。移動到這個文件的第 n 行(可配合 :set nu)
gg → 移動到這個文件的第一行,至關於 1G
n<Enter> → n 爲數字。光標向下移動 n 行
Linux CentOS查找與替換
n → 『重複前一個查找的動做』
N → 與 n 恰好相反,爲『反向』進行前一個查找動做
:n1,n2s/word1/word2/g → n1 與 n2 均爲數字。在第 n1 與 n2 行之間查找 word1 字符串,並將該字符串替換爲 word2。
如:在 19 行之間查找 eric4ever 並替換爲 ERIC4EVER 則:『:1,9s/eric4ever/ERIC4EVER/g』
:1,$s/word1/word2/g → 從第一行到最後一行查找 word1 字符串,並將該字符串替換爲 word2
:1,$s/word1/word2/gc → 從第一行到最後一行查找 word1 字符串,並將該字符窗替換爲 word2,替換前顯示提示對話框是否確認替換


Linux CentOS刪除、複製與粘貼
x, X → 在一行字當中,x 爲向後刪除一個字元 (至關於 [del] 按鍵),
X 爲向前刪除一個字元(至關於 [backspace] 按鍵)
dd → 刪除光標所在的那一整行
ndd → n 爲數字。刪除光標所在的向下 n 列
yy → 複製光標所在的那一行
nyy → n 爲數字。複製光標所在的向下 n 列
p, P → p 爲將已複製的內容粘貼在光標下一行上,P 則爲粘貼在光標的上一行
u → 還原前一個動做
[Ctrl]+r → 重作上一個動做
. → 小數點,意思是重複前一個動做
Linux CentOS編輯模式i, I → 插入:在目前的光標所在處插入輸入的文字,已存在的文字會向後退; 其中, i 爲『從目前光標所在處插入』, I 爲『在目前所在行的第一個非空白字元處開始插入』a, A → a 爲『從目前光標所在的下一個字元處開始插入』, A 爲『從光標所在行的最後一個字元處開始插入』
o, O → o 爲『在目前光標所在的下一行處插入新的一行』, O 爲『在目前光標所在處的上一行插入新的一行』
r, R → r 爲『取代光標所在的那一個字元』, R 爲『一直取代光標所在的文字,直到按下 ESC 爲止』
Esc → 退出編輯模式,回到通常模式中
Linux CentOS末行指令模式
:w → 將編輯的文件寫入到硬盤上
:q → 退出 vi
:set nu → 顯示行號
:set nonu → 取消顯示行號
Linux CentOSvim 塊操做
Ctrl+v 進入視圖模式
<Esc>退出視圖模式
在Ctrl+v 後:
<Dollar>+ A在塊的每行末尾添加
I 插入
y 塊抽取
p 塊粘貼
c 修改
Linux centos已被普遍應用可是也在不斷的更新,這裏介紹Linux centos安裝設置使用,幫助你們安裝更新Linux centos系統手動配置Linux centos的IP地址
今天在vmware server上裝了個centos-4.7(免費的redhat,是小紅帽的的克隆版本,跟小紅帽的版本是對應的),其中ip安裝時沒設好,通常Linux centos的網卡IP地址是存放在文件中的,這個配置文件在/etc/sysconfig/network-scripts下,
名稱分別爲ifcfg-eth0,ifcfg-eth1....若是你有一塊網卡,就只有ifcfg-eth0一個文件,若是你有兩塊或者兩塊以上的網卡,就會有ifcfg-eth一、ifcfg-eth2等文件的出現。


文件結構:
DEVICE=eth0 //指出設備名稱
ONBOOT=yes//是否啓動應用
BOOTPROTO=static //啓動類型 靜態 (默認dhcp)
IPADDR=192.168.0.77 //IP地址
NETMASK=255.255.255.0//子網掩碼
GATEWAY=192.168.0.1 //網關
步驟:
1、vi /etc/sysconfig/network-scripts/ifcfg-teh0 (也可經過管理工具setup或netconfig命令設置)
2、從新啓動網絡服務service network restart
要想和主機鏈接:還需配置xp主機,在vmware上設置爲 host-only模式,xp裏修改vmnet1的IP地址爲192.168.0.1, 修改Linux centos IP爲192.168.0.77
共享上網設置:xp裏修改第一塊虛擬網卡的網絡屬性爲共享internet(屬性->高級->鉤選「容許其餘網絡用戶經過此計算機的Internet鏈接來鏈接」) 會自動把vmnet1改成192.168.0.1,Linux centos就能上網了
CentOS Vsftpd配置通過長時間的發展,這裏我發表一下我的理解,下面就這就來說術CentOS Vsftpd配置。調整CentOS Vsftpd配置文件:
1.編輯CentOS Vsftpd配置文件前先備份
[root@KcentOS5 ~]cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
2.編輯主CentOS Vsftpd配置文件Vsftpd.conf
[root@KcentOS5 ~]vi /etc/vsftpd/vsftpd.conf
這裏我將原CentOS Vsftpd配置文件的修改徹底記錄,凡是修改的地方我都會保留註釋原來的配置。其中加入我對每條配置項的認識,對於一些比較關鍵的配置項這裏我作了個人觀點,而且本來英語的說明我也不刪除,供參考對比用。
Example config file /etc/vsftpd/vsftpd.conf
The default compiled in settings are fairly paranoid. This sample file
loosens things up a bit, to make the ftp daemon more usable.
Please see vsftpd.conf.5 for all compiled in defaults.
READ THIS: This example file is NOT an exhaustive list of vsftpd options.
Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
capabilities.
Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
anonymous_enable=NO
設定不容許匿名訪問


Uncomment this to allow local users to log in.
local_enable=YES設定本地用戶能夠訪問。注意:主要是爲虛擬宿主用戶,若是該項目設定爲NO那麼全部虛擬用戶將沒法訪問。
Uncomment this to enable any form of FTP write command.
write_enable=YES
設定能夠進行寫操做。
Default umask for local users is 077. You may wish to change this to 022,
if your users expect that (022 is used by most other ftpd's)
local_umask=022
設定上傳後文件的權限掩碼。
Uncomment this to allow the anonymous FTP user to upload files. This only
has an effect if the above global write enable is activated. Also, you will
obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES
anon_upload_enable=NO
禁止匿名用戶上傳。
Uncomment this if you want the anonymous FTP user to be able to create
new directories.
anon_mkdir_write_enable=YES
anon_mkdir_write_enable=NO
禁止匿名用戶創建目錄。
Activate directory messages - messages given to remote users when they
go into a certain directory.
dirmessage_enable=YES
設定開啓目錄標語功能。
Activate logging of uploads/downloads.
xferlog_enable=YES
設定開啓日誌記錄功能。


Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
設定端口20進行數據鏈接。
If you want, you can arrange for uploaded anonymous files to be owned by
a different user. Note! Using "root" for uploaded files is not
recommended!
chown_uploads=YES
chown_uploads=NO
設定禁止上傳文件更改宿主。
chown_username=whoever
You may override where the log file goes if you like. The default is shown
below.
xferlog_file=/var/log/vsftpd.log
設定CentOS Vsftpd配置的服務日誌保存路徑。注意,該文件默認不存在。必需要手動touch出來,而且因爲這裏更改了CentOS Vsftpd配置的服務宿主用戶爲手動創建的Vsftpd。必須注意給與該用戶對日誌的寫入權限,不然服務將啓動失敗。
If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
設定日誌使用標準的記錄格式。
You may change the default value for timing out an idle session.
idle_session_timeout=600
設定空閒鏈接超時時間,這裏使用默認。將具體數值留給每一個具體用戶具體指定,固然若是不指定的話,仍是使用這裏的默認值600,單位秒。

You may change the default value for timing out a data connection.
data_connection_timeout=120
設定單次最大連續傳輸時間,這裏使用默認。將具體數值留給每一個具體用戶具體指定,固然若是不指定的話,仍是使用這裏的默認值120,單位秒。
It is recommended that you define on your system a unique user which the
ftp server can use as a totally isolated and unprivileged user.
nopriv_user=ftpsecure
nopriv_user=vsftpd
設定支撐CentOS Vsftpd服務的宿主用戶爲手動創建的Vsftpd用戶。注意,一旦作出更改宿主用戶後,必須注意一塊兒與該服務相關的讀寫文件的讀寫賦權問題。好比日誌文件就必須給與該用戶寫入權限等。
Enable this and the server will recognise asynchronous ABOR requests. Not
recommended for security (the code is non-trivial). Not enabling it,
however, may confuse older FTP clients.
async_abor_enable=YES
設定支持異步傳輸功能。
By default the server will pretend to allow ASCII mode but in fact ignore
the request. Turn on the below options to have the server actually do ASCII
mangling on files when in ASCII mode.
Beware that on some FTP servers, ASCII support allows a denial of service
attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
predicted this attack and has always been safe, reporting the size of the
raw file.
ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES
ascii_download_enable=YES
設定支持ASCII模式的上傳和下載功能。
You may fully customise the login banner string:
ftpd_banner=This Vsftp server supports virtual users ^_^
設定CentOS Vsftpd配置的登錄標語。
You may specify a file of disallowed anonymous e-mail addresses. Apparently
useful for combatting certain DoS attacks.
deny_email_enable=YES


(default follows)
banned_email_file=/etc/vsftpd/banned_emails
You may specify an explicit list of local users to chroot() to their home
directory. If chroot_local_user is YES, then this list becomes a list of
users to NOT chroot().
chroot_list_enable=YES
chroot_list_enable=NO
禁止用戶登出本身的FTP主目錄。
(default follows)
chroot_list_file=/etc/vsftpd/chroot_list
You may activate the "-R" option to the builtin ls. This is disabled by
default to avoid remote users being able to cause excessive I/O on large
sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=YES
ls_recurse_enable=NO
禁止用戶登錄FTP後使用"ls -R"的命令。該命令會對服務器性能形成巨大開銷。若是該項被容許,那麼擋多用戶同時使用該命令時將會對該服
務器形成威脅。
When "listen" directive is enabled, vsftpd runs in standalone mode and
listens on IPv4 sockets. This directive cannot be used in conjunction
with the listen_ipv6 directive.
listen=YES
設定該CentOS Vsftpd服務工做在StandAlone模式下。順便展開說明一下,所謂StandAlone模式就是該服務擁有本身的守護進程支持,在ps -A命令下咱們將可用看到vsftpd的守護進程名。若是不想工做在StandAlone模式下,則能夠選擇SuperDaemon模式,在該模式下 vsftpd將沒有本身的守護進程,而是由超級守護進程Xinetd全權代理,與此同時,Vsftp服務的許多功能將得不到實現。
This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
sockets, you must run two copies of vsftpd whith two configuration files.
Make sure, that one of the listen options is commented !!
listen_ipv6=YES
pam_service_name=vsftpd



設定PAM服務下CentOS Vsftpd配置驗證文件名。所以,PAM驗證將參考/etc/pam.d/下的vsftpd文件配置。
userlist_enable=YES
設定userlist_file中的用戶將不得使用FTP。
tcp_wrappers=YES
設定支持TCP Wrappers。
KC: The following entries are added for supporting virtual ftp users.
如下這些是關於Vsftpd虛擬用戶支持的重要CentOS Vsftpd配置項目。默認Vsftpd.conf中不包含這些設定項目,須要本身手動添加配置。
guest_enable=YES
設定啓用虛擬用戶功能。
guest_username=overlord
指定虛擬用戶的宿主用戶。
virtual_use_local_privs=YES
設定虛擬用戶的權限符合他們的宿主用戶。
user_config_dir=/etc/vsftpd/vconf
設定虛擬用戶我的Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將存放每一個Vsftp虛擬用戶個性的配置文件,一個須要注意的
地方就是這些配置文件名必須和虛擬用戶名相同。保存退出。
3.創建CentOS Vsftpd配置的日誌文件,並更該屬主爲Vsftpd的服務宿主用戶:
[root@KcentOS5 ~]touch /var/log/vsftpd.log
[root@KcentOS5 ~]chown vsftpd.vsftpd /var/log/vsftpd.log
4.創建虛擬用戶CentOS Vsftpd配置文件存放路徑:
[root@KcentOS5 ~]mkdir /etc/vsftpd/vconf/
CentOS vsftp已被普遍應用可是也在不斷的更新,這裏介紹CentOS vsftp安裝設置使用,幫助你們安裝更新CentOS vsftp系統。


CentOS vsftp安裝:
1.安裝CentOS Vsftpd服務相關部件:
[root@KcentOS5 ~]# yum install vsftpd*
2.確認安裝PAM服務相關部件:
[root@KcentOS5 ~]# yum install pam*
開發包,其實不裝也沒有關係,主要的目的是確認PAM。
3.安裝DB4部件包:
這裏要特別安裝一個db4的包,用來支持文件數據庫。
[root@KcentOS5 ~]# yum install db4*
CentOS vsftp系統賬戶
1.創建CentOS vsftp服務的宿主用戶:
[root@CentOS5 /]#chmod 700 /home/vftpsite
[root@KcentOS5 ~]# useradd vsftpd -s /sbin/nologin
默認的Vsftpd的服務宿主用戶是root,可是這不符合安全性的須要。這裏創建名字爲vsftpd的用戶,用他來做爲支持Vsftpd的服務宿主用戶。因爲該用戶僅用來支持Vsftpd服務用,所以沒有許可他登錄系統的必要,並設定他爲不能登錄系統的用戶。[root@CentOS5 /]#useradd –d /home/vftpsite –s /sbin/nologin vftpuser
2.創建CentOS vsftp虛擬宿主用戶:
[root@KcentOS5 nowhere]# useradd overlord -s /sbin/nologin
本篇主要是介紹Vsftp的虛擬用戶,虛擬用戶並非系統用戶,也就是說這些FTP的用戶在系統中是不存在的。他們的整體權限實際上是集中寄託在一個在系統中的某一個用戶身上的,所謂Vsftpd的虛擬宿主用戶,就是這樣一個支持着全部虛擬用戶的宿主用戶。因爲他支撐了FTP的全部虛擬的用戶,那麼他自己的權限將會影響着這些虛擬的用戶,所以,處於安全性的考慮,也要非分注意對該用戶的權限的控制,該用戶也絕對沒有登錄系統的必要,這裏也設定他爲不能登錄系統的用戶。
(這裏插一句:本來在創建上面兩個用戶的時候,想連用戶主路徑也不打算給的。原本想加上 -d /home/nowhere 的,據man useradd手冊上講
述:「 -d, --home HOME_DIR
The new user will be created using HOME_DIR as the value for the
user鈙 login directory. The default is to append the LOGIN name to
BASE_DIR and use that as the login directory name. The directory
HOME_DIR does not have to exist but will not be created if it is
missing.
使用-d參數指定用戶的主目錄,用戶主目錄並非必須存在的。若是沒有存在指定的目錄的話,那麼它將不會被創建」。結果我嘗試 -d /home/nowhere 指定到一個並不存在的目錄的時候,我KAO!居然給我本身新建了一個= =#)
【原創】FTP服務時互聯網上比較古老的一種應用,至今Interner應用面很是普遍,但令管理員頭痛不已的是其用戶管理,既多且雜,如何解決這一問題呢?使用MySQL與ProFTP或VsFTP軟件結合能夠搭建一個高效、穩定且集中管理的FTP服務器。原本就來介紹一下如何搭建一個方便管理的基於MySQL數據庫的FTP服務器。


1、軟件版本的選擇:
搭建基於數據庫的FTP服務器首先要選擇合適的軟件。下面就是所選擇軟件的詳細信息:
◆Linux版本RHEL5;
◆MySQL版本MySQL-standard-5.1.30-1.rhel5.src.rpm;
◆FTP服務器proftpd-1.3.2.tar.gz和vsftpd-2.2.1.tar.gz;
◆MySQL的PAM驗證程序pam_mysql-0.8RC1.tar.gz;
須要說明的是,RHEL5安裝時自定義安裝,「development tools」項必須選擇,不然編譯調試軟件時須要的軟件包需另行安裝;其次,要確保所安裝Linux系統時沒有安裝MySQL與FTP服務器等軟件,若是有則先卸載;再次,ProFTPD與VsFTPD二者不要在同臺計算機同時使用,這樣會形成意想不到的問題,讀者根據本身的需求和軟件的具體功能選擇其中之一。
創建程序安裝目錄
整個安裝過程以root用戶執行以下命令:
#cd /soft/programe
#mkdir mysq
須要注意目錄名稱的大小寫。
#mkdir proftpd
#mkdir pam_mods
MySQL的安裝目錄爲/soft/program/mysql,ProFTPD的安裝目錄爲/soft/program/proftpd,pam_mysq1.so的安裝目錄爲/soft/program/pam_mods,/storage是一個已經存在的目錄,全部的FTP用戶上傳和下載文件都存放在這裏。
安裝MySQL
◆ 增長一個管理MySQL的用戶和組:
#groupadd mysqlgrp
#useradd -g mysqlgrp mysqladm
#passwd mysqladm
◆ 切換到MySQL-stan-dard-5.1.30-1.rhel5.src.rpm文件所在的目錄,執行如下步驟安裝:
#rpm-ivh MySQL-stan-dard-5.1.30-1.rhel5.src.rpm
此條命令解壓出mysql-5.1.30.tar.gz文件存放在如下的目錄中。
#cd /usr/src/redhat/SOURCE
#tar zxvf mysqt-5.1.30.tar.gz
#cd mysql-5.1.30
#./configure Prefix=/soft/program/mysql --with-extra-charsets=all
其中,「--prefix=/soft/program/mysql」參數是用來指定Mysql的安裝目錄,「--with-extra-charsets=all」是用來支持全部的字符集。
#make
#make install


◆ 初始化數據庫
#cd /soft/program/mysql/bin
#./mysql_install_db
◆ 爲了安全要修改數據庫存放目錄的屬主信息和訪問模式/soft/program/mysqll/var爲數據庫存放的缺省目錄
#cd /soft/program/mysql
#chown –R mysqladm:mysqlgrp var
#chmod -R go-wrx var
◆ 修改配置文件
#cd /soft/program/mysql/share/mysql
#cp my-small.cnf /etc/my.cnf
#cd /etc
在my.cnf文件中,增長以下內容:
[mysql]
user=mysqladm #表示用mysqladm 用戶啓動MySQL#
default-character-set=utf8 #表示使用UTF-8字符集,此種字符集通用性較好,也很好的支持中文,固然也能夠直接使用GBK。
[clent]
Default-character-set=utf8
◆ 啓動
啓動方式有兩種,一種是手工啓動,一種是自動啓動,其中手工啓動的操做以下:
#cd /soft/program/mysql/bin
#./mysqld_safe&
自動啓動則須要在/etc/rc.d/rc/local中加入如下的內容,開機自動啓動MySQL數據庫:
If [-x /soft/program/mysql/bin/mysqld_safe]; then
install_path_name /bin/mysqld_safe&
fi


◆ 修改管理員密碼
使用以下命令修改數據庫密碼:
#cd /soft/program/mysql/bin
#./mysqladmin -h localhost -u root password '123456'
上述命令的意思是本機上(-h host)使用的管理數據庫的缺省管理帳號root。須要注意的事,此root並不是Linux系統中的root用戶,密碼設置爲123456.

安裝ProFTPD
◆切換到proftpd-1.3.2.tar.gz文件所在的目錄,執行如下步驟安裝:
#tar zxvf proftpd-1.3.2.tar.gz
#cd proftpd-1.3.2
#./configure--prefix=/soft/program/proftpd --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql
此參數將支持MySQL和Quota模塊添加進來。
--with-includes=/soft/program/mysql/include/mysql
上述參數指定MySQL中include的目錄路徑。
--with-libraries=/soft/program/mysql/lib/mysql
此參數指定MySQL中lib的目錄路徑。
#make
#make install
使用以下命令創建一個用於管理ProFTPD的Linux系統帳號和組。
#groupadd -g 2009 ftpgroup
#useradd -u 2009 –s /bin/false -d /storage -g ftpgroup ftpuser
#chown -R ftpuser.ftpgroup /storage
#chmod –R go-wrx- /storage
#chmod –R u+wrx /storage
簡單修改ProFTPD配置文件,使之正常運行:
#cd /soft/program/proftpd/etc
用編輯器打開proftpd.conf,修改一下的內容:
#Set the user and group under which the server will run.
User ftpuser
Group ftpgroup


◆啓動ProFTPD
啓動Proftpd一樣有兩種方法,即手工啓動和自動啓動,其中手工啓動操做以下:
#cd /soft/program/proftpd/sbin/
#./proftpd
此時一個基本的FTP服務器已經搭建成,能夠進行測試了。須要注意的是,啓動時若是出現具備如下信息的錯誤:
error while loading shared libraries:libmysqlclient.so.15:cannot open shared object file:No such file or directory
一般的解決辦法以下:
#cd /etc
用文本工具打開ld.so.conf,添加如下的內容/soft/program/mysql/lib/mysql
#ldconflg
更新ld.so cache file。
要讓ProFTPD自動啓動在/etc/rc.d/rc.local中加入如下的內容,開機便可自啓動ProFTPD:
/soft/program/proftpd/sbin/proftpd


2、MySQL與ProFTPD組合
在MySQL 中創建一個名爲ftp的數據庫,在該數據庫中創建如下的四個表:
◆登陸FTP服務器的用戶表ftpusers,字段信息以下所示,這些字段是必需的,其餘字段根據本身的須要添加,參考字段以下:
'userid' text NOT NULL #用戶登陸帳號#
'passwd' text NOT NULL #用戶登陸密碼#
'uid' int(11)NOT NULL default '2009', #與Linux系統帳號ftpuser的UID號一致#
'gid' int(11)NOT NULL default '2009', #與Linux系統組#
ftpgroup 的GID號一致'homedir' text,用戶文件上傳下載目錄,如帳號名爲abc,此處就填寫/storage/abc,'shell' text default ,'/sbin/nologin'這個是用來指定用戶是否能登陸Linux系統,這裏默認的是不能登陸。
◆FTP用戶歸屬表ftpgroups,字段信息以下所示,關於創建該組的目的將在quotalimits表中說明
'groupname' text NOT NULL #組名#
'gid' smallint(6) NOT NULL default'0',#組的id號#
'memembers' text NOT NULL #成員#
◆用於設置磁盤限額相關信息的表quotalimits和quotatallies,這兩個表的字段請不要改動,它是與ProFTPD的配置文件緊密聯繫,quotalimits表的字段信息以下:
'name' varchar(30)default NULL,
'quota_type' enum('user','group','class','all')NOT NULL default 'user',
'per_session' enum('false','true')NOT NULL default'false',
'limit_type' enum('soft','hard')NOT NULL default'soft',
'bytes_in_avail'float NOT NULL default'0',
'bytes_out_avail'float NOT NULL default'0',
'bytes_xfer_avail'float NOT NULL default'0',
'files_in_avail'int(10) unsigned NOT NULL default'0',
'files_out_avail'int(10)unsigned NOT NULL default'0',
'files_xfer_avail'int(10)unsigned NOT NULL default'0'
須要注意的是,name應該這樣理解,既能表示單個用戶,也能表示用戶組名。若是在quota_type(限額類型)中使用group來認證的話,那就得在這裏設置組名,這樣整組都具備統一的磁盤限額的特性,固然要在ftpgroups表中插入組記錄,而且在member字段中得把用戶一個一個的列進去。默認值能夠爲空NULL。若是爲空,則針對所在有quota_type中設置的類型,好比在quota_type中設置爲user,就是針對全部ftpusers中的用戶起做用,若是是group名,也是對ftpgroups全部組做用。quota_type磁盤限額類型,能夠設置爲用戶,也能夠設置爲用戶組group。若是name寫的是用戶組,這裏就得設置爲group來認定。默認爲user認證。per_session默認爲false.limit_type默認爲soft。Bytes_in_avail用戶佔用空間大小,也就是FTP用戶空間容量,單位是byte,默認爲0,0是不受限制,如下同理。bytes_out_avail全部下載文件的總和,默認爲0。
bytes_xfer_avail一個用戶上傳下載流量總和,默認爲0。files_in_avail限制上傳文件總和,默認爲0。files_out_avail限制下載文件個數總計,默認爲0。files_xfer_avail容許下載和上傳的文件總和,默認爲0。Quotatallies表的字段信息,各字段信息參照quotalimits。配置參考參數以下:


name VARCHAR(30)NOT NULL,
quota_type ENUM("user","group","class","all")NOT NULL,
bytes_in_used FLOAT NOT NULL,
bytes_out_used FLOAT NOT NULL,
bytes_xfer_used FLOAT NOT NULL,
files_in_used INT UNSIGNED NOT NULL,
files_out_used INT UNSIGNED NOT NULL,
files_xfer_used INT UNSIGNED NOT NULL
此外,在proftpd.conf文件中增長如下的內容:
◆數據庫鏈接的信息,ftp是數據庫名,localhost是主機名,root是鏈接數據庫的用戶名,123456是密碼。
root 123456
◆數據庫認證的類型,Plaintext表示明文認證方式
SQLAuthTYpes Backend Plaintext
◆指定用來作用戶認證的表的有關信息
SALUserlnfo ftpusers userid passwd uid gid homedir shell
SQLGrouplnfo ftpgroups groupname gid members
◆校驗數據表
SQLAuthenticate users groups usersetfast groupsetfast
◆若是home目錄不存在,則系統會根據ftpusers表中的home字段。
新建一個目錄:
SQLHomedirOnDemand on
◆打開磁盤限額引擎
QuotaEngine on
◆設置磁盤限額
QuotaDirectoryTally on




◆設置磁盤容量顯示時的單位
QuotaDisplayUnits Mb
◆設置磁盤限額日誌文件
QuotaLog」/usr/local/proftpd/var/quota」
◆顯示磁盤限額信息
ftp登陸後可執行quote site quota命令查看當前磁盤使用狀況:
QuotaShowQuotas on
◆設置磁盤限額日誌文件
QuotaLog」/var/log/quota」
◆指定磁盤限額模塊使用的數據庫信息
SQLNamedQuer get-quota-limit SELECT "name,quota_type,bytes_in_avail,bytes_out_avail,bytes_xfer_avail,files_in_avail,files_out_avail,files_xfer_avail FROM quotalimits WHERE name='%{0}'AND quota_type='%{1}'"
SQLNamedQuery get-quota-tally SELECT"name,quota_type,bytes_in_used,bytes_out_used,bytes_xfer_used,files_in_used,files_out_used,filed_xfer_used,FROM quotatallies WHERE name='%{0}'AND quota_type ='%{1}"
SQLNamedQuery update-quota-tally UPDATE"bytes_in_used =bytes_in_used+%{0},bytes_out_used=bytes_out_used+%{1},bytes_xfer_used=bytes_xfer_used+%{2},files_in_used=files_in_used+%{3},files_out_used=files_out_used+%{4},files_xfer_used =files_xfer_used+%{5} WHERE name='%{6}'AND quota_type = '%{7}'" quotatallies
SQLNamedQuery insert-quota-tally INSERT"%{0},%{1},%{2},%{3},%{4},%{5},%{6},%{7}"quotatallies
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
另外,讀者還能夠在proftpd.conf中添加一些有關超時、限制鏈接次數、加快鏈接速度、支持斷點傳輸及安全傳輸等內容。
anon_other_write_enable=YES
ascll_upload_enable=YES
ascll_download_enable=YES
VsFTPD配置文件中還能夠進行更多的設置,如磁盤配額、虛擬用戶我的目錄的創建、性能與負載控制、FTP被動模式斷口設置、安全設置等,讀者根據本身的須要進一步的完善。
◆編輯文件
修改/etc/pam.d/ftp中去掉其餘的內容,添加如下的內容:
#auth
auth required/soft/program/pam_mods/pam_mysql.so
user=ftpuser passwd=6789host=localhost db=ftp
table=ftpusers usercolumn=userid passwdcolumn=passwd crypt=0
#account
Account required/soft/program/pam_mods/pam_mysql.so
User=ftpuser passwd=6789 host=localhost db=ftp table=ftpusers usercolumn=userid passwdcolumn=passwd crypt=0
涉及到的參數,只要對應前面數據庫的設置就能夠明白它們的含義。其中:crypt=0,口令以明文方式(不加密)保存在數據庫中,crypt=1,口令使用Unix系統的DES加密方式加密後保存在數據庫中;crypt=2,口令通過MySQL的password()函數加密後保存。FTP數據庫中ftpusers表的受權用戶ftpusers和密碼必須正確設置。


◆開機自啓動VsFTPD
請將vsftpd-2.2.1/xinetd.d/vsftpd文件制到/etc/xinetd.d/中(若是該目錄中沒有該文件)。此外,還需設置vsftpd.conf中listen和Tcp_Wrappers參數,將其都設置爲NO,最後,用ntsysv命令,選中Vsftpd守護進程便可。
經過上面的知識,結合Apache、PHP等軟件能夠開發許多功能,如自動申請主頁空間等,並且使用phpMyAdmin能夠以Web方式管理MySQL,很容易的添加和刪除用戶,這樣FTP用戶管理就輕鬆多了。 
相關文章
相關標籤/搜索