1. 程式人生 > >Linux基礎知識——增刪改查使用者

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 使用者和使用者組詳細解說
本文主要講述在Linux 系統中使用者(user)和使用者組(group)管理相應的概念;使用者(user)和使用者組(group)相關命令的列舉;其中也對單使用者多工,多使用者多工也做以解說。

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目錄下的檔案,來為使用者提供一個統一、標準的、預設的使用者環境;

[[email protected] 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)是和檔案及目錄許可權聯絡在一起的,所以檔案及目錄許可權的操作也會獨立成文來給大家介紹;

相關推薦

Linux基礎知識——刪改使用者

本文總結了Linux新增或者刪除使用者和使用者組時常用的一些命令和引數。 1、建使用者: adduser phpq                             //新建phpq使用者 passwd phpq                               //給phpq使用者設定密碼

python 基礎 字典 刪改

() test bsp 返回 one false ont val als content = {"name":"wd","pc":{"phone":111111,"age":18},"woniu":["122222",18]} 增 content[‘kk‘] = ‘

PL/SQL入門——基礎刪改(轉載)

斜杠 一起 重復行 ima table ext 自己 課程 新的 鏈接:https://blog.csdn.net/u013253278/article/details/51120705 學生表Student 課程表Course 選課表SC 首先用system身份登錄

告別編寫基礎刪改程式碼

    告別編寫基礎的增刪改查程式碼    一、 說明   1.本文基本幫你實現不用編寫基礎的增刪改查程式碼 注意是“基礎”的,你只需要寫一個實體類,其他都可以自動生成包括 mapper、dao、service、controller、建表sql。   &nbs

雙向迴圈帶頭連結串列的基礎操作(刪改)

1.定義連結串列結點的結構 typedef int CLDataType; //結點型別 typedef struct ListNode { CLDataType _data; struct ListNode* _next; struc

二叉排序樹 基礎操作 刪改

//本人比較懶,寫不寫註釋看心情 #include<iostream> #include<malloc.h> #include<cstdio> #include<cstdlib> using namespace std; ty

SQL server基礎刪改 分組 排序

查:select * from 表名,加條件的話後加where條件 增:insert into 表名 ralues(“1” “2” “3”)123為值(要與資料庫的資料保持一致)後不用加條件 刪:delete from 表名,後必須加條件where id=2,如

第二章 Mybatis的基礎操作(刪改)

2.1 查詢資料 2.2.1查詢單條資料 新建實體類: @Data public class Student { private Long id; private String name; private Integer age; } 對映檔案: Stude

PL/SQL入門——基礎刪改

--查詢經過計算的列,可以起別名(AS可省略) SELECT Sname,2004-Sage BIRTHDAY FROM Student; --可以查詢字串常量和函式 SELECT Sname NAME , 'Year of Birth:' BIRTH , 2004-Sage BIRTHDAY , LOWER

MySQL刪改基礎知識

add 內連接 har ren 組合 lec 字段 傳統 efault 前幾天學習了MySQL數據庫的一些基礎知識,了解了後臺數據庫的一些基礎的數據操作:增刪改查,對於項目前後臺的數據傳遞有了些概念,總結了一些MySQL的基礎語法。 一、數據存儲形式發展和數據庫作用 根

Linux刪改基礎命令

sub 改密 用戶 lin 登錄 root 選項 AR 表示 whoami 查看當前登錄用戶who 查看登錄了哪些用戶date 查看日期cal 查看日歷 clear 清屏 = Ctrl + luseradd 添加用戶passwd

python 基礎知識 列表的 刪改 以及迭代取值

""" python 列表 通用方法 元組、陣列、字典 取值方法 [] 列表中可以儲存不同型別的資料 函式 封裝了獨立的功能可以直接呼叫 函式名(引數) 方法 和函式類似,同樣是封裝了獨立的功能,方法需要通過物件來呼叫,標識針對這個物件要做的操作 物件.方法名(引數) 關鍵字 後面不需要使用括號

Java資料庫連線--JDBC基礎知識(操作資料庫:刪改)

1 package sql.model; 2 3 import java.util.Date; 4 5 public class Goddess { 6 private Integer id; 7 private String userName; 8 priva

TP5學習基礎一:刪改小demo

表單 arr 處理 php req 學習 model類 浪費 新手 ①TP5--增刪改查簡單的demo 我先吐槽一下:因為工作需要研究tp5,去官網看了一下哎呦,資源挺多挺全啊!然後下載唯一免費的官方教程,我曹pdf打開533頁。講的很細但是開發能等看完才做嗎?看到精簡版快

【2017-06-01】Linq基礎+Lambda表達式實現對數據庫的刪改

partial 表名 .net 之前 滿足 image nbsp word 提交 一、Linq to sql 類 高集成化的數據庫訪問技術 使用Linq可以代替之前的Ado.Net。省去了自己敲代碼的實體類和數據訪問類的大量工作。 實體類: 添加一個Linq to sql

2017-6-1 Linq 基礎查詢 (刪改

load title -1 style part ids deb control idt 用小型人員管理系統的項目實戰來練習linq的基礎增刪改查: using System; using System.Collections.Generic; using System

Linq基礎刪改

alt 技術分享 .class select 匿名函數 write 數據庫連接 oca title 使用Linq時要註意一下問題:1.創建Linq連接後生成的dbml文件不要變動,生成的表不要碰,拖動表也會造成數據庫連接發生變動,需要重新保存.2.屬性拓展的使用:添加一個新

cocos2d-x-lua基礎系列教程六(lua-table刪改

{} cat ng-click 位置 rip 腳本 ack content -c lua-table庫 1。插入 table.insert () --假設沒有設定位置。默認last位置 樣例: myTable = {

04_web基礎(八)之車票實現刪改初級版本

lose src uri sed RR 實現 手動添加 jsp頁面 ebs 43.web頁面顯示車票列表簡略完成   代碼:   控制層代碼 1 package com.day03.station.controller; 2 3 import com.day03

mongodb基礎(2)刪改

pro vpd 圖片 size type ext fda img god 1、mongodb基礎(2)增刪改查