Linux基本操作命令

Linux基本操作命令
  首先介紹一個名詞“控制檯(console)”,它就是我們通常見到的使用字符操作界面的人機接口,例如dos。我們說控制檯命令,就是指通過字符界面輸入的可以操作系統的命令,例如dos命令就是控制檯命令。我們現在要了解的是基於Linux操作系統的基本控制檯命令。有一點一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)對大小寫是敏感的,也就是說,如果你輸入的命令大小寫不對的話,系統是不會做出你期望的響應的。
[編輯本段]
模式切換
  1、 由字符到圖型#startx或#init 5
  2、 由圖形到字符#logout或init 3
  3、 註銷#logout或exit或ctrl+d
  4、 關機#poweroff或init 0或shutdown now或 halt -p
  5、 重啓#reboot或init 6或shutdown -r now
[編輯本段]
獲得幫助
  #help提供內部命令的幫助#man或info提供外部命令的幫助。
  如果你的英文足夠好,那完全可以不靠任何人就精通linux,只要你會用man。Man實際上就是察看指令用法的help,學習任何一種UNIX類的操作系統最重要的就是學會使用man這個輔助命令。man是manual(手冊)的縮寫字,它的說明非常的詳細,但是因爲它都是英文,看起來非常的頭痛。建議大家需要的時候再去看man,平常嗎,記得一些基本用法就可以了。
[編輯本段]
ls
  ls


      這個命令就相當於dos下的dir命令一樣,這也是Linux控制檯命令中最爲重要幾個命令之一。ls最常用的參數有三個: -a -l -F。
      ls -a
      Linux上的文件以“.”開頭的文件被系統視爲隱藏文件,僅用ls命令是看不到他們的,而用ls -a除了顯示 一般文件名外,連隱藏文件也會顯示出來。
      ls -l(這個參數是字母L的小寫,不是數字1)
      這個命令可以使用長格式顯示文件內容,如果需要察看更詳細的文件資料,就要用到ls -l這個指令。例如我在某個目錄下鍵入ls -l可能會顯示如下信息(最上面兩行是我自己加的):
      位置1 2 3 4 5 6 7
      文件屬性 文件數 擁有者 所屬的group 文件大小 建檔日期 文件名
      drwx------ 2 Guest users 1024 Nov 21 21:05 Mail
      -rwx--x--x 1 root root 89080 Nov 7 22:41 tar*
      -rwxr-xr-x 1 root bin 5013 Aug 15 9:32 uname*
      lrwxrwxrwx 1 root root 4 Nov 24 19:30 zcat->gzip
      -rwxr-xr-x 1 root bin 308364 Nov 29 7:43 zsh*
      -rwsr-x--- 1 root bin 9853 Aug 15 5:46 su*
      下面,我爲大家解釋一下這些顯示內容的意義。
      第一個欄位,表示文件的屬性。Linux的文件基本上分爲三個屬性:可讀(r),可寫(w),可執行(x)。但是這裏有十個格子可以添(具體程序實現時,實際上是十個bit位)。第一個小格是特殊表示格,表示目錄或連結文件等等,d表示目錄,例如drwx------;l表示連結文件,如lrwxrwxrwx;如果是以一橫“-”表示,則表示這是文件。其餘剩下的格子就以每3格爲一個單位。因爲Linux是多用戶多任務系統,所以一個文件可能同時被許多人使用,所以我們一定要設好每個文件的權限,其文件的權限位置排列順序是(以-rwxr-xr-x爲例):
      rwx(Owner)r-x(Group)r-x(Other)
      這個例子表示的權限是:使用者自己可讀,可寫,可執行;同一組的用戶可讀,不可寫,可執行;其它用戶可讀,不可寫,可執行。另外,有一些程序屬性的執行部分不是X,而是S,這表示執行這個程序的使用者,臨時可以有和擁有者一樣權力的身份來執行該程序。一般出現在系統管理之類的指令或程序,讓使用者執行時,擁有root身份。
      第二個欄位,表示文件個數。如果是文件的話,那這個數目自然是1了,如果是目錄的話,那它的數目就是該目錄中的文件個數了。
      第三個欄位,表示該文件或目錄的擁有者。若使用者目前處於自己的Home,那這一欄大概都是它的賬號名稱。
      第四個欄位,表示所屬的組(group)。每一個使用者都可以擁有一個以上的組,不過大部分的使用者應該都只屬於一個組,只有當系統管理員希望給予某使用者特殊權限時,纔可能會給他另一個組。
      第五欄位,表示文件大小。文件大小用byte來表示,而空目錄一般都是1024byte,你當然可以用其它參數使文件顯示的單位不同,如使用ls –k就是用kb來顯示一個文件的大小單位,不過一般我們還是以byte爲主。
      第六個欄位,表示創建日期。以“月,日,時間”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。
      第七個欄位,表示文件名。我們可以用ls –a顯示隱藏的文件名。
      ls –F(注意,是大寫的F)
      使用這個參數表示在文件的後面多添加表示文件類型的符號,例如*表示可執行,/表示目錄,@表示連結文件,這都是因爲使用了-F這個參數。但是現在基本上所有的Linux發行版本的ls都已經內建了-F參數,也就是說,不用輸入這個參數,我們也能看到各種分辨符號。
    [編輯本段]
    cd
      cd [change directory]
      這個命令是用來進出目錄的,它的使用方法和在dos下沒什麼兩樣,所以我覺得沒什麼可說的,但有兩點我補充一下。首先,和dos不同的是Linux的目錄對大小寫是敏感的,如果大小寫沒拼對,你的cd操作是成功不了的。其次,cd如果直接輸入,cd後面不加任何東西,會回到使用者自己的Home Directory。假設如果是root,那就是回到/root.這個功能同cd ~是一樣的。
    [編輯本段]
    mkdir、rmdir
      mkdir [make directory] rmdir [remove directory]
      mkdir命令用來建立新的目錄,rmdir用來刪除已建立的目錄,這兩個指令的功能不再多加介紹,他們同dos下的md,rd功能和用法都是基本一樣的。
    [編輯本段]
    cp
      cp [copy]
      這個命令相當於dos下面的copy命令,具體用法是:cp –r 源文件(source) 目的文件(target)
      參數r是指連同源文件中的子目錄一同拷貝。熟悉dos的讀者用起這個命令來會覺得更方便,畢竟比在dos下面要少敲兩下鍵盤。
    [編輯本段]
    rm
      rm [remove]
      這個命令是用來刪除文件的,和dos下面的rm(刪除一個空目錄)是有區別的,大家千萬要注意。rm命令常用的參數有三個: -i,-r,-f。
      比如我現在要刪除一個名字爲test的一個文件:rm –i test
      系統會詢問我們:“rm:remove ‘test’?y”,敲了回車以後,這個文件纔會真的被刪除。之所以要這樣做,是因爲linux不象dos那樣有undelete的命令,或者是可以用pctool等工具將刪除過的文件救回來,linux中刪除過的文件是救不回來的,所以使用這個參數在刪除前讓你再確定一遍,是很有必要的。
      rm –r 目錄名:這個操作可以連同這個目錄下面的子目錄都刪除,功能上和rmdir相似。
      rm –f 文件名(目錄名):這個操作可以進行強制刪除。
    [編輯本段]
    mv
      mv [move]
      這個命令的功能是移動目錄或文件,引申的功能是給目錄或文件重命名。它的用法同dos下面的move基本相同,這裏不再多講。當使用該命令來移動目錄時,他會連同該目錄下面的子目錄也一同移走。如果你想給一個文件或目錄重命名時可以用以下方法:mv 原文件(目錄)名 新的文件(目錄)名。
    [編輯本段]
    du,df
      du [disk usage]
      du命令可以顯示目前的目錄所佔的磁盤空間,df命令可以顯示目前磁盤剩餘的磁盤空間。如果du命令不加任何參數,那麼返回的是整個磁盤的使用情況,如果後面加了目錄的話,就是這個目錄在磁盤上的使用情況(這個功能可是dos沒有的呦)。不過我一般不喜歡用du,因爲它給出的信息是在是太多了,我看不過來,而df這個命令我是最常用的,因爲磁盤上還剩多少空間對我來說是很重要的。
    [編輯本段]
    cat
      cat[concatenate]
      這個命令是linux中非常重要的一個命令,它的功能是顯示或連結一般的ascii文本文件。cat是concatenate的簡寫,類似於dos下面的type命令。它的用法如下:
      cat text 顯示text這個文件;
      cat file1 file2 依順序顯示file1,file2的內容;
      cat file1 file2>file3 把file1,file2的內容結合起來,再“重定向(>)”到file3文件中。
      “〉”是一個非常有趣的符號,是往右重定向的意思,就是把左邊的結果當成是輸入,然後輸入到file3這個文件中。這裏要注意一點是file3是在重定向以前還未存在的文件,如果file3是已經存在的文件,那麼它本身的內容被覆蓋,而變成file1+file2的內容。如果〉左邊沒有文件的名稱,而右邊有文件名,例如:
      cat >file1:結果是會“空出一行空白行”,等待你輸入文字,輸入完畢後再按[Ctrl]+[c]或[Ctrl]+[d],就會結束編輯,併產生file1這個文件,而file1的內容就是你剛剛輸入的內容。這個過程和dos裏面的copy con file1的結果是一樣的。
      另外,如果你使用如下的指令:
      cat file1>>file2:這將變成將file1的文件內容“附加”到file2的文件後面,而file2的內容依然存在,這種重定向符〉〉比〉常用,可以多多利用。
    [編輯本段]
    more,less
      這是兩個顯示一般文本文件的指令。如果一個文本文件太長了超過一個屏幕的畫面,用cat來看實在是不理想,就可以試試more和less兩個指令。More指令可以使超過一頁的文件臨時停留在屏幕,等你按任何的一個鍵以後,才繼續顯示。而less除了有more的功能以外,還可以用方向鍵往上或往下的滾動文件,所以你隨意瀏覽,閱讀文章時,less是個非常好的選擇。
    [編輯本段]
    pwd
      pwd [print working directory]
      pwd [--help][--version]
      說明:執行pwd指令可立刻得知您目前所在的工作目錄的絕對路徑名稱。
    [編輯本段]
    clear
      這個命令是用來清除屏幕的,它不需要任何參數,和dos下面的cls具有相同的功能,如果你覺得屏幕太紊亂,就可以使用它清除屏幕上的信息。
    [編輯本段]
    ln
      ln[link]
      這是linux中又一個非常重要命令,請大家一定要熟悉。它的功能是爲某一個文件在另外一個位置建立一個不同的鏈接,這個命令最常用的參數是-s,具體用法是:ln 源文件 –s 目標文件。
      當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然後在其它的目錄下用ln命令鏈接(link)它就可以,不必重複的佔用磁盤空間。例如:ln /bin/less –s /usr/local/bin/less
      -s 是代號(symbolic)的意思。
      這裏有兩點要注意:第一,ln命令會保持每一處鏈接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發生相同的變化;第二,ln的鏈接有軟鏈接和硬鏈接兩種,軟鏈接就是ln –s ** **,它只會在你選定的位置上生成一個文件的鏡像,不會佔用磁盤空間,硬鏈接ln ** **,沒有參數-s, 它會在你選定的位置上生成一個和源文件大小相同的文件,無論是軟鏈接還是硬鏈接,文件都保持同步變化。
      如果你用ls察看一個目錄時,發現有的文件後面有一個@的符號,那就是一個用ln命令生成的文件,用ls –l命令去察看,就可以看到顯示的link的路徑了。
    [編輯本段]
    grep
      用於查找文件中符合字符串的那行。
      e.g. grep -nr "network_ssl" ./ [查找當前文件夾下所有文件內容,列出包含有 network_ssl該字串的行,並顯示行號]
      參數說明: -a :將 binary 文件以 text 文件的方式搜尋數據
      -c :計算找到 '搜尋字符串' 的次數
      -i :忽略大小寫的不同,所以大小寫視爲相同
      -n :順便輸出行號
      -v :反向選擇,亦即顯示出沒有 '搜尋字符串' 內容的那一行!
    [編輯本段]
    find
      $ find . -name "*.txt" -print 用於查找所有的‘ *.txt’文件在當前目錄及子目錄中;
      $ find . -name "[A-Z]*" -print 用於當前目錄及子目錄中查找文件名以一個大寫字母開頭的文件;
      $ find /etc -name "host*" -print 在/etc目錄中查找文件名以host開頭的文件;
      $find . -name "[a-z][a-z][0--9][0--9].txt" -print 在當前目錄查找文件名以兩個小寫字母開頭,跟着是兩個數字,最後是.txt的文件;
      1、find命令的一般形式爲;
      find pathname -options [-print -exec -ok ...]
      
      2、find命令的參數;
      
      pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
      -print: find命令將匹配的文件輸出到標準輸出。
      -exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲'command' { } \;,注意{ }和\;之間的空格。
      -ok: 和-exec的作用相同,只不過以一種更爲安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。
      
      3、find命令選項
      
      -name
      按照文件名查找文件。
      -perm
      按照文件權限來查找文件。
      -prune
      使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那麼-prune將被find命令忽略。
      -user
      按照文件屬主來查找文件。
      -group
      按照文件所屬的組來查找文件。
      -mtime -n +n
      按照文件的更改時間來查找文件, - n表示文件更改時間距現在n天以內,+ n表示文件更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
      -nogroup
      查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
      -nouser
      查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
      -newer file1 ! file2
      查找更改時間比文件file1新但比文件file2舊的文件。
      -type
      查找某一類型的文件,諸如:
      b - 塊設備文件。
      d - 目錄。
      c - 字符設備文件。
      p - 管道文件。
      l - 符號鏈接文件。
      f - 普通文件。
      -size n:[c] 查找文件長度爲n塊的文件,帶有c時表示文件長度以字節計。
      -depth:在查找文件時,首先查找當前目錄中的文件,然後再在其子目錄中查找。
      -fstype:查找位於某一類型文件系統中的文件,這些文件系統類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息。
      -mount:在查找文件時不跨越文件系統mount點。
      -follow:如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
      -cpio:對匹配的文件使用cpio命令,將這些文件備份到磁帶設備中。
      另外,下面三個的區別:
      -amin n
      查找系統中最後N分鐘訪問的文件
      -atime n
      查找系統中最後n*24小時訪問的文件
      -cmin n
      查找系統中最後N分鐘被改變文件狀態的文件
      -ctime n
      查找系統中最後n*24小時被改變文件狀態的文件
      -mmin n
      查找系統中最後N分鐘被改變文件數據的文件
      -mtime n
      查找系統中最後n*24小時被改變文件數據的文件
    [編輯本段]
    ar
      功能說明:建立或修改備存文件,或是從備存文件中抽取文件。
      語 法:ar[-dmpqrtx][cfosSuvV][a<成員文件>][b<成員文件>][i<成員文件>][備存文件][成員文件]
      補充說明:ar可讓您集合許多文件,成爲單一的備存文件。在備存文件中,所有成員文件皆保有原來的屬性與權限。
      參 數:
      指令參數
      -d 刪除備存文件中的成員文件。
      -m 變更成員文件在備存文件中的次序。
      -p 顯示備存文件中的成員文件內容。
      -q 將文件附加在備存文件末端。
      -r 將文件插入備存文件中。
      -t 顯示備存文件中所包含的文件。
      -x 自備存文件中取出成員文件。
      選項參數
      a<成員文件> 將文件插入備存文件中指定的成員文件之後。
      b<成員文件> 將文件插入備存文件中指定的成員文件之前。
      c 建立備存文件。
      f 爲避免過長的文件名不兼容於其他系統的ar指令指令,因此可利用此參數,截掉要放入備存文件中過長的成員文件名稱。
      i<成員文件> 將問家插入備存文件中指定的成員文件之前。
      o 保留備存文件中文件的日期。
      s 若備存文件中包含了對象模式,可利用此參數建立備存文件的符號表。
      S 不產生符號表。
      u 只將日期較新文件插入備存文件中。
      v 程序執行時顯示詳細的信息。
    [編輯本段]
    rpm
      一種用於互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具有.RPM擴展名的文件,與Dpkg類似。
      RPM是RedHat Package Manager(RedHat軟件包管理工具)的縮寫,這一文件格式名稱雖然打上了RedHat的標誌,但是其原始設計理念是開放式的,現在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分發版本都有采用,可以算是公認的行業標準了。
      常用rpm命令
      查詢rpm軟件包
      #rpm -q 軟件包名
      #rpm -qa //查詢安裝的所有軟件包
      #rpm -qa|grep 軟件包字符串
      #rpm -qf /bin/命令 //查詢命令由哪些軟件包安裝得到
      #rpm -qi 軟件包名 //查詢軟件包的詳細信息
      #rpm -ql 軟件包名 //查詢軟件包的安裝位置
      軟件包的安裝
      #rpm -ivh 軟件包
      軟件包的升級
      #rpm -Uvh 軟件包
      軟件包的卸載
      #rpm -e 軟件包名
      文件打包
      #tar -cvf [文件名.tar] [文件……目錄]
      查看包文件的內容
      #tar -tf 文件名.tar
      向已有的包中添加新文件
      #tar -rvf [文件名.tar] [新文件……]
      釋放包文件#tar -xvf 文件名.tar
      壓縮文件#gzip 文件名
      解壓縮文件
      #gzip -d 文件名.gz 或#gunzip 文件名.gz
      創建壓縮包
      #tar -zcvf [文件名.tar.gz] [文件1 文件2 …]
      查看壓縮包中的內容
      #tar -ztf 文件名.tar.gz
      釋放壓縮包
      #tar -zxvf 文件名.tar.gz
    [編輯本段]
    mount,umount
      mount是Linux下的一個命令,它可以將分區作爲Linux的一個“文件”掛接到Linux的一個空文件夾下,從而將分區和/mnt這個目錄聯繫起來,因此我們只要訪問這個文件夾,就相當於訪問該分區了。目前mount已經不僅僅侷限於Linux了,在Windows系統下的應用也越來越廣了,多用在虛擬光驅類軟件上,比如Clone CD,Daemon tool,WinMount等。
      注意事項
      1、必須將光盤、U盤等放入驅動器在實施掛載操作
      2、不能在掛載目錄下實施掛載操作,至少在上一級
      3、不能在同一目錄下掛載兩個以上的文件系統
      4、Linux預留掛載目錄爲/mnt
      5、不能在掛載目錄下實施卸載操作
      6、掛載目錄必須事先存在
      掛載光盤
      #mount -t iso9660 /dev/cdrom /mnt/cdrom
      卸載光盤
      #umount /mnt/cdrom或#umount /dev/cdrom或#cd;eject
      掛載U盤
      #mount /dev/sdb1 /mnt/usb
      掛載iso鏡像
      #mount -t iso9660 -o loop iso鏡像文件 /mnt/cdrom
    [編輯本段]
    用戶和組管理
      #useradd 用戶名 //創建用戶和組
      #passwd 用戶名 //設置用戶密碼
      #groupadd 組名 //創建組
      #usermod –d 路徑 用戶名 //修改用戶宿主目錄
      #usermod –u uid 用戶名 //修改用戶的UID
      #usermod -s /bin/[csh] 用戶名 //修改用戶啓動shell
      #usermod -G 組名 用戶名 //將用戶加入組, 創建私有組
      #usermod -g 組名 用戶名 //用戶加入組但不創建私有組
      #gpasswd -a 用戶名 組名 //同-G
      #gpasswd -d 用戶名 組名 //將用戶從組中刪除
      #gpasswd -A 用戶名 組名 //指定用戶成爲組的管理員
      #usermod -L 用戶名 //鎖定用戶#passwd -l 用戶名 //同上
      #usermod -U 用戶名 //解鎖用戶#passwd -u 用戶名 //同上
      #usermod -l 新名 原名 //重命名用戶
      #groupmod -n 新名 原名 //重命名組
      #userdel 用戶名 //刪除用戶#userdel –r 用戶名 //徹底刪除,包括用戶的宿主目錄
      #groupdel 組名 //刪除組
      #passwd -d 用戶名 /刪除用戶密碼/
    [編輯本段]
    進程及服務管理
      查看進程
      #ps -aux //查看所有進程(靜態)
      #top //查看動態變化的進程
      #pstree //查看進程樹
      將進程放在後臺運行
      #命令 &
      查看後臺運行的進程
      #jobs
      將後臺運行的進程調入前臺
      #fg 編號
      強制結束進程
      #kill -9 PID 或#killall -9 進程名
      init進程是所有進程的父進程其級別如下
      0 關機
      1 單用戶
      2 多用戶字符,但是不支持NFS
      3 完全多用戶字符
      4 用戶自定義
      5 圖形
      6 重啓
      查看服務啓動情況(獨立啓動方式)
      #chkconfig --list //查看所有服務的啓動狀態
      #chkconfig --list httpd
      設置獨立啓動服務
      #chkconfig --level 35 httpd on或off
      設置非獨立啓動服務
      #chkconfig telnet on或off#service xinetd restart
      設置服務在開機時自動運行
      #ntsysv
    [編輯本段]
    網卡設置
      1、 設置ip地址(即時生效,重啓失效)
      #ifconfig eth0 ip地址 netmask 子網掩碼
      2、 設置ip地址(重啓生效,永久生效)
      #setup
      3、 通過配置文件設置ip地址(重啓生效,永久生效)
      #vi /etc/sysconfig/network-scripts/ifcfg-eth0
      DEVICE=eth0 #設備名,與文件同名。
      ONBOOT=yes #在系統啓動時,啓動本設備。
      BOOTPROTO=static
      IPADDR=202.118.75.91 #此網卡的IP地址
      NETMASK=255.255.255.0 #子網掩碼
      GATEWAY=202.118.75.1 #網關IP
      MACADDR=00:02:2D:2E:8C:A8 #mac地址
      4、 重啓網絡服務
      #service network restart //重啓所有網卡
      5、 禁用網卡,啓動網卡
      #ifdown eth0
      #ifup eth0
      6、 屏蔽網卡,顯示網卡
      #ifconfig eth0 down
      #ifconfig eth0 up
      7、 配置DNS客戶端(最多三個)
      #vi /etc/resolv.conf
      nameserver 202.99.96.68
      8、更改主機名(即時生效)
      #hostname 主機名
      9、更改主機名(重啓計算機生效,永久生效)
      #vi /etc/sysconfig/network
      HOSTNAME=主機名
    [編輯本段]
    FTP服務
      1 使用setup命令開啓vsftpd服務進程。
      2然後修改文件/etc/xinetd.d/vsftpd。(但vsftpd是依附於xinetd.d運行時2、3有效)
      (1)把disable=yes改爲=no。
      (2)配置每個客戶機的最大連接數:
      在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置語句:
      per_source = 數值。例如:per_source = 5 表示每個客戶機的最大連接數爲5。
      (3) 配置服務器總的併發連接數:
      在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置語句:
      instances = 數值。例如:instances = 200 表示FTP 服務器總共支持的最高連接數爲200。
      (4)當vsftpd單獨運行時:要配置獨立運行的vsftpd很簡單,只需要在前面的主配置文件的基礎上添加如下的配置即可。
      設置listen=YES :指明vsftpd 以獨立運行方式啓動。
      設置max_clients=200 :指明服務器總的併發連接數
      設置max_per_ip=4 :指明每個客戶機的最大連接數。
      3. 配置/etc/vsftpd.conf(redhat9 是/etc/vsftpd/vsftpd.conf)文件。
      # 允許真實用戶(在系統中有賬號的用戶)訪問
      local_enable=YES
      # 給真實用戶寫權限
      write_enable=YES
      # 真實用戶上傳文件的掩碼設爲022。這樣真實用戶上傳後的文件權限爲755(rwxr-xr-x),即文件所有者可讀寫執行、同組成員可讀可執行、
      # 系統中的其它用戶可讀可執行。
      local_umask=022
      # 允許匿名用戶訪問。匿名用戶在系統中的賬號是ftp
      anonymous_enable=YES
      # 匿名用戶上傳文件的掩碼設爲000。這樣文件上傳後的權限爲777(rwxrwxrwx),即所有人都可以讀寫執行。
      anon_umask=000
      # 匿名用戶可上傳、可創建目錄。一下3行只有設置了write_enable=YES纔有效。
      anon_upload_enable=YES
      anon_mkdir_write_enable=YES
      anon_world_readable_only=NO
      # 如果想要讓匿名用戶有刪除的權限可以加上如下代碼
      # anon_other_write_enable=YES
      # 進入每個目錄都顯示特定提示。這些提示放在各個目錄下.message文件中。
      dirmessage_enable=YES
      # 當用戶登陸ftp服務器時,不管是否登陸成功都顯示如下信息。
      ftpd_banner=Welcome to NiHao FTP service.
      # 使用日誌記錄上傳和下載。
      xferlog_enable=YES
      # 日誌文件的位置
      #xferlog_file=/var/log/vsftpd.log
      # 日誌使用標準fpd格式
      xferlog_std_format=YES
      # ftp服務的端口是20
      connect_from_port_20=YES
      # 用戶使用ftp訪問服務器時,把他們的登陸目錄作爲它們在ftp中看到的目錄,這稱爲chroot。
      # 這樣用戶就無法訪問他們登陸目錄以外的內容,大大增強了安全性。匿名用戶的登陸目錄是/var/ftp/
      chroot_list_enable=YES
      # 文件/etc/vsftpd.chroot_list中的用戶不chroot。
      chroot_list_file=/etc/vsftpd.chroot_list
      # 同時最多允許5個用戶登陸。
      max_clients=5 #有些不支持此選項,註釋掉即可。
      # ftp服務的密碼驗證模塊。
      pam_service_name=vsftpd
      # listen=YES #如果是獨立運行的則加此項(redhat9)。
      #tcp_wrappers=YES #如果是獨立運行的則加此項(redhat9)。
      4.重新啓動xinetd服務,你就可以匿名訪問你的ftp服務器了。
      下面我們來建立一個ftp管理員賬號
      在Linux ftp服務中,用戶的權限受到雙重限制。一是Linux文件系統本身的權限限制。每個文件的訪問權限用rwxrwxrwx形勢表示。每個用戶只能做文件全縣允許的操作。二是ftp配置的限制。系統允許的操作,如果在ftp的配置文件中沒有被允許,用戶還是不能作這個操作。如:某個文件的權限爲rwxrwxrwx,即系統認爲任何人都有讀寫執行的權利。如果vsftpd.conf中不允許匿名用戶寫,匿名用戶還是不能修改這個問安。
      對於目錄文件的讀權限,意味着可以讀出這個目錄中的文件信息。目錄文件的寫權限,意味着可以在這個目錄下建立、刪除、重命名文件。
      用命令groupadd -r ftpAdmin添加一個ftp管理員組。其中-r表示這是一個系統組。
      用命令useradd -c "ftp Administrator" -d /var/ftp/ -G ftpAdmin -s /sbin/nologin -r ftpAdmin添加一個管理員用戶ftpAdmin。其中
      -c "ftp Administrator" 是對這個用戶的描述
      -d /var/ftp/ 是這個用戶的登陸目錄
      -g ftpAdmin 是這個用戶所在的組
      -s /sbin/nologin 是這個用戶登陸時所用的shell。這個shell命令的功能極其弱,以至於不能用telnet登陸。也就是說這個管理員只能噹噹垃圾清掃員。(呵呵。好沒面子的管理員)
      -r 表示這是個系統賬號,不用爲它建立登陸目錄。
      建好管理員以後把incoming目錄的管理權給他。
      chown ftpAdmin /var/ftp/incoming :把此目錄所有者設爲ftpAdmin。
      chmod 755 /var/ftp/incoming :把目錄的權限設爲所有者可讀寫執行,同組用戶可讀、可執行,所有人可讀、可執行。
      這樣,我們的管理員就可以開始管理了。
      5 . 配置vsftpd 允許匿名用戶上傳
      //修改vsftpd 的主配置文件/etc/vsftpd.conf
      # vi /etc/vsftpd.conf
      //將如下兩行前的#刪除
      //① #anon_upload_enable=YES 允許匿名用戶上傳
      //② #anon_mkdir_write_enable=YES 開啓匿名用戶的寫和創建目錄的權限
      //若要以上兩項設置生效,同時還要求:
      //(1) write_enable=YES
      //(2) 匿名用戶對文件系統的上傳目錄具有寫權限
      //添加如下的配置語句
      // anon_world_readable_only=NO
      //上面的配置語句用於放開匿名用戶的瀏覽權限
      //修改後存盤退出vi
      //
      //創建匿名上傳目錄
      # mkdir /var/ftp/incoming
      # 修改上傳目錄的權限
      # chmod o+w /var/ftp/incoming/
      #
      //重新啓動xinetd
      # service xinetd restart
    [編輯本段]
    Web服務(httpd)
      同樣在setup中選中httpd服務。www服務不需要xinetd作爲它的代理進程。httpd這個進程一直在系統中運行。www服務的默認目錄是/var/www/html。只要把主頁放到這個目錄下就可以訪問了。
      我們可以用建立ftp管理員的辦法建立一個www管理員wwwAdmin。只要把它的登陸目錄設爲/var/www/html即可。
      /etc/init.d/httpd start #啓動服務
      /etc/init.d/httpd restart #重新啓動
      其配置文件爲/etc/httpd/conf/httpd.conf

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章