❶ linux帳號管理詳解
對於Linux管理者來說,「帳號管理」是再也普通不過的一個環節了,但每次都要去查一大本的手冊實在是很浪費時間。我還是老老實實地花點心思把這些常用的功能都整理成一份文檔,方便以後的使用和學習,以後也都會繼續這樣做下去。
本文的所有案例與說明都是基於Ubuntu 16.04.3 LTS 64位操作系統,如果你的操作系統與我的不一樣,可能會出現不一樣的結果。但Linux的原理都是通用的,善於使用man可以幫助你更好的管理你的操作系統。
上圖一共列出了9個相關文件,但這里我只重點講解前三個文件,也即是 /etc/passwd、/etc/shadow 與 /etc/group。
1、/etc/passwd
User account information. --(明文的)用戶賬號信息
這個文件每一行都代表一個帳號,有幾行就代表有幾個帳號在你的系統中!不過需要特別注意的是,裡面很多帳號本來就是系統正常運行所必須的,我們可以簡稱它為系統帳號。這些帳號都是你不能隨便刪除的!
通過查看passwd(5)手冊可以查看/etc/passwd的文件結構:
文件結構說明:
「/etc/passwd」 第二項的內容說明
2、/etc/shadow
Secure user account information. -- 安全加密的用戶賬號信息
通過查看shadow(5)手冊也可以查看/etc/shadow的文件結構:
如shadow(5)中所述,這個文件中被 「:」 分隔的每項含義如下。
3、/etc/group
Group account information. -- 組信息
通過查看group(5)手冊也可以查看/etc/group的文件結構:
如group(5)中所述,這個文件中被「:」分隔的每項含義如下。
注意:
「/etc/gshadow」 為 「/etc/group」 提供了與 「/etc/shadow」 相似的功能,但沒有被真正地使用。
4、/etc/gshadow
Secure group account information. -- 安全加密的組信息
5、/etc/default/useradd
Default values for account creation. -- 創建用戶時的默認設置
6、/etc/skel/
Directory containing default files. -- 用戶主目錄的默認內容
7、/etc/subgid
Per user subordinate group IDs.
8、/etc/subuid
Per user subordinate user IDs.
9、/etc/login.defs
Shadow password suite configuration.
1、添加用戶 -- useradd
useradd -- create a new user or update default new user information.
常用參數:
例1:最簡單的例子
例2:創建一個可以使用的帳號
例3:查看useradd默認設置
使用useradd創建用戶時還會參考文件/etc/login.defs的設置,比如UID/GID的指定數值、用戶主文件夾設置值、用戶刪除與密碼設置值等,這里也不做深入討論了。
2、用戶密碼管理 -- passwd
passwd - change user password
常用參數:
3、用戶密碼管理 -- chage
chage - change user password expiry information
4、用戶信息修改 -- usermod
usermod - modify a user account
當然,以上的修改你也可以通過手動修改相關的配置文件來達到一樣的目的。
5、刪除用戶 -- userdel
userdel - delete a user account and related files
注意:
1)一般而言,該帳號如果只是暫時不啟用的話,那麼將/etc/shadow裡面帳號失效日期(第八欄位)設置為0就可以讓該帳號無法登錄,但所有相關的數據都會留下來。使用userdel的時候通常是你真的確定不要該用戶在主機上面用任何數據了!
2)如果想要完整地將某個帳號刪除,最好可以執行userdel -r username之前,先以「find / -user username」查出整個系統內屬於username的文件,然後再進行刪除。
1、初始用戶組(initial group)與 有效用戶組(effective group):
在/etc/passwd裡面的第四列有一個所謂的GID,它就是「 初始用戶組 」。也就是說,當用戶登錄系統,立刻就擁有這個用戶組的相關許可權的意思。
有效用戶組:即帳號當前(實時)所使用的用戶組。
次要用戶組:次要用戶組就是除了用戶的初始用戶組外的其它所屬組,在/etc/group的最後一個欄位中所設置,可以有多個(多個用逗號','隔開)。
使用usermod -g可以修改初始用戶組,而使用usermod -G則可以修改次要用戶組。
例1:修改用戶次要用戶組
例2:有效與支持用戶組的查看
在這個輸出的信息中,可知道nosee這個用戶同時屬於nosee及users這兩個組,而且,第一個輸出的即為「 有效用戶組 」。也就是說,上面例子中的有效用戶組為nosee。
2、有效用戶組的切換 -- newgrp
上面例子中,nosee的有效用戶組從nosee轉變成了users。
現在我們來深入討論下newgrp這個命令,這個命令可以更改目前用戶的有效用戶組,而且是另外以一個新的shell來提供這個功能。因此如果你想要回到原本的環境中,只需要輸入exit即可。
3、新增用戶組 -- groupadd
groupadd - create a new group
常用參數:
4、用戶組參數修改 -- groupmod
groupmod - modify a group definition on the system
常用參數:
注意:不要隨意改動GID,容易造成系統資源的錯亂。
5、刪除用戶組 -- groupdel
groupdel - delete a group
注意,只有在/etc/passwd內沒有任何用戶使用該用戶組的作為初始用戶組的時候,才可以成功刪除。
6、用戶組管理員功能 -- gpasswd
gpasswd - administer /etc/group and /etc/gshadow
1)系統管理員(root)的常用參數
2)用戶組管理員(Group administrators)的常用參數
1、su
su - change user ID or become superuser
su是最簡單的身份切換命令了,它可以進行任何身份的切換。
常用參數:
注意:
1)這個su的用法當中,有沒有加上「-」差很多的,轉為涉及login-shell與not-login shell的變數讀取方法。即想要完整的切換到新用戶的環境,可以利用「su - username」或「su -l username」。
2)使用root切換到任何用戶時,都不需要輸入密碼
3)當從其它用戶切換到root用戶時都必須輸入root的密碼,這樣root的密碼就很容易流傳出去,這是很不妥當的,所以才會有sudo這個命令的出現。
2、sudo
sudo, sudoedit — execute a command as another user
sudo的執行僅需要自己的密碼,甚至可以設置不需要密碼即可執行sudo。由於sudo可以讓你以其他的用戶身份執行命令(通常是root的身份),因此並不是所有人才能執行sudo,而是僅有/etc/sudoers內的用戶才能夠執行so這個命令。
/etc/sudoers文件內容如下:
常用參數:
例:使用nosee的身份在/home/nosee/目錄下新建一個test文件
sudo的執行流程:
1)當用戶執行sudo時,系統於/etc/sudoers文件查找該用戶是否有執行sudo的許可權;
2)若用戶具有可執行sudo的許可權後,便讓用戶輸入自己的密碼來確認;
3)若密碼輸入成功,便開始進行sudo後續接的命令(但root執行sudo時不需要輸入密碼);
4)若欲切換的用戶與執行者身份相同,那也不需要輸入密碼。
因為/etc/sudoers文件有一定的規則,所以我們一幫不直接用vi去編輯。一般,我們都是使用visudo來修改這個文件。
3、visudo
因為/etc/sudoers是有語法的,如果設置錯誤那會造成無法使用sudo的不良後果,因此才會使用visudo去修改。
一般來說,visudo的設置方式有幾種簡單的方法,正面我們以幾個簡單的例子來說明:
1)單一用戶可以進行root的所有命令與sudoer文件語法
例:讓用戶nosee可以使用root的所有命令
2)利用用戶組及免密功能處理visudo
例:讓nosee用戶組可以使用root的所有命令,並且不需要輸入密碼
注意:用戶組的表示只需要在前面加一個百分號%即可,NOPASSWD則是免密的關鍵字。
3)有限制的命令操作
例:讓user1用戶僅能使用passwd這個命令幫root修改其他用戶的密碼
注意:最後一個參數一定要用絕對路徑才行,否則visudo會出現語法錯誤。
但這里有個可怕的地方,就是用戶user1竟然也可以去修改root的密碼了,這是不應該允許發生的,為了避免上述的問題,應該使用下面的這種配置:
上面參數的意思是,用戶user1可以執行「passwd 任意字元串」,但是「passwd」與「passwd root」兩個命令除外。
4)通過別名設置visudo
5)sudo的時間間隔問題
兩次執行sudo的間隔時間在5分鍾內,那麼再次執行sudo時就不需要再次輸入密碼。
6)sudo搭配su的使用方式
很多時候我們需要大量執行很多root的工作,所以一直sudo覺得麻煩。這里有一個變身root用戶的辦法,而且還不會外泄root密碼,前提是你要非常信任你將要為他們做此次設置的用戶。
1、查看用戶當前所用的shell
1)實時查看當前進程中使用的shell種類:推薦
2)最常用的查看shell的命令,但不能實時反映當前shell
3)環境變數中shell的匹配查找
4)口令文件中shell的匹配查找
2、強制踢出已登錄用戶
或也可以給他發送一條信息。
3、adser
adser也可以用於用戶的添加,感覺興趣的同學可以自行去查閱相關的資料。
1、《鳥哥的Linux私房菜基礎學習篇》-- 鳥哥
2、 Debian官方參考手冊
如發現有寫得不對或不好的地方非常歡迎到評論區指出與交流,感謝閱讀!
——《完》
❷ 用戶配置文件怎麼給某些用戶或組群配置許可權
linux下會將一個用戶分配到一個用戶組內,進行統一管理,所以,linux下會建立一個passwd表和group表,這兩個表負責管理用戶和用戶組,並且會將兩個表中的密碼進行單獨提出,分配兩個表分別是shadow負責管理用戶密碼和gshadow負責管理用戶組密碼。
1.passwd:
組名:口令:組管理者:組內用戶列表
1) 組名: 是用戶組的名稱,由字母或數字構成。
2) 口令:用戶組密碼,這個段可以是空的或!,如果是空的或有!,表示沒有密碼
3) 組管理者:這個欄位也可為空,如果有多個用戶組管理者,用,號分割
4) 組內用戶列表:如果有多個成員,用,號分割;
重心:
關於組和組列表已經講解完了,我們開始通過命令的方式添加一個用戶讓大家做詳細了解。我們要做的就是在最後一行復制一個進行修改就可以了
以tom為名字
添加passwd中的用戶
[root@bogon /]# vim /etc/passwd
添加shadow中密碼行
[root@bogon /]# vim /etc/shadow
添加一個group組
[root@bogon /]# vim /etc/group
添加一個group組密碼
[root@bogon /]# vim /etc/gshadow
創建一個home文件夾
[root@bogon /]# mkdir /home/tom
拷貝 出事文件到tom文件夾下
[root@bogon /]# cp -r /etc/skel/ /home/tom/
修改所屬用戶和用戶組
[root@bogon /]# chown -R tom:tom /home/tom/
添加一個新文件到mail下
[root@bogon /]# touch /car/spool/mail/tom
修改所屬用戶組
[root@bogon /]# chown tom:mail/car/spool/mail/tom
這樣就做好了
我們可以用userdel tom 刪除這個用戶如果直接刪除就說明完全正確
開拓:
Linux下為目錄和文件設置許可權,包括子目錄的循環遞歸設置
chmod 命令可以改變所有子目錄的許可權,下面有2種方法
改變一個文件的許可權: chmod mode file|dir
改變所有子目錄的許可權: chmod mode dir -R 注意後面加了個-R參數
參數就是許可權模式 mode = 777 or 752 ,666,,,
mode 的三個數字,分別表示owner,group,others所具有的許可權。
1 = x 執行 2 = w 寫 4 = r 讀,比如owner具有所有許可權,1+2+4=7,
又比如group 具有讀 和執行許可權 1+4 = 5
把目錄/his及其下的所有文件和子目錄的屬主改成wang,屬組改成users。
$ chown –R wang.users /his
上傳了個 Wordpress,在線解壓後發現文件沒有寫入許可權, 於是用了 chmod 777
filename
但只改了該文件, 文件內的文件還是沒有寫入許可權, 網上查了一下,
修改linux文件許可權命令:chmod
用法:chmod XXX filename
×××(所有者組用戶其他用戶)
×=4 讀的許可權
×=2 寫的許可權
×=1 執行的許可權
常用修改許可權的命令:
sudo chmod 600 ××× (只有所有者有讀和寫的許可權)
sudo chmod 644 ××× (所有者有讀和寫的許可權,組用戶只有讀的許可權)
sudo chmod 700 ××× (只有所有者有讀和寫以及執行的許可權)
sudo chmod 666 ××× (每個人都有讀和寫的許可權)
sudo chmod 777 ××× (每個人都有讀和寫以及執行的許可權)
例如:
- rw- r–r–
普通文件 文件主組用戶其他用戶
是文件sobsrc.tgz 的訪問許可權,表示sobsrc.tgz是一個普通文件;sobsrc.tgz
的屬主有讀寫許可權;與sobsrc.tgz屬主同組的用戶只有讀許可權;其他用戶也只有讀許可權。
確定了一個文件的訪問許可權後,用戶可以利用Linux系統提供的chmod命令來重新設
定不同的訪問許可權。也可以利用chown命令來更改某個文件或目錄的所有者。利用chgrp
命令來更改某個文件或目錄的用戶組。
下面分別對這些命令加以介紹。
chmod 命令
chmod 命令是非常重要的,用於改變文件或目錄的訪問許可權。用戶用它控制文件或目
錄的訪問許可權。
該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字
的數字設定法。
1. 文字設定法
chmod [who] [+ | –| =] [mode]文件名?
命令中各選項的含義為:
操作對象who可是下述字母中的任一個或者它們的組合:
u 表示」用戶(user)」,即文件或目錄的所有者。
g 表示」同組(group)用戶」,即與文件屬主有相同組ID的所有用戶。
o 表示」其他(others)用戶」。
a 表示」所有(all)用戶」。它是系統默認值。
操作符號可以是:
+ 添加某個許可權。
- 取消某個許可權。
= 賦予給定許可權並取消其他所有許可權(如果有的話)。
設置mode所表示的許可權可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執行。
X 只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
s 在文件執行時把進程的屬主或組ID置為該文件的文件屬主。方式」u+s」設置文件
的用戶ID位,」g+s」設置組ID位。
t 保存程序的文本到交換設備上。
u 與文件屬主擁有一樣的許可權。
g 與和文件屬主同組的用戶擁有一樣的許可權。
o 與其他用戶擁有一樣的許可權。
文件名:以空格分開的要改變許可權的文件列表,支持通配符。
在一個命令行中可給出多個許可權方式,其間用逗號隔開。例如:chmod g+r,o+r
example
使同組和其他用戶對文件example 有讀許可權。
2. 數字設定法
我們必須首先了解用數字表示的屬性的含義:0 表示沒有許可權,1 表示可執行許可權,2
表示可寫許可權,4 表示可讀許可權,然後將其相加。所以數字屬性的格式應為3個從0 到7
的八進制數,其順序是(u)(g)(o)。
例如,如果想讓某個文件的屬主有」讀/寫」二種許可權,需要把4 (可讀)+2 (可寫)
=6 (讀/寫)。
數字設定法的一般形式為:
chmod [mode]文件名?
例子:
(1)文字設定法:
例1:$ chmod a+x sort
即設定文件sort 的屬性為:
文件屬主(u)增加執行許可權
與文件屬主同組用戶(g)增加執行許可權
其他用戶(o)增加執行許可權
例2:$ chmod ug+w,o-x text
即設定文件text的屬性為:
文件屬主(u)增加寫許可權
與文件屬主同組用戶(g)增加寫許可權
其他用戶(o)刪除執行許可權
例3:$ chmod u+s a.out
假設執行chmod後a.out 的許可權為(可以用ls –l a.out命令來看):
-rws–x–x 1 inin users 7192 Nov 4 14:22 a.out
並且這個執行文件要用到一個文本文件shiyan1.c,其文件存取許可權為」-rw——-」,
即該文件只有其屬主具有讀寫許可權。
當其他用戶執行a.out這個程序時,他的身份因這個程序暫時變成inin(由於chmod
命令中使用了s選項),所以他就能夠讀取shiyan1.c這個文件(雖然這個文件被設定為
其他人不具備任何許可權),這就是s 的功能。
因此,在整個系統中特別是root本身,最好不要過多的設置這種類型的文件(除非必
要)這樣可以保障系統的安全,避免因為某些程序的bug而使系統遭到入侵。
例4:$ chmod a-x mm.txt
$ chmod -x mm.txt
$ chmod ugo-x mm.txt
以上這三個命令都是將文件mm.txt 的執行許可權刪除,它設定的對象為所有使用者。
(2)數字設定法:
例1:$ chmod 644 mm.txt
$ ls -l
即設定文件mm.txt的屬性為:
-rw-r–r–1 inin users 1155 Nov 5 11:22 mm.txt
文件屬主(u)inin 擁有讀、寫許可權
與文件屬主同組人用戶(g)擁有讀許可權
其他人(o)擁有讀許可權
例2:$ chmod 750 wch.txt
$ ls -l
-rwxr-x— 1 inin users 44137 Nov 12 9:22 wchtxt
即設定wchtxt這個文件的屬性為:
文件主本人(u)inin 可讀/可寫/可執行權
與文件主同組人(g)可讀/可執行權
其他人(o)沒有任何許可權
chgrp命令
功能:改變文件或目錄所屬的組。
語法:chgrp [選項]group filename?
該命令改變指定指定文件所屬的用戶組。其中 group 可以是用戶組 ID,也可以是
/etc/group 文件中用戶組的組名。文件名是以空格分開的要改變屬組的文件列表,支持
通配符。如果用戶不是該文件的屬主或超級用戶,則不能改變該文件的組。
該命令的各選項含義為:
- R 遞歸式地改變指定目錄及其下的所有子目錄和文件的屬組。
例1:$ chgrp –R book /opt/local /book
改變/opt/local /book/及其子目錄下的所有文件的屬組為book。
chown 命令
功能:更改某個文件或目錄的屬主和屬組。這個命令也很常用。例如root用戶把自己
的一個文件拷貝給用戶xu,為了讓用戶xu能夠存取這個文件,root用戶應該把這個文件
的屬主設為xu,否則,用戶xu無法存取這個文件。
語法:chown [選項]用戶或組文件
說明:chown將指定文件的擁有者改為指定的用戶或組。用戶可以是用戶名或用戶ID。
組可以是組名或組ID。文件是以空格分開的要改變許可權的文件列表,支持通配符。
該命令的各選項含義如下:
- R 遞歸式地改變指定目錄及其下的所有子目錄和文件的擁有者。
- v 顯示chown命令所做的工作。
例1:把文件shiyan.c 的所有者改為wang。
$ chown wang shiyan.c
例2:把目錄/his及其下的所有文件和子目錄的屬主改成wang,屬組改成users。
$ chown –R wang.users /his
❸ Linux試卷,高分找人做~!
一、 選擇茄野掘題(每題3分,共15分)
1、 下面不是對Linux操作系統特點描述的是(B)
A、良好的可移植性 B、單用戶
C、多用戶 D、設備獨立性
2、 查看創建目錄命令mkdir的幫助文檔可以使用(顫核B)
A、mkdir -h B、man mkdir
C、help mkdir D、info mkdir
3、 下面哪個命令不能用來顯示文本的內容(C)
A、more B、less
C、find D、cat
4、 使用配置文件來管理用戶組,其中相關的密碼信息保存在(D)
A、/etc/gshadow B、/etc/group
C、/etc/passwd D、/etc/shadow
5、 下列日誌類型輸入Linux的是(B)
A、事件日誌 B、系統日誌
C、審核日誌 D、安全日誌
二、 填空題(每空1分,共15分)
1、Linux操作系統中的用戶分為 管理員、普通用戶和 guest 3種類型。
2、Linux常見的圖形界面主要有GNOME、KDE和 X 等。
3、Linux有兩種常用的文件系統分配,他們是塊分配模塊 和擴展分配。
4、使用 df 命令可以查看系統的磁碟空間使用情況,默認情況下以 k 為單位顯示大小。
5、一般而言,DHCP可以用於兩種情況,一是 自動分配 的區域網中,二是動態分配
6、要在命令行上以後台方式啟動進程,需要在執行的命令後添加 &符號。
7、shell的運行模式包括互動式shell和 非互動式shell兩種。
8、編寫的linux shell腳本中支持使用 位置變數、 外部變數和內部變數3中變數。
三、 簡答題(每題6分,共30分)
1、簡述Linux shell的主要功能,並介紹幾種常用shell。
a) 語法分析命令列
b) 處理萬用字元(wildcards)、轉向(redirection)、管線(pipes)與工作控制(job control)
c) 搜尋並執行命令
Bash,DASH,TCSH
2、簡要介紹文件許可權,以及如何修改一個制定文件的許可權。
訪問,寫,執行;chmod 執行許可權 文件 如:chmod 777 ./hhh
3、簡述日誌文件的作用。
答:重要的作用是審核和監測!以方便系統管理員了解系統的狀態、檢查系統故障和跟蹤系統使用情況!
4、簡述Linux內核結構,以及各部分的功能。
(1). 用戶進程。用戶應用程序是運行在Linux操作系統最高層的一個龐大的軟體集合,當一個用戶程序在操作系統之上運行時,它就成為操作系統的一個進程。
(2). 系統調用介面。在應用程序中,可通過系統調用來調用操作系統內核中特定的過程,以實現特定的服務。如:在程序中安排一條創建進程的系統調用,則操作系統內核便會為之創建一個新的進程。
(3) Linux內核。內核是操作系統的靈魂,它負責管理磁碟上的文件,內存,負責啟動並運行程序,負責從網路上接收和發送數據包等等。內核實際是抽象的資源操作到具體的硬體操作細節之間的介面。
(4) 硬體。這個子系統包括了Linux安裝時需要的所有可能的物理設備。
5、簡述make的功能與作用。
編譯源代碼,生成庫文件,鏈接動態及靜態庫,生成可執行文件
一、 綜合應用題(共40分)
1、 寫入能實現以下功能的命令脊櫻。(共10分)
(1) 在根目錄下創建名為mydir的目錄;sudo mkdir /root/mydir -p
(2) 在目錄mydir下創建文本文件myfile1和myfile2;
cd /root/mydir; touch myfile1 myfile2
(3) 將文件myfile1更名為Myfile1;mv myfile1 Myfile1
(4) 刪除文件myfile2;rm myfile2
(5) 復制文件Myfile1到根目錄下。 cp Myfile1 /
1、 編寫shell腳本,實現如下功能:(1)從命令行讀入2個整數;(2)對兩個數進行大小比較;(3)在屏幕上輸出比較結果;(4)寫出該腳本的執行方法或流程。(共12分)
#!/bin/bash
If [ $1 –gt $2 ];then
echo $1
else
echo $2
fi
3、(1)使用C語言編寫一個鏈表程序,鏈表節點數據結構可自定義,需實現鏈表的節點添加和刪除功能;(2)寫出該源程序的編譯命令和執行命名;(3)寫出可以用於自動化編譯該程序的Makefile文件。(共18分)
程序:自己寫吧
Makefile
CC=gcc
all:
$(CC) xx.c -o xx
❹ linux 下如何配置文件伺服器,並如何做許可權管理啊請指教。
解答一:
不使用share安全級別,你可以嘗試使用samba的別名機制,通過修改smbusers名稱映射文件來實現,在文件中設置訪問的windows用戶映射的samba用戶賬號即可。
應該可以實現你需要的效果。
解答二:
你可以嘗試使用samba做主域控制器。看可以不。網上有很多資料,我早前做過,步驟基本上不記得了!
❺ 用戶和組的配置文件,getent,chage
password:密碼佔位符,實際存放在/etc/shadow
GECOS:描述信息
pwunconv:密碼實際存放在/etc/shadow裡面,想存放回/etc/passwd,使用pwunconv命令
pwconv:將密碼恢復到/etc/shadow
chage [OPTION]... LOGIN
-d LAST_DAY(距離UNIX元年最近漏伏孝一次修改密碼的時間------上一次更改的日期)
-E --expiredate EXPIRE_DATE(帳號到期的日期。過了這天,此帳號將不可廳神用)
-I --inactive INACTIVE(停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用)
-m --mindays MIN_DAYS(密碼可更改的最小天數。為零返稿時代表任何時候都可以更改密碼)
-M --maxdays MAX_DAYS(密碼使用最大天數)
-W --warndays WARN_DAYS(用戶密碼到期前,提前收到警告信息的天數)
–l 顯示密碼策略
.示例:
chage -d 0 tom 下一次登錄強制重設密碼
chage -m 0 –M 42 –W 14 –I 7 tom
chage -E 2016-09-10 tom
❻ linux同一許可權中組長如何管理組員
/etc/group 文件是用戶組的配置文件。
/etc/passwd 文件是用戶的配置文件。
使用cat、more、less、head、tail以及vim等命令都可以查看、修改這兩個配置文件。
說明:
/etc/passwd的文件內容格式:注冊名:口令:用戶標識號:組標識號:用戶名:用戶主目錄:命令解釋程序 。以root用戶為例。root是用戶注冊名,X表示密碼保存在/etc/shadow,用戶ID為0,所在用戶組ID為0,用戶名是root,home目錄為/root,解釋程序/bin/bash。
/etc/group的文件內容格式: 組名:密碼保存位置:組ID:組成員。以root用戶組為例,即組名是root,密碼保存位置為/etc/shadow,root組的GID為0,組下面的用戶是root用戶。
❼ Linux添加/刪除用戶和用戶組
Linux添加/刪除用戶和用戶組
本文總結了Linux添加或者刪除用戶和用戶組時常用的一些命令和參數。
1、建用戶:adser phpq //新建phpq用戶passwd phpq //給phpq用戶設置密碼
2、建工作組groupadd test //新建test工作組
3、新建用戶同時增加工作組useradd -g test phpq //新建phpq用戶並增加到test工作組
註::-g 所屬組 -d 家目錄 -s 所用的SHELL
4、給已有的用戶增加工作組usermod -G groupname username
或者:gpasswd -a user group
5、臨時關閉:在/etc/shadow文件中屬於該用戶的行的第二個欄位(密碼)前面加上*就可以了。想恢復該用戶,去掉*即可。
或者使用如下命令關閉用戶賬號:passwd peter –l
重新釋放:passwd peter –u
6、永久性刪除用戶賬號userdel peter
groupdel peter
usermod –G peter peter(強制刪除該用戶的主目錄和主目錄下的所有文件和子目錄)
7、從組中刪除用戶編輯/etc/group 找到GROUP1那一行,刪除 A或者用命令gpasswd -d A GROUP
8、顯示用戶信息id usercat /etc/passwd
更詳細的用戶和用戶組的解說請參考Linux用戶和用戶組詳細解說本文主要講述在Linux 系統中用戶(user)和用戶組(group)管理相應的概念;用戶(user)和用戶組(group)相關命令的列舉;其中也對單用戶多任務,多用戶多任務也做以解說。
本篇文章來源於PHP資訊 原文鏈接: http://www.phpq.net/linux/linux-add-delete-user-group.html
Linux用戶(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 註:添加用戶
adser 註:添加用戶
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 註:顯示用戶所屬的用戶組
grpckgrpconv 註:通過/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 .gtkrcd
rwxr-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 和adser 命令添加用戶(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 MaildirMAIL_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 fileGROUP=100HOME=/home 註:把用戶的家目錄建在/home中;INACTIVE=-1 註:是否啟用帳號過期停權,-1表示不啟用;EXPIRE= 註:帳號終止日期,不設置表示不啟用;SHELL=/bin/bash 註:所用SHELL的類型;SKEL=/etc/skel 註: 默認添加用戶的目錄默認文件存放位置;也就是說,當我們用adser添加用戶時,用戶家目錄下的文件,都是從這個目錄中復制過去的;
後記:
關於用戶(user)和用戶組(group)管理內容大約就是這么多;只要把上面所說的內容了解和掌握,用戶(user)和用戶組(group)管理就差不多了;由於用戶(user)和用戶組(group)是和文件及目錄許可權聯系在一起的,所以文件及目錄許可權的操作也會獨立成文來給大家介紹;
摘自 http://fedora.linuxsir.org/main/?q=node/91
❽ 1-6-RHEL7系統用戶及組管理
時間:2018-05-26 姓名:魏文應
什麼是UID呢? UID就像人的身份證號一樣,通過這個號,標識用戶、程序。
用戶信息文件:
我們可以打開 /etc/passwd 這個文件,賬戶信息存儲格式如下:
我們打開 /etc/shadow 這個文件,密碼信息存儲格式如下:
用戶組文件:
我們可以打開 /etc/group 這個文件,用戶組文件信息存儲格式如下:
往系統中新增一個用戶,命令: useradd 用戶名 。比如添加一個名為wwy的用戶: useradd wwy 。 useradd 命令的相關參數:
保存退出,reboot 操作系統神握賀,發現啟動速度會很慢。
切換用戶以後,出遊派現 [-bash-4.1$] ,而不是正常的 [test@localhost ~] : 這是因為刪除了用戶家目錄皮裂下的bash相關配置文件導致的。如下圖:
可以通過復制系統中的bash文件到宿主目錄下: cp /etc/skel/.bash* /home/test 。
❾ Linux命令之用戶組管理
Linux中每個用戶都要屬於一個或多個組,有了用戶組,就可以將用戶添加到組中,這樣就方便管理員對用戶的集中管理。 Linux系統中用戶組分為root組、系統組、普通用戶組三類。當一個用戶屬於多個組時,這些組中只能有一個作為該用戶的主屬組,其他組就被稱為此用戶的次屬組。 組基本信息在文件/etc/group中;組密碼信息在文件/etc/gshadow中。通過命令:cat /etc/group、cat /etc/gshadow可查看文件內容。
各用戶組中,以 ":" 作為欄位之間的分隔符,分為 4 個欄位,每個欄位對應的含義為:
組名:密碼:GID:該用戶組中的用戶列表
而在gshadow文件中,每行代表一個組用戶的密碼信息,各行信息用 ":" 作為分隔符,分為 4 個欄位,每個欄位的含義如下:
組名:加密密碼:組管理員:組附加用戶列表
root用戶可以直接修改/etc/group文件達到管理組的目的,也可以使用以下命令:groupadd、groupdel、groupmod -n、gpasswd -a、gpasswd -d、newgrp。
下面使用案例分別講解這些命令:
添加用戶組的命令是 groupadd,命令格式如下:
groupadd [ -g gid [ -o ] ] [ -r ] [ -f ] group
參數說明:
-g:指定新建工作組的 id;
-r:創建系統工作組,系統工作組的組ID小於 500;
-K:覆蓋配置文件 "/ect/login.defs";
-o:允許添加組 ID 號不唯一的工作組。
-f,--force: 如果指定的組已經存在,此選項將失明了僅以成功狀態退出。當與 -g 一起使用,並且指定的GID_MIN已經存在時,選擇另一個唯一的GID(即-g關閉)。
示例:創建一個新的組,並添加組 ID。
[root@VM-4-4-centos ~]# groupadd -g 888 newgroup
此時在/etc/group文件中產生了一個id為888的項目:
刪除用戶組時,可用groupdel(group delete)指令來完成。倘若該組中仍包括某些用戶,則必須先刪除這些用戶後,方能刪除組。 注意:刪除的組不能為主屬組! 命令格式:
groupdel [組名]
示例:刪除用戶組 newgroup
[root@VM-4-4-centos ~]# groupdel newgroup
此時再查看/etc/group文件時可以看到用戶組newgroup已經不存在,刪除成功!
要更改用戶組識別碼或名稱可使用 groupmod 來完成。命令格式:
groupmod [ -g <群組識別碼> < -o > ] [ -n <新群組名稱 > ] [原群組名稱]
參數說明 :
-g <群組識別碼> 設置欲使用的群組識別碼。
-o 重復使用群組識別碼。
-n <新群組名稱> 設置欲使用的群組名稱。
示例:創建用戶組newgroup並修改其名稱為modifiedgroup
[root@VM-4-4-centos ~]# groupadd newgroup
[root@VM-4-4-centos ~]# groupmod -n modifiedgroup newgroup
查看/etc/group文件,只存在名稱為modifiedgroup的用戶組,修改成功!
gpasswd 是 Linux 下工作組文件 /etc/group 和 /etc/gshadow 管理工具,用於將一個用戶添加到組或者從組中刪除。命令格式:
gpasswd [可選項] 組名
可選項參數 :
-a:添加用戶到組;
-d:從組刪除用戶;
-A:指定管理員;
-M:指定組成員和-A的用途差不多;
-r:刪除密碼;
-R:限制用戶登入組,只有組中的成員才可以用newgrp加入該組。
示例1:將用戶yangwei添加到組modifiedgroup中
[root@VM-4-4-centos ~]# gpasswd -a yangwei modifiedgroup
此時查看/etc/group文件發現組 modifiedgroup中出現用戶yangwei
示例2:將用戶yangwei從組modifiedgroup中給刪除
[root@VM-4-4-centos ~]# gpasswd -d yangwei modifiedgroup
再次查看/etc/group文件發現用戶yangwei已經不存在。
當需要在不同的群組下工作的時候我們需要進行切換群組操作,這個操作由newgrp指令來完成。命令格式如下:
newgrp [群組名稱]
注意!當前用戶必須都是兩個群組的成員,否則切換群組時需要輸入切換組的組密碼,這時候當前用戶作為臨時成員在切換組下工作,所創建的文件全都屬於切換組。
示例1:用戶yangwei不屬於群組modifiedgroup,請將當前工作組切換為modifiedgroup。
示例2:將用戶yangwei添加到組modifiedgroup中,並切換工作組為modifiedgroup。
總結:Linux用戶組管理需要掌握最基本的幾個命令及其選項參數: groupadd 、groupdel 、groupmod 、gpasswd 、newgrp !
❿ Linux用戶組管理
在創建用戶時不會創建附屬組,附屬組只能通過命令創建
使用命令groupadd創建一個附屬組謹簡,也可以在命令中添加參數 -g 指定組id,組id設置的時候應該大於1000,不能重復,重復有可能導致系統無法啟動
groupadd這個命令並不能將用戶添加進用戶組中去,我們如何把用戶添加進用戶組中呢?
使用命令gpasswd加參數-a向一個用戶組中添加用戶,如果不加-a的話默認是修改或者設置組密碼,使用到組密碼的場景很少,至少我沒有碰見過。
使用命令gpasswd和參數-d把一個用戶從一個蠢晌跡用戶組中移除
刪除組可以使用groupdel刪除組
用戶有自己的配置文件,組也有自己的配置文件,組的配置文件主要保存了組名稱,組密碼、組ID和組成員,這個配置文件統一保存帶並在/etc/group文件中並以: 作為分隔符