亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發(fā)消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術(shù)支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

Linux的用戶和用戶組的管理

添加時間:2016-3-8 17:04:07  添加: 思海網(wǎng)絡(luò) 
Linux系統(tǒng)是一個多用戶多任務(wù)的分時操作系統(tǒng),任何一個要使用系統(tǒng)資源的用戶,都必須首先向系統(tǒng)管理員申請一個賬號,然后以這個賬號的身份進入系統(tǒng)。用戶的賬號一方面可以幫助系統(tǒng)管理員對使用系統(tǒng)的用戶進行跟蹤,并控制他們對系統(tǒng)資源的訪問;另一方面也可以幫助用戶組織文件,并為用戶提供安全性保護。每個用戶賬號都擁有一個惟一的用戶名和各自的口令。用戶在登錄時鍵入正確的用戶名和口令后,就能夠進入系統(tǒng)和自己的主目錄。

  實現(xiàn)用戶賬號的管理,要完成的工作主要有如下幾個方面:
  · 用戶賬號的添加、刪除與修改。
  · 用戶口令的管理。
  · 用戶組的管理。


一、Linux系統(tǒng)用戶賬號的管理

  用戶賬號的管理工作主要涉及到用戶賬號的添加、修改和刪除。

  添加用戶賬號就是在系統(tǒng)中創(chuàng)建一個新賬號,然后為新賬號分配用戶號、用戶組、主目錄和登錄Shell等資源。剛添加的賬號是被鎖定的,無法使用。

1、添加新的用戶賬號使用useradd命令,其語法如下:

  
代碼:
useradd 選項 用戶名


  其中各選項含義如下:

代碼:
  -c comment 指定一段注釋性描述。
  -d 目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創(chuàng)建主目錄。
  -g 用戶組 指定用戶所屬的用戶組。
  -G 用戶組,用戶組 指定用戶所屬的附加組。
  -s Shell文件 指定用戶的登錄Shell。
  -u 用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重復(fù)使用其他用戶的標識號。

  用戶名 指定新賬號的登錄名。


2、例子說明

  例1:

  
代碼:
# useradd –d /usr/sam -m sam


  此命令創(chuàng)建了一個用戶sam,
  其中-d和-m選項用來為登錄名sam產(chǎn)生一個主目錄/usr/sam(/usr為默認的用戶主目錄所在的父目錄)。


  例2:

  
代碼:
# useradd -s /bin/sh -g group –G adm,root gem


  此命令新建了一個用戶gem,該用戶的登錄Shell是/bin/sh,它屬于group用戶組,同時又屬于adm和root用戶組,其中g(shù)roup用戶組是其主組。
  這里可能新建組:#groupadd group及groupadd adm 
 
  增加用戶賬號就是在/etc/passwd文件中為新用戶增加一條記錄,同時更新其他系統(tǒng)文件如/etc/shadow, /etc/group等。

  Linux提供了集成的系統(tǒng)管理工具userconf,它可以用來對用戶賬號進行統(tǒng)一管理。


3、刪除帳號

  如果一個用戶的賬號不再使用,可以從系統(tǒng)中刪除。刪除用戶賬號就是要將/etc/passwd等系統(tǒng)文件中的該用戶記錄刪除,必要時還刪除用戶的主目錄。刪除一個已有的用戶賬號使用userdel命令,其格式如下:

  
代碼:
userdel 選項 用戶名


  常用的選項是-r,它的作用是把用戶的主目錄一起刪除。

  例如:

  
代碼:
# userdel sam


  此命令刪除用戶sam在系統(tǒng)文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的記錄,同時刪除用戶的主目錄。


4、修改帳號

  修改用戶賬號就是根據(jù)實際情況更改用戶的有關(guān)屬性,如用戶號、主目錄、用戶組、登錄Shell等。

  修改已有用戶的信息使用usermod命令,其格式如下:

  
代碼:
usermod 選項 用戶名


  常用的選項包括-c, -d, -m, -g, -G, -s, -u以及-o等,這些選項的意義與useradd命令中的選項一樣,可以為用戶指定新的資源值。另外,有些系統(tǒng)可以使用如下選項:

  
代碼:
-l 新用戶名


  這個選項指定一個新的賬號,即將原來的用戶名改為新的用戶名。

  例如:

  
代碼:
# usermod -s /bin/ksh -d /home/z –g developer sam


  此命令將用戶sam的登錄Shell修改為ksh,主目錄改為/home/z,用戶組改為developer。


5、用戶口令的管理

  用戶管理的一項重要內(nèi)容是用戶口令的管理。用戶賬號剛創(chuàng)建時沒有口令,但是被系統(tǒng)鎖定,無法使用,必須為其指定口令后才可以使用,即使是指定空口令。

  指定和修改用戶口令的Shell命令是passwd。超級用戶可以為自己和其他用戶指定口令,普通用戶只能用它修改自己的口令。命令的格式為:

  
代碼:
passwd 選項 用戶名


  可使用的選項:

代碼:
  -l 鎖定口令,即禁用賬號。
  -u 口令解鎖。
  -d 使賬號無口令。
  -f 強迫用戶下次登錄時修改口令。
  如果默認用戶名,則修改當前用戶的口令。


  例如,假設(shè)當前用戶是sam,則下面的命令修改該用戶自己的口令:

代碼:
  $ passwd
  Old passWord:******

[1] [2] [3] [4] [5] 下一頁  

  New password:*******
  Re-enter new password:*******


  如果是超級用戶,可以用下列形式指定任何用戶的口令:

代碼:
  # passwd sam
  New password:*******
  Re-enter new password:*******


  普通用戶修改自己的口令時,passwd命令會先詢問原口令,驗證后再要求用戶輸入兩遍新口令,如果兩次輸入的口令一致,則將這個口令指定給用戶;而超級用戶為用戶指定口令時,就不需要知道原口令。

  為了系統(tǒng)安全起見,用戶應(yīng)該選擇比較復(fù)雜的口令,例如最好使用8位長的口令,口令中包含有大寫、小寫字母和數(shù)字,并且應(yīng)該與姓名、生日等不相同。

  為用戶指定空口令時,執(zhí)行下列形式的命令:

  
代碼:
# passwd -d sam


  此命令將用戶sam的口令刪除,這樣用戶sam下一次登錄時,系統(tǒng)就不再詢問口令。

  passwd命令還可以用-l(lock)選項鎖定某一用戶,使其不能登錄,例如:

  
代碼:
# passwd -l sam
二、Linux系統(tǒng)用戶組的管理

  每個用戶都有一個用戶組,系統(tǒng)可以對一個用戶組中的所有用戶進行集中管理。不同Linux 系統(tǒng)對用戶組的規(guī)定有所不同,如Linux下的用戶屬于與它同名的用戶組,這個用戶組在創(chuàng)建用戶時同時創(chuàng)建。
  用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group文件的更新。

1、增加一個新的用戶組使用groupadd命令。其格式如下:
  
代碼:
groupadd 選項 用戶組

  可以使用的選項有:
代碼:
  -g GID 指定新用戶組的組標識號(GID)。
  -o 一般與-g選項同時使用,表示新用戶組的GID可以與系統(tǒng)已有用戶組的GID相同。

  例1:
  
代碼:
# groupadd group1

  此命令向系統(tǒng)中增加了一個新組group1,新組的組標識號是在當前已有的最大組標識號的基礎(chǔ)上加1。

  例2:
  
代碼:
#groupadd -g 101 group2

  此命令向系統(tǒng)中增加了一個新組group2,同時指定新組的組標識號是101。

2、如果要刪除一個已有的用戶組,使用groupdel命令,其格式如下:
  
代碼:
groupdel 用戶組

  例如:
  
代碼:
#groupdel group1

  此命令從系統(tǒng)中刪除組group1。

3、修改用戶組的屬性使用groupmod命令。其語法如下:
  
代碼:
groupmod 選項 用戶組

  常用的選項有:
代碼:
  -g GID 為用戶組指定新的組標識號。
  -o 與-g選項同時使用,用戶組的新GID可以與系統(tǒng)已有用戶組的GID相同。
  -n新用戶組 將用戶組的名字改為新名字


  例1:
  
代碼:
# groupmod -g 102 group2

  此命令將組group2的組標識號修改為102。

  例2:
  
代碼:
# groupmod –g 10000 -n group3 group2

  此命令將組group2的標識號改為10000,組名修改為group3。

4、如果一個用戶同時屬于多個用戶組,那么用戶可以在用戶組之間切換,以便具有其他用戶組的權(quán)限。用戶可以在登錄后,使用命令newgrp切換到其他用戶組,這個命令的參數(shù)就是目的用戶組。例如:
  
代碼:
$ newgrp root

  這條命令將當前用戶切換到root用戶組,前提條件是root用戶組確實是該用戶的主組或附加組。類似于用戶賬號的管理,用戶組的管理也可以通過集成的系統(tǒng)管理工具來完成。
三、與用戶賬號有關(guān)的系統(tǒng)文件

  完成用戶管理的工作有許多種方法,但是每一種方法實際上都是對有關(guān)的系統(tǒng)文件進行修改。與用戶和用戶組相關(guān)的信息都存放在一些系統(tǒng)文件中,這些文件包括/etc/passwd, /etc/shadow, /etc/group等。下面分別介紹這些文件的內(nèi)容。

1、/etc/passwd文件是用戶管理工作涉及的最重要的一個文件。Linux系統(tǒng)中的每個用戶都在/etc/passwd文件中有一個對應(yīng)的記錄行,它記錄了這個用戶的一些基本屬性。這個文件對所有用戶都是可讀的。它的內(nèi)容類似下面的例子:

代碼:
  # cat /etc/passwd

  root:x:0:0:Superuser:/:
  daemon:x:1:1:System daemons:/etc:
  bin:x:2:2:Owner of system commands:/bin:
  sys:x:3:3:Owner of system files:/usr/sys:
  adm:x:4:4:System accounting:/usr/adm:
  uUCp:x:5:5:UUCP administrator:/usr/lib/uucp:
  auth:x:7:21:Authentication administrator:/tcb/files/auth:
  cron:x:9:16:Cron daemon:/usr/spool/cron:
  listen:x:37:4:Network daemon:/usr/net/nls:
  lp:x:71:18:Printer administrator:/usr/spool/lp:
從上面的例子我們可以看到,/etc/passwd中一行記錄對應(yīng)著一個用戶,每行記錄又被冒號(icon_smile.gif分隔為7個字段,其格式和具體含義如下:

上一頁 [1] [2] [3] [4] [5] 下一頁  


  
代碼:
用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell


  1)“用戶名”是代表用戶賬號的字符串。通常長度不超過8個字符,并且由大小寫字母和/或數(shù)字組成。登錄名中不能有冒號 (icon_smile.gif,因為冒號在這里是分隔符。為了兼容起見,登錄名中最好不要包含點字符(.),并且不使用連字符(-)和加號(+)打頭。

  2)“口令”一些系統(tǒng)中,存放著加密后的用戶口令字。。雖然這個字段存放的只是用戶口令的加密串,不是明文,但是由于/etc/passwd 文件對所有用戶都可讀,所以這仍是一個安全隱患。因此,現(xiàn)在許多 Linux 系統(tǒng)(如SVR4)都使用了shadow技術(shù),把真正的加密后的用戶口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一個特殊的字符,例如“x”或者“*”。

  3)“用戶標識號”是一個整數(shù),系統(tǒng)內(nèi)部用它來標識用戶。一般情況下它與用戶名是一一對應(yīng)的。如果幾個用戶名對應(yīng)的用戶標識號是一樣的,系統(tǒng)內(nèi)部將把它們視為同一個用戶,但是它們可以有不同的口令、不同的主目錄以及不同的登錄Shell等。

  通常用戶標識號的取值范圍是0~65 535。0是超級用戶root的標識號,1~99由系統(tǒng)保留,作為管理賬號,普通用戶的標識號從100開始。在Linux系統(tǒng)中,這個界限是500。

  4)“組標識號”字段記錄的是用戶所屬的用戶組。它對應(yīng)著/etc/group文件中的一條記錄。

  5)“注釋性描述”字段記錄著用戶的一些個人情況,例如用戶的真實姓名、電話、地址等,這個字段并沒有什么實際的用途。在不同的Linux 系統(tǒng)中,這個字段的格式并沒有統(tǒng)一。在許多Linux系統(tǒng)中,這個字段存放的是一段任意的注釋性描述文字,用做finger命令的輸出。

  6)“主目錄”,也就是用戶的起始工作目錄,它是用戶在登錄到系統(tǒng)之后所處的目錄。在大多數(shù)系統(tǒng)中,各用戶的主目錄都被組織在同一個特定的目錄下,而用戶主目錄的名稱就是該用戶的登錄名。各用戶對自己的主目錄有讀、寫、執(zhí)行(搜索)權(quán)限,其他用戶對此目錄的訪問權(quán)限則根據(jù)具體情況設(shè)置。

  7)用戶登錄后,要啟動一個進程,負責將用戶的操作傳給內(nèi)核,這個進程是用戶登錄到系統(tǒng)后運行的命令解釋器或某個特定的程序,即Shell。 Shell 是用戶與Linux系統(tǒng)之間的接口。Linux的Shell有許多種,每種都有不同的特點。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。系統(tǒng)管理員可以根據(jù)系統(tǒng)情況和用戶習(xí)慣為用戶指定某個Shell。如果不指定Shell,那么系統(tǒng)使用sh為默認的登錄Shell,即這個字段的值為/bin/sh。

  用戶的登錄Shell也可以指定為某個特定的程序(此程序不是一個命令解釋器)。利用這一特點,我們可以限制用戶只能運行指定的應(yīng)用程序,在該應(yīng)用程序運行結(jié)束后,用戶就自動退出了系統(tǒng)。有些Linux 系統(tǒng)要求只有那些在系統(tǒng)中登記了的程序才能出現(xiàn)在這個字段中。


  icon_cool.gif系統(tǒng)中有一類用戶稱為偽用戶(psuedo users),這些用戶在/etc/passwd文件中也占有一條記錄,但是不能登錄,因為它們的登錄Shell為空。它們的存在主要是方便系統(tǒng)管理,滿足相應(yīng)的系統(tǒng)進程對文件屬主的要求。常見的偽用戶如下所示。

代碼:
偽 用 戶 含 義
bin 擁有可執(zhí)行的用戶命令文件
sys 擁有系統(tǒng)文件
adm 擁有帳戶文件
uucp UUCP使用
lp lp或lpd子系統(tǒng)使用
nobody NFS使用

擁有帳戶文件

  除了上面列出的偽用戶外,還有許多標準的偽用戶,例如:audit, cron, mail, usenet等,它們也都各自為相關(guān)的進程和文件所需要。

  由于/etc/passwd文件是所有用戶都可讀的,如果用戶的密碼太簡單或規(guī)律比較明顯的話,一臺普通的計算機就能夠很容易地將它破解,因此對安全性要求較高的Linux系統(tǒng)都把加密后的口令字分離出來,單獨存放在一個文件中,這個文件是/etc/shadow文件。只有超級用戶才擁有該文件讀權(quán)限,這就保證了用戶密碼的安全性。


2、/etc/shadow中的記錄行與/etc/passwd中的一一對應(yīng),它由pwconv命令根據(jù)/etc/passwd中的數(shù)據(jù)自動產(chǎn)生。它的文件格式與/etc/passwd類似,由若干個字段組成,字段之間用“:”隔開。這些字段是:

  
代碼:
登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志


  1)“登錄名”是與/etc/passwd文件中的登錄名相一致的用戶賬號
  2)“口令”字段存放的是加密后的用戶口令字,長度為13個字符。如果為空,則對應(yīng)用戶沒有口令,登錄時不需要口令;如果含有不屬于集合 { ./0-9A-Za-z }中的字符,則對應(yīng)的用戶不能登錄。
  3)“最后一次修改時間”表示的是從某個時刻起,到用戶最后一次修改口令時的天數(shù)。時間起點對不同的系統(tǒng)可能不一樣。例如在SCO Linux 中,這個時間起點是1970年1月1日。
  4)“最小時間間隔”指的是兩次修改口令之間所需的最小天數(shù)。
  5)“最大時間間隔”指的是口令保持有效的最大天數(shù)。
  6)“警告時間”字段表示的是從系統(tǒng)開始警告用戶到用戶密碼正式失效之間的天數(shù)。
  7)“不活動時間”表示的是用戶沒有登錄活動但賬號仍能保持有效的最大天數(shù)。
  8)“失效時間”字段給出的是一個絕對的天數(shù),如果使用了這個字段,那么就給出相應(yīng)賬號的生存期。期滿后,該賬號就不再是一個合法的賬號,也就不能再用來登錄了。

  下面是/etc/shadow的一個例子:

  
代碼:
# cat /etc/shadow
daemon:*::0:0::::
  bin:*::0:0::::
  sys:*::0:0::::
  adm:*::0:0::::
  uucp:*::0:0::::
  nuucp:*::0:0::::

上一頁 [1] [2] [3] [4] [5] 下一頁  

  auth:*::0:0::::
  cron:*::0:0::::
  listen:*::0:0::::
  lp:*::0:0::::
  sam:EkdiSECLWPdSa:9740:0:0::::


3、用戶組的所有信息都存放在/etc/group文件中。

將用戶分組是Linux 系統(tǒng)中對用戶進行管理及控制訪問權(quán)限的一種手段。每個用戶都屬于某個用戶組;一個組中可以有多個用戶,一個用戶也可以屬于不同的組。當一個用戶同時是多個組中的成員時,在/etc/passwd文件中記錄的是用戶所屬的主組,也就是登錄時所屬的默認組,而其他組稱為附加組。用戶要訪問屬于附加組的文件時,必須首先使用newgrp命令使自己成為所要訪問的組中的成員。用戶組的所有信息都存放在/etc/group文件中。此文件的格式也類似于 /etc/passwd文件,由冒號(icon_smile.gif隔開若干個字段,這些字段有:

  
代碼:
組名:口令:組標識號:組內(nèi)用戶列表


  1)“組名”是用戶組的名稱,由字母或數(shù)字構(gòu)成。與/etc/passwd中的登錄名一樣,組名不應(yīng)重復(fù)。
  2)“口令”字段存放的是用戶組加密后的口令字。一般Linux 系統(tǒng)的用戶組都沒有口令,即這個字段一般為空,或者是*。
  3)“組標識號”與用戶標識號類似,也是一個整數(shù),被系統(tǒng)內(nèi)部用來標識組。
  4)“組內(nèi)用戶列表”是屬于這個組的所有用戶的列表/b],不同用戶之間用逗號(,)分隔。這個用戶組可能是用戶的主組,也可能是附加組。

  /etc/group文件的一個例子如下:

  # cat /etc/group

代碼:
  root::0:root
  bin::2:root,bin
  sys::3:root,uucp
  adm::4:root,adm
  daemon::5:root,daemon
  lp::7:root,lp
  users::20:root,sam

四、添加量用戶批

  添加和刪除用戶對每位Linux系統(tǒng)管理員都是輕而易舉的事,比較棘手的是如果要添加幾十個、上百個甚至上千個用戶時,我們不太可能還使用 useradd一個一個地添加,必然要找一種簡便的創(chuàng)建大量用戶的方法。Linux系統(tǒng)提供了創(chuàng)建大量用戶的工具,可以讓您立即創(chuàng)建大量用戶,方法如下:

  (1)先編輯一個文本用戶文件,每一列按照/etc/passwd密碼文件的格式書寫,要注意每個用戶的用戶名、UID、宿主目錄都不可以相同,其中密碼欄可以留做空白或輸入x號。一個范例文件user.txt內(nèi)容如下:

代碼:
  user001::600user:/home/user001:/bin/bash
  user002::601user:/home/user002:/bin/bash
  user003::602user:/home/user003:/bin/bash
  user004::603user:/home/user004:/bin/bash
  user005::604user:/home/user005:/bin/bash
  user006::605user:/home/user006:/bin/bash


  (2)以root身份執(zhí)行命令/usr/sbin/newusers,從剛創(chuàng)建的用戶文件user.txt中導(dǎo)入數(shù)據(jù),創(chuàng)建用戶:

  
代碼:
# newusers < user.txt


  然后可以執(zhí)行命令vipw或vi /etc/passwd檢查/etc/passwd文件是否已經(jīng)出現(xiàn)這些用戶的數(shù)據(jù),并且用戶的宿主目錄是否已經(jīng)創(chuàng)建。

  (3)執(zhí)行命令/usr/sbin/pwunconv,將/etc/shadow產(chǎn)生的shadow密碼解碼,然后回寫到 /etc/passwd中,并將/etc/shadow的shadow密碼欄刪掉。這是為了方便下一步的密碼轉(zhuǎn)換工作,即先取消shadow password功能。

  
代碼:
# pwunconv


  (4)編輯每個用戶的密碼對照文件,范例文件passwd.txt內(nèi)容如下:

代碼:
  user001:密碼
  user002:密碼
  user003:密碼
  user004:密碼
  user005:密碼
  user006:密碼


  (5)以root身份執(zhí)行命令/usr/sbin/chpasswd,創(chuàng)建用戶密碼,chpasswd會將經(jīng)過/usr/bin/passwd命令編碼過的密碼寫入/etc/passwd的密碼欄。

  
代碼:
# chpasswd < passwd.txt


  (6)確定密碼經(jīng)編碼寫入/etc/passwd的密碼欄后,執(zhí)行命令/usr/sbin/pwconv將密碼編碼為shadow password,并將結(jié)果寫入/etc/shadow。

  
代碼:
# pwconv


  這樣就完成了大量用戶的創(chuàng)建了,之后您可以到/home下檢查這些用戶宿主目錄的權(quán)限設(shè)置是否都正確,并登錄驗證用戶密碼是否正確。
五、賦予普通用戶特殊權(quán)限

  在Linux系統(tǒng)中,管理員往往不止一人,若每位管理員都用root身份進行管理工作,根本無法弄清楚誰該做什么。所以最好的方式是:管理員創(chuàng)建一些普通用戶,分配一部分系統(tǒng)管理工作給他們。

  我們不可以使用su讓他們直接變成root,因為這些用戶都必須知道root的密碼,這種方法很不安全,而且也不符合我們的分工需求。一般的做法是利用權(quán)限的設(shè)置,依工作性質(zhì)分類,讓特殊身份的用戶成為同一個工作組,并設(shè)置工作組權(quán)限。例如:要wwwadm這位用戶負責管理網(wǎng)站數(shù)據(jù),一般 Apache Web Server的進程httpd的所有者是www,您可以設(shè)置用戶wwwadm與www為同一工作組,并設(shè)置Apache默認存放網(wǎng)頁目錄 /usr/local/httpd/htdocs的工作組權(quán)限為可讀、可寫、可執(zhí)行,這樣屬于此工作組的每位用戶就可以進行網(wǎng)頁的管理了。

  但這并不是最好的解決辦法,例如管理員想授予一個普通用戶關(guān)機的權(quán)限,這時使用上述的辦法就不是很理想。這時您也許會想,我只讓這個用戶可以以root身份執(zhí)行shutdown命令就行了。完全沒錯,可惜在通常的Linux系統(tǒng)中無法實現(xiàn)這一功能,不過已經(jīng)有了工具可以實現(xiàn)這樣的功能—— sudo。

上一頁 [1] [2] [3] [4] [5] 下一頁  


  sudo通過維護一個特權(quán)到用戶名映射的數(shù)據(jù)庫將特權(quán)分配給不同的用戶,這些特權(quán)可由數(shù)據(jù)庫中所列的一些不同的命令來識別。為了獲得某一特權(quán)項,有資格的用戶只需簡單地在命令行輸入sudo與命令名之后,按照提示再次輸入口令(用戶自己的口令,不是root用戶口令)。例如,sudo允許普通用戶格式化磁盤,但是卻沒有賦予其他的root用戶特權(quán)。

1、sudo工具由文件/etc/sudoers進行配置,該文件包含所有可以訪問sudo工具的用戶列表并定義了他們的特權(quán)。一個典型的/etc/sudoers條目如下:

  
代碼:
liming ALL=(ALL) ALL


  這個條目使得用戶liming作為超級用戶訪問所有應(yīng)用程序,如用戶liming需要作為超級用戶運行命令,他只需簡單地在命令前加上前綴sudo。因此,要以root用戶的身份執(zhí)行命令format,liming可以輸入如下命令:

  
代碼:
# sudo /usr/sbin/useradd sam


  注意:命令要寫絕對路徑,/usr/sbin默認不在普通用戶的搜索路徑中,或者加入此路徑:PATH=$PATH:/usr/sbin;eXPort PATH。另外,不同系統(tǒng)命令的路徑不盡相同,可以使用命令“whereis 命令名”來查找其路徑。

  這時會顯示下面的輸出結(jié)果:

代碼:
  We trust you have received the usual lecture from the local System
  Administrator. It usually boils down to these two things:
  #1) Respect the privacy of others.
  #2) Think before you type.
  Password:


  如果liming正確地輸入了口令,命令useradd將會以root用戶身份執(zhí)行。

  注意:配置文件/etc/sudoers必須使用命令 Visudo來編輯。

  只要把相應(yīng)的用戶名、主機名和許可的命令列表以標準的格式加入到文件/etc/sudoers,并保存就可以生效,再看一個例子。

2、例子:管理員需要允許gem用戶在主機sun上執(zhí)行reboot和shutdown命令,在/etc/sudoers中加入:

  
代碼:
gem sun=/usr/sbin/reboot,/usr/sbin/shutdown


  注意:命令一定要使用絕對路徑,以避免其他目錄的同名命令被執(zhí)行,從而造成安全隱患。

  然后保存退出,gem用戶想執(zhí)行reboot命令時,只要在提示符下運行下列命令:

  
代碼:
$ sudo /usr/sbin/reboot


  輸入正確的密碼,就可以重啟服務(wù)器了。

  如果您想對一組用戶進行定義,可以在組名前加上%,對其進行設(shè)置,如:

  
代碼:
%cuug ALL=(ALL) ALL


3、另外,還可以利用別名來簡化配置文件。別名類似組的概念,有用戶別名、主機別名和命令別名。多個用戶可以首先用一個別名來定義,然后在規(guī)定他們可以執(zhí)行什么命令的時候使用別名就可以了,這個配置對所有用戶都生效。主機別名和命令別名也是如此。注意使用前先要在/etc/sudoers中定義: User_Alias, Host_Alias, Cmnd_Alias項,在其后面加入相應(yīng)的名稱,也以逗號分隔開就可以了,舉例如下:

代碼:
  Host_Alias SERVER=no1
  User_Alias ADMINS=liming,gem
  Cmnd_Alias SHUTDOWN=/usr/sbin/halt,/usr/sbin/shutdown,/usr/sbin/reboot
  ADMINS SERVER=SHUTDOWN


4、再看這個例子:

  
代碼:
ADMINS ALL=(ALL) NOPASSWD: ALL


  表示允許ADMINS不用口令執(zhí)行一切操作,其中“NOPASSWD:”項定義了用戶執(zhí)行操作時不需要輸入口令。

5、sudo命令還可以加上一些參數(shù),完成一些輔助的功能,如

  
代碼:
$ sudo –l


  會顯示出類似這樣的信息:

代碼:
  User liming may run the following commands on this host:
  (root) /usr/sbin/reboot


  說明root允許用戶liming執(zhí)行/usr/sbin/reboot命令。這個參數(shù)可以使用戶查看自己目前可以在sudo中執(zhí)行哪些命令。

6、在命令提示符下鍵入sudo命令會列出所有參數(shù),其他一些參數(shù)如下:

代碼:
  -V 顯示版本編號。
  -h 顯示sudo命令的使用參數(shù)。
  -v 因為sudo在第一次執(zhí)行時或是在N分鐘內(nèi)沒有執(zhí)行(N預(yù)設(shè)為5)會詢問密碼。這個參數(shù)是重新做一次確認,如果超過N分鐘,也會問密碼。
  -k 將會強迫使用者在下一次執(zhí)行sudo時詢問密碼(不論有沒有超過N分鐘)。
  -b 將要執(zhí)行的命令放在背景執(zhí)行。
  -p prompt 可以更改問密碼的提示語,其中%u會替換為使用者的賬號名稱,%h會顯示主機名稱。
  -u username/#uid 不加此參數(shù),代表要以root的身份執(zhí)行命令,而加了此參數(shù),可以以username的身份執(zhí)行命令(#uid為該username的UID)。
  -s 執(zhí)行環(huán)境變量中的 SHELL 所指定的 Shell ,或是 /etc/passwd 里所指定的 Shell。
  -H 將環(huán)境變量中的HOME(宿主目錄)指定為要變更身份的使用者的宿主目錄。(如不加-u參數(shù)就是系統(tǒng)管理者root。)


   要以系統(tǒng)管理者身份(或以-u更改為其他人)執(zhí)行的命令。
(出處:http://www.sheup.com)

上一頁 [1] [2] [3] [4] [5]  


  這時會顯示下面的輸出結(jié)果:

代碼:
  We trust you have received the usual lecture from the local System
  Administrator. It usually boils down to these two things:
  #1) Respect the privacy of others.
  #2) Think before you type.
  Password:


  如果liming正確地輸入了口令,命令useradd將會以root用戶身份執(zhí)行。

  注意:配置文件/etc/sudoers必須使用命令 Visudo來編輯。

  只要把相應(yīng)的用戶名、主機名和許可的命令列表以標準的格式加入到文件/etc/sudoers,并保存就可以生效,再看一個例子。

2、例子:管理員需要允許gem用戶在主機sun上執(zhí)行reboot和shutdown命令,在/etc/sudoers中加入:

  
代碼:
gem sun=/usr/sbin/reboot,/usr/sbin/shutdown


  注意:命令一定要使用絕對路徑,以避免其他目錄的同名命令被執(zhí)行,從而造成安全隱患。

  然后保存退出,gem用戶想執(zhí)行reboot命令時,只要在提示符下運行下列命令:

  
代碼:
$ sudo /usr/sbin/reboot


  輸入正確的密碼,就可以重啟服務(wù)器了。

  如果您想對一組用戶進行定義,可以在組名前加上%,對其進行設(shè)置,如:

  
代碼:
%cuug ALL=(ALL) ALL


3、另外,還可以利用別名來簡化配置文件。別名類似組的概念,有用戶別名、主機別名和命令別名。多個用戶可以首先用一個別名來定義,然后在規(guī)定他們可以執(zhí)行什么命令的時候使用別名就可以了,這個配置對所有用戶都生效。主機別名和命令別名也是如此。注意使用前先要在/etc/sudoers中定義: User_Alias, Host_Alias, Cmnd_Alias項,在其后面加入相應(yīng)的名稱,也以逗號分隔開就可以了,舉例如下:

代碼:
  Host_Alias SERVER=no1
  User_Alias ADMINS=liming,gem
  Cmnd_Alias SHUTDOWN=/usr/sbin/halt,/usr/sbin/shutdown,/usr/sbin/reboot
  ADMINS SERVER=SHUTDOWN


4、再看這個例子:

  
代碼:
ADMINS ALL=(ALL) NOPASSWD: ALL


  表示允許ADMINS不用口令執(zhí)行一切操作,其中“NOPASSWD:”項定義了用戶執(zhí)行操作時不需要輸入口令。

5、sudo命令還可以加上一些參數(shù),完成一些輔助的功能,如

  
代碼:
$ sudo –l


  會顯示出類似這樣的信息:

代碼:
  User liming may run the following commands on this host:
  (root) /usr/sbin/reboot


  說明root允許用戶liming執(zhí)行/usr/sbin/reboot命令。這個參數(shù)可以使用戶查看自己目前可以在sudo中執(zhí)行哪些命令。

6、在命令提示符下鍵入sudo命令會列出所有參數(shù),其他一些參數(shù)如下:

代碼:
  -V 顯示版本編號。
  -h 顯示sudo命令的使用參數(shù)。
  -v 因為sudo在第一次執(zhí)行時或是在N分鐘內(nèi)沒有執(zhí)行(N預(yù)設(shè)為5)會詢問密碼。這個參數(shù)是重新做一次確認,如果超過N分鐘,也會問密碼。
  -k 將會強迫使用者在下一次執(zhí)行sudo時詢問密碼(不論有沒有超過N分鐘)。
  -b 將要執(zhí)行的命令放在背景執(zhí)行。
  -p prompt 可以更改問密碼的提示語,其中%u會替換為使用者的賬號名稱,%h會顯示主機名稱。
  -u username/#uid 不加此參數(shù),代表要以root的身份執(zhí)行命令,而加了此參數(shù),可以以username的身份執(zhí)行命令(#uid為該username的UID)。
  -s 執(zhí)行環(huán)境變量中的 SHELL 所指定的 Shell ,或是 /etc/passwd 里所指定的 Shell。
  -H 將環(huán)境變量中的HOME(宿主目錄)指定為要變更身份的使用者的宿主目錄。(如不加-u參數(shù)就是系統(tǒng)管理者root。)


   要以系統(tǒng)管理者身份(或以-u更改為其他人)執(zhí)行的命令。
(出處:http://www.sheup.com)

上一頁 [1] [2] [3] [4] [5] [6]  


  
代碼:
liming ALL=(ALL) ALL


  這個條目使得用戶liming作為超級用戶訪問所有應(yīng)用程序,如用戶liming需要作為超級用戶運行命令,他只需簡單地在命令前加上前綴sudo。因此,要以root用戶的身份執(zhí)行命令format,liming可以輸入如下命令:

  
代碼:
# sudo /usr/sbin/useradd sam


  注意:命令要寫絕對路徑,/usr/sbin默認不在普通用戶的搜索路徑中,或者加入此路徑:PATH=$PATH:/usr/sbin;eXPort PATH。另外,不同系統(tǒng)命令的路徑不盡相同,可以使用命令“whereis 命令名”來查找其路徑。

  這時會顯示下面的輸出結(jié)果:

代碼:
  We trust you have received the usual lecture from the local System
  Administrator. It usually boils down to these two things:
  #1) Respect the privacy of others.
  #2) Think before you type.
  Password:


  如果liming正確地輸入了口令,命令useradd將會以root用戶身份執(zhí)行。

  注意:配置文件/etc/sudoers必須使用命令 Visudo來編輯。

  只要把相應(yīng)的用戶名、主機名和許可的命令列表以標準的格式加入到文件/etc/sudoers,并保存就可以生效,再看一個例子。

2、例子:管理員需要允許gem用戶在主機sun上執(zhí)行reboot和shutdown命令,在/etc/sudoers中加入:

  
代碼:
gem sun=/usr/sbin/reboot,/usr/sbin/shutdown


  注意:命令一定要使用絕對路徑,以避免其他目錄的同名命令被執(zhí)行,從而造成安全隱患。

  然后保存退出,gem用戶想執(zhí)行reboot命令時,只要在提示符下運行下列命令:

  
代碼:
$ sudo /usr/sbin/reboot


  輸入正確的密碼,就可以重啟服務(wù)器了。

  如果您想對一組用戶進行定義,可以在組名前加上%,對其進行設(shè)置,如:

  
代碼:
%cuug ALL=(ALL) ALL


3、另外,還可以利用別名來簡化配置文件。別名類似組的概念,有用戶別名、主機別名和命令別名。多個用戶可以首先用一個別名來定義,然后在規(guī)定他們可以執(zhí)行什么命令的時候使用別名就可以了,這個配置對所有用戶都生效。主機別名和命令別名也是如此。注意使用前先要在/etc/sudoers中定義: User_Alias, Host_Alias, Cmnd_Alias項,在其后面加入相應(yīng)的名稱,也以逗號分隔開就可以了,舉例如下:

代碼:
  Host_Alias SERVER=no1
  User_Alias ADMINS=liming,gem
  Cmnd_Alias SHUTDOWN=/usr/sbin/halt,/usr/sbin/shutdown,/usr/sbin/reboot
  ADMINS SERVER=SHUTDOWN


4、再看這個例子:

  
代碼:
ADMINS ALL=(ALL) NOPASSWD: ALL


  表示允許ADMINS不用口令執(zhí)行一切操作,其中“NOPASSWD:”項定義了用戶執(zhí)行操作時不需要輸入口令。

5、sudo命令還可以加上一些參數(shù),完成一些輔助的功能,如

  
代碼:
$ sudo –l


  會顯示出類似這樣的信息:

代碼:
  User liming may run the following commands on this host:
  (root) /usr/sbin/reboot


  說明root允許用戶liming執(zhí)行/usr/sbin/reboot命令。這個參數(shù)可以使用戶查看自己目前可以在sudo中執(zhí)行哪些命令。

上一頁 [1] [2] [3] [4] [5] [6] [7] [8] 下一頁  


6、在命令提示符下鍵入sudo命令會列出所有參數(shù),其他一些參數(shù)如下:

代碼:
  -V 顯示版本編號。
  -h 顯示sudo命令的使用參數(shù)。
  -v 因為sudo在第一次執(zhí)行時或是在N分鐘內(nèi)沒有執(zhí)行(N預(yù)設(shè)為5)會詢問密碼。這個參數(shù)是重新做一次確認,如果超過N分鐘,也會問密碼。
  -k 將會強迫使用者在下一次執(zhí)行sudo時詢問密碼(不論有沒有超過N分鐘)。
  -b 將要執(zhí)行的命令放在背景執(zhí)行。
  -p prompt 可以更改問密碼的提示語,其中%u會替換為使用者的賬號名稱,%h會顯示主機名稱。
  -u username/#uid 不加此參數(shù),代表要以root的身份執(zhí)行命令,而加了此參數(shù),可以以username的身份執(zhí)行命令(#uid為該username的UID)。
  -s 執(zhí)行環(huán)境變量中的 SHELL 所指定的 Shell ,或是 /etc/passwd 里所指定的 Shell。
  -H 將環(huán)境變量中的HOME(宿主目錄)指定為要變更身份的使用者的宿主目錄。(如不加-u參數(shù)就是系統(tǒng)管理者root。)


   要以系統(tǒng)管理者身份(或以-u更改為其他人)執(zhí)行的命令。
(出處:http://www.sheup.com)

上一頁 [1] [2] [3] [4] [5] [6] [7] [8]  



  表示允許ADMINS不用口令執(zhí)行一切操作,其中“NOPASSWD:”項定義了用戶執(zhí)行操作時不需要輸入口令。

5、sudo命令還可以加上一些參數(shù),完成一些輔助的功能,如

  
代碼:
$ sudo –l


  會顯示出類似這樣的信息:

代碼:
  User liming may run the following commands on this host:
  (root) /usr/sbin/reboot


  說明root允許用戶liming執(zhí)行/usr/sbin/reboot命令。這個參數(shù)可以使用戶查看自己目前可以在sudo中執(zhí)行哪些命令。

6、在命令提示符下鍵入sudo命令會列出所有參數(shù),其他一些參數(shù)如下:

代碼:
  -V 顯示版本編號。
  -h 顯示sudo命令的使用參數(shù)。
  -v 因為sudo在第一次執(zhí)行時或是在N分鐘內(nèi)沒有執(zhí)行(N預(yù)設(shè)為5)會詢問密碼。這個參數(shù)是重新做一次確認,如果超過N分鐘,也會問密碼。
  -k 將會強迫使用者在下一次執(zhí)行sudo時詢問密碼(不論有沒有超過N分鐘)。
  -b 將要執(zhí)行的命令放在背景執(zhí)行。
  -p prompt 可以更改問密碼的提示語,其中%u會替換為使用者的賬號名稱,%h會顯示主機名稱。
  -u username/#uid 不加此參數(shù),代表要以root的身份執(zhí)行命令,而加了此參數(shù),可以以username的身份執(zhí)行命令(#uid為該username的UID)。
  -s 執(zhí)行環(huán)境變量中的 SHELL 所指定的 Shell ,或是 /etc/passwd 里所指定的 Shell。
  -H 將環(huán)境變量中的HOME(宿主目錄)指定為要變更身份的使用者的宿主目錄。(如不加-u參數(shù)就是系統(tǒng)管理者root。)


   要以系統(tǒng)管理者身份(或以-u更改為其他人)執(zhí)行的命令。

關(guān)鍵字:Linux、用戶、用戶組、管理
分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機打開網(wǎng)站