天天看點

怎麼操作linux使用者群組

Linux添加或者删除使用者和使用者組時常用的一些指令和參數。

1、建使用者:

adduser 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 user

cat /etc/passwd

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    注:添加使用者

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 檔案;

繼續閱讀