Linux 用戶(user)和用戶組(group)管理概述【轉】

          作者:北南南北
          來自:LinuxSir.Org
          摘要:本文主要講述在Linux 系統中用戶(user)和用戶組(group)管理相應的概念;用戶(user)和用戶組(group)相關命令的列舉;其中也對單用戶多任務,多用戶多任務也做以解說,本文應該說是比較基礎的文檔;


          +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
          正文
          +++++++++++++++++++++++++++++++++++++++++++++++++++++++++


          一、理解Linux的單用戶多任務,多用戶多任務概念;

          Linux 是一個多用戶、多任務的操作系統;我們應該了解單用戶多任務和多用戶多任務的概念;


          1、Linux 的單用戶多任務;

          單用戶多任務;比如我們以beinan 登錄系統,進入系統后,我要打開gedit 來寫文檔,但在寫文檔的過程中,我感覺少點音樂,所以又打開xmms 來點音樂;當然聽點音樂還不行,MSN 還得打開,想知道幾個弟兄現在正在做什么,這樣一樣,我在用beinan 用戶登錄時,執行了gedit 、xmms以及msn等,當然還有輸入法fcitx ;這樣說來就有點簡單了,一個beinan用戶,為了完成工作,執行了幾個任務;當然beinan這個用戶,其它的人還能以遠程登錄過來,也能做其它的工作。


          2、Linux 的多用戶、多任務;

          有時可能是很多用戶同時用同一個系統,但并不所有的用戶都一定都要做同一件事,所以這就有多用戶多任務之說;

          舉個例子,比如LinuxSir.Org 服務器,上面有FTP 用戶、系統管理員、web 用戶、常規普通用戶等,在同一時刻,可能有的弟兄正在訪問論壇;有的可能在上傳軟件包管理子站,比如luma 或Yuking 兄在管理他們的主頁系統和FTP ;在與此同時,可能還會有系統管理員在維護系統;瀏覽主頁的用的是nobody 用戶,大家都用同一個,而上傳軟件包用的是FTP用戶;管理員的對系統的維護或查看,可能用的是普通帳號或超級權限root帳號;不同用戶所具有的權限也不同,要完成不同的任務得需要不同的用戶,也可以說不同的用戶,可能完成的工作也不一樣;

          值得注意的是:多用戶多任務并不是大家同時擠到一接在一臺機器的的鍵盤和顯示器前來操作機器,多用戶可能通過遠程登錄來進行,比如對服務器的遠程控制,只要有用戶權限任何人都是可以上去操作或訪問的;


          3、用戶的角色區分;

          用戶在系統中是分角色的,在Linux 系統中,由于角色不同,權限和所完成的任務也不同;值得注意的是用戶的角色是通過UID和識別的,特別是UID;在系統管理中,系統管理員一定要堅守UID 唯一的特性;

          root 用戶:系統唯一,是真實的,可以登錄系統,可以操作系統任何文件和命令,擁有最高權限;
          虛擬用戶:這類用戶也被稱之為偽用戶或假用戶,與真實用戶區分開來,這類用戶不具有登錄系統的能力,但卻是系統運行不可缺少的用戶,比如bin、daemon、adm、ftp、mail等;這類用戶都系統自身擁有的,而非后來添加的,當然我們也可以添加虛擬用戶;
          普通真實用戶:這類用戶能登錄系統,但只能操作自己家目錄的內容;權限有限;這類用戶都是系統管理員自行添加的;


          4、多用戶操作系統的安全;

          多用戶系統從事實來說對系統管理更為方便。從安全角度來說,多用戶管理的系統更為安全,比如beinan用戶下的某個文件不想讓其它用戶看到,只是設置一下文件的權限,只有beinan一個用戶可讀可寫可編輯就行了,這樣一來只有beinan一個用戶可以對其私有文件進行操作,Linux 在多用戶下表現最佳,Linux能很好的保護每個用戶的安全,但我們也得學會Linux 才是,再安全的系統,如果沒有安全意識的管理員或管理技術,這樣的系統也不是安全的。

          從服務器角度來說,多用戶的下的系統安全性也是最為重要的,我們常用的Windows 操作系統,它在系紡權限管理的能力只能說是一般般,根本沒有沒有辦法和Linux或Unix 類系統相比;


          二、用戶(user)和用戶組(group)概念;


          1、用戶(user)的概念;

          通過前面對Linux 多用戶的理解,我們明白Linux 是真正意義上的多用戶操作系統,所以我們能在Linux系統中建若干用戶(user)。比如我們的同事想用我的計算機,但我不想讓他用我的用戶名登錄,因為我的用戶名下有不想讓別人看到的資料和信息(也就是隱私內容)這時我就可以給他建一個新的用戶名,讓他用我所開的用戶名去折騰,這從計算機安全角度來說是符合操作規則的;

          當然用戶(user)的概念理解還不僅僅于此,在Linux系統中還有一些用戶是用來完成特定任務的,比如nobody和ftp 等,我們訪問LinuxSir.Org 的網頁程序,就是nobody用戶;我們匿名訪問ftp 時,會用到用戶ftp或nobody ;如果您想了解Linux系統的一些帳號,請查看 /etc/passwd ;


          2、用戶組(group)的概念;

          用戶組(group)就是具有相同特征的用戶(user)的集合體;比如有時我們要讓多個用戶具有相同的權限,比如查看、修改某一文件或執行某個命令,這時我們需要用戶組,我們把用戶都定義到同一用戶組,我們通過修改文件或目錄的權限,讓用戶組具有一定的操作權限,這樣用戶組下的用戶對該文件或目錄都具有相同的權限,這是我們通過定義組和修改文件的權限來實現的;

          舉例:我們為了讓一些用戶有權限查看某一文檔,比如是一個時間表,而編寫時間表的人要具有讀寫執行的權限,我們想讓一些用戶知道這個時間表的內容,而不讓他們修改,所以我們可以把這些用戶都劃到一個組,然后來修改這個文件的權限,讓用戶組可讀,這樣用戶組下面的每個用戶都是可讀的;

          用戶和用戶組的對應關系是:一對一、多對一、一對多或多對多;

          一對一:某個用戶可以是某個組的唯一成員;
          多對一:多個用戶可以是某個唯一的組的成員,不歸屬其它用戶組;比如beinan和linuxsir兩個用戶只歸屬于beinan用戶組;
          一對多:某個用戶可以是多個用戶組的成員;比如beinan可以是root組成員,也可以是linuxsir用戶組成員,還可以是adm用戶組成員;
          多對多:多個用戶對應多個用戶組,并且幾個用戶可以是歸屬相同的組;其實多對多的關系是前面三條的擴展;理解了上面的三條,這條也能理解;


          三、用戶(user)和用戶組(group)相關的配置文件、命令或目錄;


          1、與用戶(user)和用戶組(group)相關的配置文件;


          1)與用戶(user)相關的配置文件;

          /etc/passwd 注:用戶(user)的配置文件;
          /etc/shadow 注:用戶(user)影子口令文件;


          2)與用戶組(group)相關的配置文件;

          /etc/group 注:用戶組(group)配置文件;
          /etc/gshadow 注:用戶組(group)的影子文件;


          2、管理用戶(user)和用戶組(group)的相關工具或命令;


          1)管理用戶(user)的工具或命令;

          useradd    注:添加用戶 
          adduser    注:添加用戶
          passwd     注:為用戶設置密碼
          usermod  注:修改用戶命令,可以通過usermod 來修改登錄名、用戶的家目錄等等;
          pwcov       注:同步用戶從/etc/passwd 到/etc/shadow 
          pwck         注:pwck是校驗用戶配置文件/etc/passwd 和/etc/shadow 文件內容是否合法或完整;
          pwunconv  注:是pwcov 的立逆向操作,是從/etc/shadow和 /etc/passwd 創建/etc/passwd ,然后會刪除 /etc/shadow 文件;
          finger        注:查看用戶信息工具
          id              注:查看用戶的UID、GID及所歸屬的用戶組
          chfn          注:更改用戶信息工具
          su             注:用戶切換工具
          sudo         注:sudo 是通過另一個用戶來執行命令(execute a command as another user),su 是用來切換用戶,然后通過切換到的用戶來完成相應的任務,但sudo 能后面直接執行命令,比如sudo 不需要root 密碼就可以執行root 賦與的執行只有root才能執行相應的命令;但得通過visudo 來編輯/etc/sudoers來實現;
          visudo      注:visodo 是編輯 /etc/sudoers 的命令;也可以不用這個命令,直接用vi 來編輯 /etc/sudoers 的效果是一樣的;
          sudoedit  注:和sudo 功能差不多;





          2)管理用戶組(group)的工具或命令;
          groupadd  注:添加用戶組;
          groupdel         注:刪除用戶組;
          groupmod        注:修改用戶組信息
          groups     注:顯示用戶所屬的用戶組
          grpck
          grpconv   注:通過/etc/group和/etc/gshadow 的文件內容來同步或創建/etc/gshadow ,如果/etc/gshadow 不存在則創建;
          grpunconv   注:通過/etc/group 和/etc/gshadow 文件內容來同步或創建/etc/group ,然后刪除gshadow文件;


           


          3、/etc/skel 目錄;

          /etc/skel目錄一般是存放用戶啟動文件的目錄,這個目錄是由root權限控制,當我們添加用戶時,這個目錄下的文件自動復制到新添加的用戶的家目錄下;/etc/skel 目錄下的文件都是隱藏文件,也就是類似.file格式的;我們可通過修改、添加、刪除/etc/skel目錄下的文件,來為用戶提供一個統一、標準的、默認的用戶環境;

           

          [root@localhost beinan]# ls -la /etc/skel/
          總用量 92
          drwxr-xr-x    3 root root  4096  8月 11 23:32 .
          drwxr-xr-x  115 root root 12288 10月 14 13:44 ..
          -rw-r--r--    1 root root    24  5月 11 00:15 .bash_logout
          -rw-r--r--    1 root root   191  5月 11 00:15 .bash_profile
          -rw-r--r--    1 root root   124  5月 11 00:15 .bashrc
          -rw-r--r--    1 root root  5619 2005-03-08  .canna
          -rw-r--r--    1 root root   438  5月 18 15:23 .emacs
          -rw-r--r--    1 root root   120  5月 23 05:18 .gtkrc
          drwxr-xr-x    3 root root  4096  8月 11 23:16 .kde
          -rw-r--r--    1 root root   658 2005-01-17  .zshrc


          /etc/skel 目錄下的文件,一般是我們用useradd 和adduser 命令添加用戶(user)時,系統自動復制到新添加用戶(user)的家目錄下;如果我們通過修改 /etc/passwd 來添加用戶時,我們可以自己創建用戶的家目錄,然后把/etc/skel 下的文件復制到用戶的家目錄下,然后要用chown 來改變新用戶家目錄的屬主;

          4、/etc/login.defs 配置文件;

          /etc/login.defs 文件是當創建用戶時的一些規劃,比如創建用戶時,是否需要家目錄,UID和GID的范圍;用戶的期限等等,這個文件是可以通過root來定義的;

          比如Fedora 的 /etc/logins.defs 文件內容;

          # *REQUIRED*
          #   Directory where mailboxes reside, _or_ name of file, relative to the
          #   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
          #   QMAIL_DIR is for Qmail
          #
          #QMAIL_DIR      Maildir
          MAIL_DIR        /var/spool/mail  注:創建用戶時,要在目錄/var/spool/mail中創建一個用戶mail文件;
          #MAIL_FILE      .mail

          # Password aging controls:
          #
          #       PASS_MAX_DAYS   Maximum number of days a password may be used.
          #       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
          #       PASS_MIN_LEN    Minimum acceptable password length.
          #       PASS_WARN_AGE   Number of days warning given before a password expires.
          #
          PASS_MAX_DAYS   99999   注:用戶的密碼不過期最多的天數;
          PASS_MIN_DAYS   0       注:密碼修改之間最小的天數;
          PASS_MIN_LEN    5       注:密碼最小長度;
          PASS_WARN_AGE   7       注:

          #
          # Min/max values for automatic uid selection in useradd
          #
          UID_MIN                   500  注:最小UID為500 ,也就是說添加用戶時,UID 是從500開始的;
          UID_MAX                 60000   注:最大UID為60000;

          #
          # Min/max values for automatic gid selection in groupadd
          #
          GID_MIN                   500   注:GID 是從500開始;
          GID_MAX                 60000

          #
          # If defined, this command is run when removing a user.
          # It should remove any at/cron/print jobs etc. owned by
          # the user to be removed (passed as the first argument).
          #
          #USERDEL_CMD    /usr/sbin/userdel_local

          #
          # If useradd should create home directories for users by default
          # On RH systems, we do. This option is ORed with the -m flag on
          # useradd command line.
          #
          CREATE_HOME     yes   注:是否創用戶家目錄,要求創建;

           


          5、/etc/default/useradd 文件;

          通過useradd 添加用戶時的規則文件;

           

          # useradd defaults file
          GROUP=100
          HOME=/home  注:把用戶的家目錄建在/home中;
          INACTIVE=-1  注:是否啟用帳號過期停權,-1表示不啟用;
          EXPIRE=   注:帳號終止日期,不設置表示不啟用;
          SHELL=/bin/bash  注:所用SHELL的類型;
          SKEL=/etc/skel   注: 默認添加用戶的目錄默認文件存放位置;也就是說,當我們用adduser添加用戶時,用戶家目錄下的文件,都是從這個目錄中復制過去的; 


          后記:

          關于用戶(user)和用戶組(group)管理內容大約就是這么多;只要把上面所說的內容了解和掌握,用戶(user)和用戶組(group)管理就差不多了;由于用戶(user)和用戶組(group)是和文件及目錄權限聯系在一起的,所以文件及目錄權限的操作也會獨立成文來給大家介紹;

          本文只是讓新手弟兄明白用戶(user)和用戶組(group)一些原理,所以我在寫此文的時候,大多是解說內容,我的意思是通過解說和索引一些命令,讓新手弟兄明白一點理論是比較重要的,技術操作無非是命令的用法;

          本文內容會不斷的更新和變動,一些命令需要獨立成文加以解說,我會在最近的幾天內完成;


          參考文檔:

          Linux 相關的man 和相關的help ;


          致謝:

          對于本文,pandonny 兄也有貢獻,謝謝;


          相關文檔:

          《Linux 用戶(user)和用戶組(group)管理概述》
          《用戶(user)和用戶組(group)配置文件詳解》
          《Linux 用戶(User)查詢篇》
          《Linux 用戶管理工具介紹》
          《Linux 系統中的超級權限的控制》
          《在Linux系統中,批量添加用戶的操作流程》

          posted on 2012-01-11 09:26 DHC 閱讀(154) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          公告

          THE TRUTH IS OUT THERE.
          本博客純屬摘錄
          若有雷同
          實屬正常
          只為記錄
          不為其它
          望原創作者見諒

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 托克托县| 余庆县| 新郑市| 康马县| 尖扎县| 西畴县| 墨脱县| 定南县| 南江县| 黑龙江省| 城口县| 嘉峪关市| 德庆县| 基隆市| 厦门市| 武隆县| 阆中市| 南充市| 沂源县| 崇明县| 太保市| 凌海市| 太谷县| 宁武县| 通道| 黔江区| 鄱阳县| 喀喇沁旗| 长白| 龙岩市| 英吉沙县| 阳泉市| 平果县| 永和县| 西平县| 久治县| 车险| 海林市| 五常市| 聊城市| 贵州省|