#Linux學習# 用戶和用戶組管理

来源:https://www.cnblogs.com/zhuifeng17/archive/2020/05/26/12969569.html
-Advertisement-
Play Games

用戶配置文件在Linux中主要是通過用戶配置文件來查看和修改用戶信息。初始組和附加組:初始組——就是指用戶一登錄就立刻擁有這個用戶組的相關許可權,每個用戶的初始組只能有一個,一般就是和這個用戶的用戶名相同的組名作為這個用戶的初始組;附加組——指用戶可以加入多個其他的用戶組,並擁有這些組的許可權,附加組可... ...


用戶配置文件

在Linux中主要是通過用戶配置文件來查看和修改用戶信息。

初始組和附加組:初始組——就是指用戶一登錄就立刻擁有這個用戶組的相關許可權,每個用戶的初始組只能有一個,一般就是和這個用戶的用戶名相同的組名作為這個用戶的初始組;附加組——指用戶可以加入多個其他的用戶組,並擁有這些組的許可權,附加組可以有多個。

用戶信息文件/etc/passwd

第1欄位:用戶名稱

第2欄位:密碼標誌

第3欄位:UID(用戶ID),0——超級用戶,1~499——超級用戶(偽用戶,不能用於登陸),500~65535——普通用戶

第4欄位:GID(用戶初始組ID)

第5欄位:用戶說明

第6欄位:家目錄,普通用戶——/home/用戶名,超級用戶:/root/

第7欄位:登錄之後的Shell

用戶信息文件/etc/shadow

第1欄位:用戶名

第2欄位:加密密碼,如果密碼位是“!!”或“*”代表沒有密碼,不能登錄

第3欄位:密碼最後一次修改日期,使用1970年1月1日作為標準時間,每過一天時間戳加1

第4欄位:兩次密碼的修改間隔時間(和第3欄位相比)

第5欄位:密碼有效期(和第3欄位相比)

第6欄位:密碼修改到期前的警告天數(和第5欄位相比)

第7欄位:密碼過期後的寬限天數(和第5欄位相比),0代表密碼過期後立即失效,-1則代表密碼永遠不會失效

第8欄位:賬號失效時間,要用時間戳表示

第9欄位:保留

時間戳換算:

把時間戳換算為日期:

date    -d    “1970-01-01 16066 days”

把日期換算為時間戳:

echo    $(($(date –date=”2014/01/06”+%s)/86400+1))

組信息文件/etc/group

第1欄位:組名

第2欄位:組密碼標誌

第3欄位:GID

第4欄位:組中附加用戶

組密碼文件/etc/gshadow

第1欄位:組名

第2欄位:組密碼

第3欄位:組管理員用戶名

第4欄位:組中附加用戶

用戶管理相關文件

用戶家目錄

普通用戶:/home/用戶名/,所有者和所屬組都是此用戶,許可權是700;超級用戶:/root/,所有者和所屬組都是 root用戶,許可權是550。

用戶的郵箱

/var/spool/mail/用戶名/

用戶模板目錄

/etc/skel/

用戶管理命令(附加)

用戶預設值文件

/etc/default/useradd

GRUOP=100                                               #用戶預設組

HOME=/home                                             #用戶家目錄

INACTIVE=-1                                              #密碼過期寬限天數(7)

EXPIRE=                                                     #密碼失效時間(8)

SHELL=/bin/bash                                        #預設shell

SKEL=/etc/skel                                            #模板目錄

GREATE_MAIL_SPOOL=yes                     #是否建立郵箱

/etc/login.defs

PASS_MAX_DAYS    99999                        #密碼有效期(5)

PASS_MIN_DAYS    0                                 #密碼修改間隔(4)

PASS_MIN_LEN    5                                    #密碼最小5位(PAM)

PASS_WARN_AGE    7                               #密碼到期警告(6)

UID_MIN    500                                             #最小和最大UID範圍

GID_MAX    60000

ENCRYPT_METHOD    SHA512                  #加密模式

usermod

選項與參數:

usermod    [-cdegGlsuLU]    username

-c:後面接賬號的說明,即/etc/passwd第五欄的說明欄,可以加一些賬號的說明

-d:後接賬號的家目錄,即修改/etc/passwd的第六欄

-e:後面接日期,格式是YYYY-MM-DD也就是在/etc/shadow內的第八個欄位的內容

-f:後面接天數,為shadow的第七欄位

-g:後面接初始用戶組,修改/etc/passwd的第四個欄位,亦即是GID的欄位

-G:後面接次要用戶組,修改這個使用者能夠支持的用戶組,修改的是/etc/group

-a:與-G合用,可增加次要用戶組的支持,而非設置

-l:後面接賬戶名稱,亦即是修改賬號的名稱,/etc/passwd的第一欄

-s:後面接shell的實際文件,例如/bin/bash或/bin/csh等

-u:後面接UID數字,即/etc/passwd第三欄的數據

-L:暫時將使用者的密碼凍結,讓它無法登陸,其實僅改/etc/shadow的密碼欄

-U:將/etc/shadow密碼欄的感嘆號(!)拿掉,解鎖賬號

chage

選項與參數:

chage    [-ldmMWIE]    用戶名

-l:列出用戶的詳細密碼狀態

-d:接日期,修改密碼最後一次更改日期(shadow 3欄位)

-m:接天數,兩次密碼修改間隔(4欄位)

-M:接天數,密碼有效期(5欄位)

-W:接天數,密碼過期前警告天數(6欄位)

-I:接天數,密碼過後寬限天數(7欄位)

-E:接日期,賬號失效時間(8欄位)

chage    -d    0    username

這個命令其實是把密碼修改日期歸0,這樣用戶一登錄就要修改密碼

su

選項與參數:

su    [-lm]    [-c    命令]    username

-:代表使用login-shell的變數文件讀取方式來登陸系統,若使用者名稱沒有加上去,則代表切換為root的身份。不使用-的話,很多環境變數不會切換。

-l:與-類似,但後面需要加欲切換的使用者賬號,也是login-shell的方式

-m:-m和-p是一樣的,表示使用目前的環境設置,而不讀取新使用者的配置文件

-c:僅進行一次命令,所以-c後面可以加上命令


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

-Advertisement-
Play Games
更多相關文章
  • 1、發送郵件類,百度一大堆,這裡用的也是直接百度拿過來的 public static bool get_send_email(email email, string Title, string Body) { MailMessage mailMsg = new MailMessage(); mail ...
  • 1、在data裡面新建個Entity文件用於存放表映射,設計資料庫,執行如下語句 Scaffold-DbContext -Force "server=.;user=sunyong;password=1qaz!QAZ;database=hr;" Microsoft.EntityFrameworkCor ...
  • 學習網址:https://docs.microsoft.com/zh-cn/visualstudio/get-started/visual-studio-ide?view=vs-2019 示範 vs2019: 變數的重命名的重構,更改該變數命名的同時,引用該變數的地方也會更改,如果該變數有被反射用到 ...
  • Core提供二種開發模式:Core Pages和Core MVC,今天介紹的是Core MVC。 1、創建web MVC項目 新建service/h_r.baseservice類庫文件、data/h_r.efdata類庫文件、common/h_r.common類庫文件。 引入需要的CSS文件和JS文 ...
  • 只是一個Demo,所用有很多功能也沒有添加進去如分頁,輸入驗證,頁面也沒有進行精心佈局。 整體先來幾張圖解 ...
  • 1、運行程式報錯: FailFast: Couldn't find a valid ICU package installed on the system. 解決方法: yum install icu -y 2、程式運行後,本地可以訪問,但其他機器無法訪問,需要開放埠 firewall-cmd - ...
  • C#中的DefaultView方法 簡介: 首先可建立一個表,對錶進行填充若幹條數據,代碼如下: //創建Table1 DataTable dt = new DataTable(); //對Table1添加列名,並設置列值類型 DataTable dt1 = new DataTable();//創建 ...
  • [導讀] 一直以來VIM也用一些,但是用的不熟,最近看了些文章,發現這個東西有必要發大力氣系統的練習一下。可以大大提高平時工作效率,工欲善其事,必先利其器。所以將學習的過程要點記錄分享一下,希望大家喜歡。本文不介紹任何插件,只梳理基本VIM操作,將其儘量清晰的呈現。 題外,近期新到一些朋友,也歡迎大 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...