Linux入門(用戶操作及許可權)

来源:https://www.cnblogs.com/aqiao/archive/2019/10/10/11650899.html
-Advertisement-
Play Games

本文介紹了Linux中用戶的相關操作(用戶增、刪以及組增、刪等),附加了文件與目錄的許可權與許可權操作 ...


Linux入門之 用戶操作及許可權

  在一個公司里,老闆與員工有上下級之分,員工與員工間也有上下級或同級之分。每個級別在公司的職責不同,許可權也不同。在Linux操作系統中也一樣,不同的用戶身份擁有著不同的功能與許可權。


Linux用戶的分類


超級管理員: UID為0 root用戶擁有至高無上的命令,root用戶不能改名

系統用戶:UID小於1000,用於管理服務,一般不允許登陸

普通用戶:UID大於或等於1000,許可權較小,允許登陸,只能使用bin下命令


1.用戶創建,刪除,修改

useradd命令

 useradd - create a new user or update default new user information

-c,  --comment  描述
-d,  --home HOME_DIR 家目錄
-e, --expiredate EXPIRE_DATE  過期時間
-f, --inactive INACTIVE 是否啟用過期機制
-g, --gid GROUP   指定組ID號
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]  附加組
-m, --create-home     建立家目錄           
-M,                    不建立家目錄
           Do not create the user′s home directory, even if the system wide
           setting from /etc/login.defs (CREATE_HOME) is set to yes.

-N, --no-user-group 不指定用戶同名組
-r, --system    指定該帳號是系統帳號
-s, --shell SHELL  指定登錄shell
-u, --uid UID   指定用戶ID號
-U, --user-group 指定用戶創建用戶同名組
-o, --創建用戶是可以uid重覆

usermod命令

usermod - modify a user account
-a, --append
-L, --lock
-U, --unlock
-m, --move-home with -d

userdel命令

userdel - delete a user account and related files
-f, --force
-r, --remove 刪除主目錄及郵箱

change命令

chage
-h, --help    display this help message and exit
-m, 密碼可更改的最小天數。為零時代表任何時候都可以更改密碼。
-M, 密碼保持有效的最大天數。
-W, 用戶密碼到期前,提前收到警告信息的天數。
-E, 帳號到期的日期。過了這天,此帳號將不可用。
-d, 上一次更改的日期    如果設置為0 用戶下次登錄必須改密碼
-i, 停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用
-l, 例出當前的設置。由非特權用戶來確定他們的密碼或帳號何時過期。

who命令

  who命令將列出所有正在使用系統的用戶、所用終端名和註冊到系統的時間。而who am i 命令將列出使用該命令的當前用戶的相關信息。例如:

[root@localhost ~]# who
root     :0           2019-10-10 07:59 (:0)
root     pts/0        2019-10-10 07:59 (:0)
root     pts/1        2019-10-10 07:59 (:0)

[root@localhost ~]# who am i
root     pts/1        2019-10-10 07:59 (:0)


2.密碼設置及密碼文件

passwd命令

passwd - set user password
-l, lock
-u, unlock
-d, delete a passwd  for an account
-S,  This will output a short information about  the  status  of  the password for a given account.
--stdin,
    echo linux |passwd --stdin vfast    1 > 0

密碼文件

/etc/passwd
   User account information.
       [用戶名]:[密碼]:[UID]:[GID]:[身份描述]:[主目錄]:[登錄shell] 
/etc/shadow
           Secure user account information.
                 用戶名:這是用戶登錄系統時使用的用戶名,它在系統中是惟一的
                 口令:此欄位存放加密的口令
                 最後一次修改的時間:標識從某一時刻起到用戶最後一次修改口令的天數
                 最小時間間隔:兩次修改口令之間的最小天數
                 最大時間間隔:口令保持有效的最多天數,即多少天後必須修改口令
                 警告時間:從系統開始警告到口令正式失效的天數
                 不活動時間:口令過期多少天後,該賬號被禁用
                 失效時間:指示口令失效的絕對天數(從1970年1月1日開始計算)
                 標誌:未使用

shadow文件

  目前,大多數UNIX/Linux系統中,利用/etc/shadow文件存放用戶賬戶的加密密碼信息和密碼的有效期信息。

user01:!!:18173:0:99999:7:::

  Linux系統的shadow文件中,為每個用戶提供一條記錄,各個欄位用“:”隔開,這9個欄位按先後順序分別是
註冊名:密文密碼:上次更改密碼時間距1970年1月1日的天數:密碼更改後不可以更改的天數:密碼更改後必須再次更改的天數(即密碼的有效期):密碼失效前警告用戶的天數:密碼失效後距離賬戶被查封的天數:賬戶被查封時間距1970年1月的天數;保留欄位


3.組的管理

groupadd

groupadd - create a new group
命令語法
groupadd [選項] 組名
命令選項
-g, --gid GID        指定GID
-r, --system        創建一個系統組
-o, --non-unique    此選項允許添加一個使用非唯一 GID 的組
註意:組名最長為 32 個字元

groupmod命令

groupmod - modify a group definition on the system
命令語法
groupmod [選項] 組名
命令選項
-g, --gid GID
-n, --new-name NEW_GROUP  給組改名
-o, --non-unique 

例子  
1、將組名為test3的名字改為baism
groupmod test3 -n baism

groupdel命令

groupdel - delete a group


4.組密碼及組配置文件

gpasswd命令

gpasswd - administer /etc/group and /etc/gshadow
-a, --add USER                add USER to GROUP
-d, --delete USER             remove USER from GROUP
-r, --remove-password         remove the GROUP's password
-R, --restrict                restrict access to GROUP to its members 限制用戶登錄該組,除了組成員。
-M, --members USER,...        set the list of members of GROUP
-A, --administrators ADMIN,...
                                set the list of administrators for GROUP
案例:
設置組root密碼    #gpasswd root
用戶組身份切換為root $newgrp root
組管理員設置 #gpasswd test -A user3
限制陌生用戶切換到組 #gpasswd -R test
指定組的成員列表   # gpasswd test -M user3,user2

配置文件

/etc/group
  Group account information.
      [組名]:[密碼域]:[GID]:[組員列表] 
/etc/gshadow
  Secure group account information.


5.相關文件

/etc/passwd
        用戶賬戶信息。
/etc/shadow
        安全用戶賬戶信息。
/etc/group
        組賬戶信息。
/etc/gshadow
         安全組賬戶信息。
/etc/default/useradd
           賬戶創建的預設值。
/etc/skel/
           包含預設文件的目錄。
/etc/login.defs
           Shadow 密碼套件配置。


6.身份切換

su 命令--用戶身份的切換

su [options...] [-] [user [args...]]
如:
su - root

su user01

  在大多的linux的版本中,都可以使用"su"或者"su -",但是"su"和"su -"有何差別:
  "su"只是切換了root身份,但Shell環境仍然是普通用戶的Shell;而"su -"連用戶和Shell環境一起切換成root身份了。只有切換了Shell環境才不會出現PATH環境變數錯誤。"su"切換成root用戶以後,"pwd"一下,發現工作目錄仍然是普通用戶的工作目錄;而用"su -"命令切換以後,工作目錄變成root的工作目錄了。用"echo $PATH"命令看一下"su"和"su -"以後的環境變數有何不同。以此類推,要從當前用戶切換到其它用戶也一樣,應該使用"su -"命令。

當一個用戶同時屬於多個組,如何切換組身份 ?

newgrp 命令

  newgrp指令類似login指令,它是以相同的帳號,另一個群組名稱,再次登入系統。欲使用newgrp指令切換群組,您必須是該群組的用戶,若不指定群組名稱,則newgrp指令會登入該用戶名稱的預設群組。



附加知識:文件與文件夾許可權

Linux 基本許可權

linux基本許可權
使用ls -l filename 命令查看文件或文件夾詳細許可權
ls -l
-rw-r--rw-  1 root root    22 Jan  6 15:42 abc
- --- --- ---
第1個 -  文件類型
第2-4個 -  文件所有者的許可權  root    rw-       r  讀   w  寫   x  執行
第5-7個 -  文件所屬的組中的成員對其許可權  root   r--
第8-10個 -  其他人   rw-
22 文件或文件夾的大小
Jan  6 15:42   創建日期
abc  文件名

chmod命令

chmod - 改變文件的訪問許可權
命令語法
chmod [options] mode file...
命令選項
-R 遞歸設置許可權,針對目錄有效
mode  誰給什麼許可權
u(所有者)  g(所屬組)   o(其他人)  a(所有人)
+ - =
許可權  r 讀  w 寫   x 執行
數字許可權
r 讀 4
w 寫 2
x 執行 1
chmod 760 abc

chown命令

chown 修改文件或文件夾所有者命令
命令語法
chown [options] user [:group] file...
命令選項
-R, 遞歸設置,針對文件夾
chown 新所有者  文件名
chown   新的所有者.新的所屬組  文件名
-R, 遞歸修改

chgrp命令

chgrp  改變所屬的組
命令語法
chgrp [選項] 組文件...
命令選項
-R, 遞歸設置許可權,針對目錄有效
chgrp 新所有組  文件名
chown   .新的所屬組  文件名


Linux特殊許可權

linux特殊許可權 7 777
suid 4    當一個二進位文件擁有SUID許可權後,當其他用戶執行該二進位文件的時候,該二進位文件就會以他所有者的許可權去執行
sgid 2   
  要求文件夾下的新建的子文件夾或者子文件繼承父文件夾的屬組
sticky bit  1
如果給文件夾 賦予粘連位  則該文件夾下的文件或文件夾只能由所有者及ROOT刪除


Linux隱藏許可權

chattr命令

chattr [+-=][ASacdistu] 文件或文件名
 命令選項:
        + : 增加某個特殊參數,其他原本存在的參數不動。
        - : 刪除某個特殊參數,其他原本存在的參數不動。
        = : 設置一定,且僅有後面接的參數
        A : 當設置了A屬性時,這個文件(或目錄)的存取時間atime(access)將不可被修改,可避免例如手提電腦有磁碟I/O錯誤的情況發生。
        S : 這個功能有點類似sync。就是將數據同步寫入磁碟中。可以有效地避免數據流失。
        a : 設置a之後,這個文件將只能增加數據,而不能刪除,只有root才能設置這個屬性。
        c : 這個屬性設置之後,將會自動將此文件“壓縮”,在讀取的時候將會自動解壓縮,但在存儲的時候,將會先進行壓縮後再存儲(對於大文件有用)。
        d : 當執行dump(備份)程式的時候,設置d屬性將可使該文件(或目錄)具有轉儲功效。
        i : i的作用很大。它可以讓一個文件“不能被刪除、改名、設置連接,也無法寫入或新增數據”。對於系統安全性有相當大的幫助。
        j : 當使用ext3文件系統格式時,設置j屬性將會使文件在寫入時先記錄在journal中。但是,當文件系統設置參數為data=journalled時,由於已經設置日誌了,所以這個屬性無效。
        s : 當文件設置了s參數時,它將會從這個硬碟空間完全刪除。
        u : 與s相反,當使用u來設置文件時,則數據內容其實還存在磁碟中,可以用來還原刪除.
            註意:這個屬性設置上,比較常見的是a與i的設置值,而且很多設置值必須要root才能設置。

lsattr命令

lsattr 文件或文件名
 查看文件或文件夾的隱藏許可權


Linux file ACL 許可權

setfacl命令

setfacl - set file access control lists
命令語法
setfacl [選項] file...
命令選項
-m, 修改acl
-x, 刪除acl
-b, 刪除所有acl
-k, 刪除預設的acl
-R, 遞歸

getfacl命令

getfacl 查看文件許可權
命令語法
getfacl  file...


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ABP進階教程 本教程主要講解如何基於ABP實現條件查詢/分頁/排序/導出等功能。 源碼已分享: GitHub Gitee ABP進階教程0 - 目錄 ABP進階教程1 - 條件查詢 ABP進階教程2 - 分頁 ABP進階教程3 - 排序 ABP進階教程4 - 導出 ...
  • 簡介請看這裡https://www.cnblogs.com/ch00486259/p/11383686.html 前言 經過一段時間的優化,Socean.RPC的性能又提高了一些,不過這差不多是socketAPM模型的極限了,已經很難再提升了。本框架僅僅2000多行代碼,無第三方框架引用,在普通PC ...
  • 將C#對SQLserver常用的操作進行封裝,方便後續開發使用! ...
  • Parallel.ForEach相對於foreach是多線程,並行操作;foreach是單線程品德操作。 ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 GitHub:https://github.com/kwwwvagaa/NetWinformControl 碼雲:https://gitee.com/kwwwvagaa/net_winform_custom_contr ...
  • 前言 在C#調用OpenCV其實非常簡單,因為C#中有很多OPenCV的開源類庫。 本文主要介紹在WPF項目中使用OpenCVSharp3-AnyCPU開源類庫處理圖片,下麵我們先來做開發前的準備工作。 準備工作 首先,我們先創建一個WPF項目。 然後,在Nuget上搜索OpenCVSharp,如下 ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 GitHub:https://github.com/kwwwvagaa/NetWinformControl 碼雲:https://gitee.com/kwwwvagaa/net_winform_custom_contr ...
  • 本篇文章主要講解Linux系統中賬號許可權的管理。希望對大家有所幫助 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...