歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 深入學習Linux的用戶和組---基礎篇

深入學習Linux的用戶和組---基礎篇

日期:2017/2/27 14:25:38   编辑:更多Linux
  建立一個新用戶  建立一個新的用戶包括兩個步驟,第一步是使用useradd命令完成一個新用戶的初始化設置工作;第二步是用passwd為這個新用戶設置密碼。例如,我們要給系統添加一個用戶叫floatboat,密碼為fan2001z,那相關的操作是:  useradd floatboat <回車>  這時候系統沒有任何顯示。接著:  passwd floatboat <回車>  系統顯示:  Changing passWord for user floatboat  New UNIX password:  你輸入:  fan2001z<回車>  注意,由於Linux並不采用類似windows的密碼回顯(顯示為*號)——為避免你輸入密碼時被人注意到有多少位——所以,輸入的這些字符你是看不見的。  系統顯示:  Retype new UNIX password:  你再重新輸入一次密碼,然後回車確認,這時系統會顯示:  passwd:all authentication tokens updated sUCcessfully  表示你修改密碼成功了。  到這裡,新用戶的創建工作就算完成了。下面,我們再補充一些有關增加新用戶的常識:  1、useradd所做的初始化操作已經包括在/home目錄下為floatboat帳號建立一個名為floatboat的主目錄。如果你不想使用這個缺省的目錄,而希望把他的主目錄放在/home/goal裡(還放在/home下,只是一種良好的習慣,沒有其他什麼特別的要求),可以使用useradd的參數-d,命令如下:  useradd -d /home/goal floatboat  2、useradd的初始化操作還包括為用戶單獨建立一個與用戶名同名的組(floatboat組)。這叫用戶私有組的機制,與默認組機制相對應。對用戶分組一是方便管理,二是可以明確權限。復雜的我們將在以後的深入內容中探討。我們如果想讓此用戶加入一個已有的組的話,可以使用-g參數。例如我們想讓floatboat加入webusers組,那麼可以使用以下命令:  useradd -g webusers floatboat  同樣的,我們還可以使用-G參數使他同時加入多個組,例如webusers和FTPusers:  useradd -G ftpusers,webusers floatboat  3、passwd命令為一個用戶設置密碼,但它實質上是一個修改密碼的程序。只有超級用戶和用戶自己可以修改密碼,其它的普通用戶沒有給他修改密碼的權利。用戶密碼的組成要盡量的復雜,最好包括字母、數字和特殊符號,而且最好設成6位以上。太短passwd程序不允許,只是單純的字母或單純的數字,passwd也會有意見。你都會看見passwd出現的提示的,不要害怕,仔細看看到底它是怎麼說的:)  4、你在增加一個新用戶的時候,也可以設置用戶登錄的shell。缺省的,系統提供了/bin/bash。你如果非要指定的話,可以使用-s 參數就可以了。例如  useradd -d /www -s /usr/bin/passwd floatboat  注意,這些參數是可以一塊使用的,如上例所示,它表示增加新用戶,並把其主目錄路徑設置在/www,登錄的shell為/usr/bin/passwd。關於shell的更詳細的說明,請參考下面的修改用戶的個人設置相關內容。  5、刪除一個用戶可以使用userdel命令,直接帶用戶名做參數就可以了。    修改用戶的設置  對現有用戶的修改,比較常用的主要是修改密碼(使用passwd就好了),修改用戶的登錄shell,修改用戶所屬的默認組,設置帳號有效期,修改用戶的說明信息等等,偶爾也會用到修改用戶主目錄。    修改用戶的登錄shell  使用chsh命令可以修改自己的shell,只有超級用戶才能用chsh username為其它用戶修改shell設置。注意,指定的shell必須是列入/etc/shells文件中的shell,否則該用戶將不能登陸。  一般,比較常見的shells文件包括下面這些shell:  /bin/bash2  /bin/bash  /bin/sh  /bin/ash  /bin/bsh  /bin/tcsh  /bin/csh  而網管們還喜歡在裡面加上/usr/bin/passwd,這是為了不然用戶通過控制台或telnet登錄系統,卻可以使用修改帳戶密碼(比如在FTP裡用)。以及/bin/false,也就是不讓這個用戶登錄的意思喽^&^,連FTP也不能用。  你也可以使用usermod命令修改shell信息,如下所示:  usermod -s /bin/bash floatboat  其中/bin/bash和floatboat應取相應的shell路徑文件名及用戶名。  還有一種情況,就是你為用戶設置了一個空的shell(就是""),也就是說,這個用戶沒有shell。呵呵,絕對沒有在我還未曾見過,因為這種用戶登錄後,系統還是會給它一個shell用的。不信你試試:  usermod -s "" floatboat  這種用戶根據系統的不同,會有一個sh或bash進行操作,我也沒有看出功能上和其它普通用戶登錄有什麼不同。    修改用戶所屬的默認組  這個功能也可以通過usermod命令來實現,使用-g參數,例如把floatboat的默認組改為nobody,可以使用如下命令:  username -g nobody floatboat  nobody在類UNIX系統中一般都意味著沒有任何權限。    設置帳號有效期  如果使用了影子口令,則可以使用如下命令來修改一個帳號的有效期:  usermod -e MM/DD/YY username  例如把用戶floatboat的有效期定為2001年12月31日:  usermod -e 12/31/01 floatboat  如果把該用戶的有效期設為已經過去的時間,就可以暫時禁止該用戶登錄系統。    修改用戶的說明信息  修改用戶的說明信息,最簡單的方法莫過於直接修改/etc/passwd文件,找到對應的用戶記錄行,例如下列行:  floatboat:x:503:503::/home/floatboat:/bin/bash  你可以直接在第四個冒號和第五個冒號之間插入該用戶的說明就可以了。其實,很多用戶設置都可以在這修改,比如該行最後一部分/bin/bash就是用戶登錄shell的設置。關於這個/etc/passwd文件,我們後面將進一步的深入探討。    修改用戶主目錄  修改用戶的主目錄主要使用usermod命令的-d參數,例如:  usermod -d /www floatboat  這一行將floatboat的主目錄改到/www。如果想將現有主目錄的主要內容轉移到新的目錄,應該使用-m開關,如下所示:  usermod -d -m /www floatboat    文件目錄的權限  linux下,每一個文件、每一個目錄都有一個屬主,並針對用戶自己、用戶所在組、其它所有帳號(組)分別設定讀、寫、執行三種權限。例如,我(假定是webusers組的floatboat帳戶的擁有者)使用如下命令建立一個新的文件  touch mytestfile  然後我們使用ls -l mytestfile這一命令來查看這個文件的權限狀態(關於ls命令,可以查閱本站的命令查詢),可以得到如下的屏幕輸出顯示:  -rw-rw-r-- 1 floatboat webusers 0 Feb 6 21:37 mytestfile  輸出由空格分為9個部分,我們比較關心第一、三、四個字段,分別表示文件權限屬性、文件所有者帳戶、文件所屬組。  ◆使用chown命令修改文件的主人  當你新建立一個文件的時候,文件的所有者當然就是你了。這一事實只有超級用戶(比如說root)才可以通過chown命令改變(例如 chown otheruser mytestfile,把mytestfile文件的屬主改為otheruser)。普通用戶不能把自己的文件“送”給別人,不然你把有特殊目的的程序給了root怎麼辦?:)  chown命令的用法比較簡單。這裡我先假設你現在擁有超級用戶權限,那麼你就可以使用如下命令將一個文件“送給”floatboat了:  chown floatboat /home/floatboat/thefileisrootcreate.txt (假定該文件是由root創建的)  修改一個目錄的所有者也是類似的:  chown floatboat /home/newboat  當然,如果這個目錄還有子目錄及文件需要同時送給floatboat,chown也是支持-R參數的:  chown -R floatboat /home/newboat  如果你同時想修改文件/目錄所屬的組的話,你可以使用以下命令方便的達到目的:  chown -R floatboat.ftpusers /home/newboat  這樣,不但文件主人得到了修改,文件所屬的組也變成了ftpusers  ◆ 修改文件的組屬性  文件所屬組你倒是可以改變,前提是:  1、你的超級用戶。  2、你同時屬於兩個或兩個以上的組。  兩個條件你至少具備一個,你才能夠把文件所屬舊組變為新組。使用如下的命令將當前目錄下所有Html文件所屬的組改為httpd:  chgrp httpd *.html  和chown命令一樣,chgrp也可以使用-R參數對一個目錄內的所有文件和子目錄進行遞歸的修改組屬性。  <提示>:你可以使用不帶參數的groups命令查看自己屬於哪個組。    文件權限的設定是我們這一小節討論的核心,我們主要介紹chmod命令的兩種用法。    ◆使用訪問字符串設置文件目錄權限  正如前面所說的,每一個文件、目錄都針對用戶自己、用戶所在組、其它所有帳號(組)分別有讀、寫、執行三種權限及其組合。當一個普通用戶新建一個文件的時候,它默認的訪問權限顯示就如我們剛才所舉例子的第一個字段所示。總共十位字符“-rw-rw-r--”,第一位是目錄區分標志,如果是d的話,表示這是一個目錄。第二到四位分別表示文件所有者的讀(r:read)、寫(w:write)、執行(x:execute)屬性,第五到七位是文件所屬組的讀、寫、執行權限,第八到第十位則是其它用戶的讀、寫、執行權限。如果對應的位是相應的字母,就是有這相應權限,否則為“-”,表示沒有獲得這個許可。象剛才例子中的文件就是自己可讀寫,本組可讀寫,其它用戶可讀,所有的用戶(包括自己)都不能執行它。  我們的用u、g、o分別來指代用戶(user)、組(group)、其它帳戶(other),就可以方便的設置文件和目錄的權限了。當然,我們也可以用a來表示所有的這三項。  例如,我們要對所有perl的腳本文件設定權限,對所有用戶都可以讀和




Copyright © Linux教程網 All Rights Reserved