這就是Linux的基本哲學,也是開源的基本精神。GNU/Linux的最終發展就是跨越人和機器之間的界限。html
(比較:Windows中的一切也都是文件,大多都是微軟格式編碼過的2進制文件,而配置文件也每每都是進行2進制編碼的,甚至成果物都是2進 制編碼的, 好比doc文件,你須要使用微軟的API才能完成修改。微軟將數據和程序同時二進制化的作法,維護了20多年的壟斷的同時,也給本身挖好了最後的墳墓,聰 明絕頂的比爾.蓋茨顯然也看到了這點。因此提早跳船了。我大膽預言,微軟最終會推出Office for Ubuntu(別吃驚,office for mac 存在不少年了), 而Windows 8.0將成爲最後一個版本的Windows,Windows 會和當年Novell的 Netware同樣成爲歷史。隨着Tablet興起,基於豐富的觸摸控制的遊戲會大行其道,Windows上基於鼠標的遊戲也會成爲過期的玩意。至於 Windows Phone 7 則不會有任何廠商「真心」支持, 微軟以訴訟相威脅,才讓HTC就範。剛剛掙脫了微軟的魔掌,誰願意重回老路呢?。至於廣大的.Net程序員,呵呵,趕快來學Linux吧,將 Windows遷移到Linux將會是一塊巨大的蛋糕,而二者都會的程序員就有好日子過了)mysql
因爲修改文本文件如此簡單,Linux系統自己確定要加以規範。這就引出了用戶(組)和權限這2個概念。linux
而這2個概念的引入,完美的保證了Linux的安全性,同時沒有添加複雜性。因爲一切皆爲文件。因此Linux 引入了2個文件來管理用戶(組), /etc/passwd存放用戶,/etc/group存放組, 而後在文件系統中的每一個文件的文件頭裏面添加了用戶和文件之間的關係信息。程序員
用戶和文件的關係只有2種, 擁有和不擁有。組和文件的關係只有2種,擁有和不擁有。用戶和組的關係只有2種, 屬於和不屬於sql
將這三種關係疊加,用戶和文件的最終關係能夠概括爲3類安全
1,用戶擁有該文件編輯器
2,用戶屬於某個組, 某個組擁有該文件(即用戶經過屬於某組來擁有該文件)學習
3,用戶不擁有該文件編碼
而在文件的文件頭裏,則存儲了3組信息分別對應上面3類關係翻譯
第一組存放擁有該文件的用戶的的權限。第二組存放擁有該文件的組的權限,(全部屬於該組的全部成員都得到此權限)。第三組存放全部不擁有該文件的用戶(等於全部用戶減去以上2類用戶)所得到權限。
很是微妙的是,你可讓第三組的權限大於第一,第二組,也就是不用擁有該文件的用戶的權限反而更大。(評論:當我想通了這層關係之後,很感嘆IT前輩們的超凡智慧,這樣的設計具備很是好的對稱性,擁有未必是好事,不擁有多是種幸福。人生未嘗不是如此呢?)
下面要說明一下權限
權限一共有三種讀(縮寫爲r),寫(縮寫爲w),執行(縮寫爲x)。讀和寫很好理解,執行的話固然只對能執行的文件纔有效果。權限相對文件夾來 說意義略有不一樣。好比若是你擁有對某目錄的執行權限,你才能 cd 到某目錄,而若是你沒有讀權限,你即便cd到了某目錄,你也不能ls。
在實踐爲了省事,咱們通常都會用上全部三種權限,因此初學者只要知道有這麼回事情就能夠了。結合用戶(組),權限,文件,咱們用一個命令 ls -l 就能顯示出三者之間的關係
下面是一個例子
顯示readme.txt的權限信息
r-x-w-rw- tom admin readme.txt
上面的r-x-w-rw-,每3個字符爲一組,分別對應用戶,組,其餘用戶,-表示無此權限。用戶(縮寫爲u)的權限:是讀(r)和執行(x)組(縮寫爲g)的權限:是寫(w)。其餘用戶(縮寫爲o)的權限:是讀(r)和寫(w)。用戶tom 擁有該文件
組admin擁有該文件。任何用戶登陸之後根據以上設置就能夠得到本身相應的權限。修改權限也很簡單,好比要給g添加權限讀(r)和執行權限(x)就是:
chmod g+rx 文件名 ---加號表示添加權
要取消其餘用戶的寫(w)權限
chmod g-w 文件名 ---減號表示取消權限
在實際的應用當中, 咱們通常會用應用程序的名字來設置組名,好比在個人系統中就有mysql組,mongdb組。(評論:這裏再引用一下最聰明的物理學家兼哲學家愛老的名言
Make everything as simple as possible, but not simpler
Albert Einstein
我對這句名言的翻譯也很simple,就是「簡約不簡單」,Linux這種權限系統的精妙設計很容易讓人聯想到人體的DNA系統,只有四種鹼 基,確能夠演化出人體這麼複雜而有效的系統。而反觀Windows系統,真是無奈呀。用戶的電腦竟然能夠成爲QQ和360的戰場,用戶尚未任何證據來證 明誰是誰非。這到了Linux系統上,在這麼簡潔的安全機制下是根本不可能的事呀)
最後來談一談 Linux的三級幫助系統
Linux的幫助系統很是有特點。若是能熟練使用幫助系統,加上谷歌學習法,自學就會變得很是輕鬆,第一種是迷你型幫助,這種幫助篇幅最短,最精煉,多用在想不起某個命令的具體參數,命令用法以下
命令 –help,好比 ls –help
第二種是中型幫助,這種幫助篇幅較長,說明詳細,多用在象詳細瞭解某個命令的前因後果,命令用法以下
man 命令 --------man是(manual的縮寫),好比 man cd
第三種是大型幫助, 這種幫助篇幅最長,有的多是一本書, 命令用法以下
info 命令,好比 info rm
Linux學習必定要本身多磨練,才能真正掌握。Easy come easy go。 任何很容易學會的知識和技術,多半都很廉價(就是工資很低的意思)
PS. 有網友但願推薦關於Linux深刻淺出的書籍,我看過多本原版書,不過大多數的知識仍是靠本身實踐,和谷歌來的。不少Linux知識多是在學習別的東西 的時候得到,好比配置Apache的時候,就會多瞭解一些symbolic link的含義。不少東西要磨練之後纔可能明白真正的內涵。
轉:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/11/01/2231230.html