7 用戶和用戶組


7.1 用戶配置文件

7.1.1 用戶信息文件 /etc/passwd

man 5 passwd ?查看配置文件功能

1字段: 用戶名稱

2字段: 密碼標志 X代表有密碼 如果用戶沒有密碼,則只允許本地登錄

3字段: UID(用戶ID

?????????? 0 ????超級用戶

?????????? 1-499 系統用戶(偽用戶) 絕對不能刪

?????????? 500-65535 ?普通用戶 ?改為0則變為管理員 ?UID相同被視為同一個用戶

4字段: GID(用戶初始組ID

5字段: 用戶說明

6字段: 家目錄

?????????? 普通用戶: /home/用戶名/

?????????? 超級用戶: /root/

7字段: 登錄之后的Shell

?

初始組:用戶一登錄就立刻擁有這個用戶組的相關權限,每個用戶的初始組只能有一個,一般就是和這個用戶

????????的用戶名相同的組名作為這個用戶的初始組。

附加組:指用戶可以加入多個其他的用戶組,并擁有這些組的權限,附加組可以有多個。

?

Shell是什么?

Shell就是Linux的命令解釋器

/etc/passwd當中,除了標準Shell/bin/bash之外,還可以寫如/sbin/nologin

?

7.1.2 影子文件 /etc/shadow

1字段: 用戶名

2字段: 加密密碼

??????????>加密算法升級為SHA512散列加密算法

??????????>如果密碼位是“!!”或“*”代表沒有密碼,不能登錄。

3字段: 密碼最后一次修改日期

??????????>使用197011日作為標準時間,每過一天時間戳加1

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

5字段: 密碼有效期(和第3字段相比)

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

7字段: 密碼過期后的寬限天數(和第5字段相比)

??????????>0代表密碼過期后立即失效 不寫則默認為0

??????????>-1代表密碼永遠不會失效

8字段: 帳號失效時間

??????????>用時間戳表示

9字段: 保留


把時間戳換算為日期 ?date -d "1970-01-01 16866 days" #16866是時間戳,基準時間是1970-01-01

把日期換算為時間戳 ?echo $(($(date --date="2014/01/06" + %s)/86400 + 1)) #86400 每天的秒


7.1.3 組信息文件 /etc/group

1字段: 組名

2字段:組密碼標志

3字段:GID

4字段:組中附加用戶

?

?

7.1.4 組密碼文件 /etc/gshadow??

用的不多

1字段:組名

2字段:組密碼 ?用的不多,不推薦使用

3字段:組管理員用戶名

4字段:組中附加用戶

?

用戶信息全包含在這四個文件之中,可以通過修改這四個文件來對用戶做增刪查改的操作

?

7.1.5 用戶管理相關文件

1、用戶的家目錄 ??用戶的初始登錄位置

???普通用戶: /home/用戶名/ ???所有者和所屬組都是此用戶,權限是700

???超級用戶: /root/ ???所有者和所屬組都是root用戶,權限是550

?

2、用戶的郵箱

???/var/spool/mail/用戶名/

?

3、用戶模板目錄

???/etc/skel/ ?????創建新用戶時,自動將此目錄下的文件復制到新用戶的家目錄

?

?

7.2 用戶管理命令

7.2.1 用戶添加命令

useradd -u UID ?手工指定用戶的UID

???-d 家目錄 手工指定用戶的家目錄

???-c 用戶說明 手工指定用戶的說明

???-g 初始組名 手工指定用戶的初始組

???-G 附加組名 指定用戶的附加組

???-s shell 手工指定用戶的登錄Shell。默認是/bin/bash

?

useradd sc

passwd sc

grep sc /etc/passwd

grep sc /etc/shadow

grep sc /etc/group

grep sc /etc/gshadow

ll -d /home/sc

ll /var/spool/main/sc

?

useradd -u 666 -G root,bin -d /home/sc1 -c "test user" -s /bin/bash sc


用戶默認值文件:

/etc/default/useradd

GROUP=100 ?#用戶默認組

HOME=/home #用戶家目錄

INACTIVE=-1 #密碼過期天數(shadow文件7字段)

EXPIRE= ????#密碼失效時間(shadow文件8字段)

SHELL=/bin/bash #默認shell

SKEL=/etc/skel ?#模板目錄

CREATE_MAIL_SPOOL=yes #是否建立郵箱

?

/etc/login.defs

MAIL_DIR /var/spool/mail

?

PASS_MAX_DAYS 9999 ?#密碼有效期(5

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

PASS_MIN_LEN ?5 ????#密碼最小5位(PAM)默認是8

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

?

UID_MIN ??500 ??????#最大和最小UID范圍

UID_MAX ??60000

?

GID_MIN ??500 ??????#最大和最小GID范圍

GID_MAX ??60000

?

CREATE_HOME ?yes

?

UMASK 077

?

USERGROUPS_ENAB yes

?

ENCRYPT_METHOD ?SHA512 #加密模式

?

7.2.2 修改用戶密碼

passwd -選項 用戶名

? ? ? ?-S 查詢用戶密碼的狀態。僅root用戶可用。

???????-l 暫時鎖定用戶。僅root可用 ?將shadow文件中,密碼項前加了!!

???????-u 解鎖用戶。僅root可用

???????--stdin 可以通過管道符輸出的數據作為用戶的密碼

?

whoami 查看當前用戶名

?

echo "123" | passwd -stdin sc

123作為sc用戶的密碼,用于Shell編程中

?

7.2.3 修改用戶信息usermod

usermod -選項 用戶名

???-u UID ???修改用戶的UID

???-c 用戶說明 修改用戶的說明信息

???-G 組名 ??修改用戶的附加組

???-L ???????臨時鎖定用戶(lock) 密碼前加了!,使密碼失效

???-U ??解鎖用戶鎖定(Unlock

?

?

?

7.2.4 修改用戶密碼狀態chage??

change user password expiry information

change -選項 用戶名

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

? ? ? -d 日期 密碼最后一次更改日期(shadow 3字段)

??????-m 天數 兩次密碼修改間隔(4字段)

??????-M 天數 密碼有效期(5字段)

??????-W 天數 密碼過期前警告天數(6字段)

??????-I 天數 密碼過期后寬限天數(7字段)

??????-E 日期 帳號失效時間(8字段)

?

vim修改更直觀

用的最多的是

chage -d 0 sc

#這個命令其實是把密碼修改日期歸零了(shadow3字段)

#這樣用戶一登陸就要修改密碼

?

?

7.2.5 刪除用戶userdel

userdel -r 刪除用戶的同時刪除用戶家目錄

?

手工刪除用戶

vi /etc/passwd

vi /etc/shadow

vi /etc/group

vi /etc/gshadow

rm -rf /var/spool/mail/sc

rm -rf /home/sc

?

7.2.6 查看用戶ID

id 用戶名

查看用戶id 初始組id 附加組id

?

?

7.2.7 用戶切換su??

run a Shell with substitute user and group IDs

?

env

查看用戶環境變量

?

su root #只切換了部分環境變量

?

su 選項 用戶名

- 連帶用戶的環境變量一起切換

-c 僅執行一次命令,而不切換用戶身份

?

su - root -c "useradd user3"

不切換用戶身份,臨時調用一次root權限命令

?

exit 退出當前用戶

?

?

?

7.3 用戶組管理命令

添加用戶組

groupadd [選項] 組名

-g GID ??指定組ID

?

?

修改用戶組 ?不建議修改組名

groupmod [選項] 組名

? -g GID 指定組ID

? -n 新組名

groupmod -n testgrp group1

把組名group1修改為testgrp

?

?

刪除用戶組

groupdel 組名

如果組中存在初始用戶,不能刪除此組

如果組中都是附加用戶,可以刪除

?

?

把附加用戶添加入組或從組中刪除

gpasswd -a 用戶名 ?組名 #把用戶加入組

???-d 用戶名 ?組名 #把用戶從組中刪除

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387294.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387294.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387294.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#調用Python模塊

編程:C#調用Python模塊 當下,C#與Python都是比較熱門的計算機編程語言,他們各有優缺點,如果能讓他們互相配合工作,那是多么美好的事情,今天我來講解一下如何利用C#來調用Python。 如果讓C#支持調用Python模…

面試簡單整理之克隆

61.為什么要使用克隆? 克隆獲取對象的副本,直接用復制還是一個引用。 62.如何實現對象克隆? 1.被clone的類實現cloneable接口,重寫object類的clone()方法 2.如果深克隆則克隆對象的引用對象也要實現接口、重…

8 權限管理

8.1 ACL權限 8.1.1 簡介與開啟 用于解決身份不夠用的問題 ACL(access control list) 訪問控制表 ACL是存在于計算機中的一張表,它使操作系統明白每個用戶對特定系統對象,例如文件目錄或單個文件的存取權限。 這張表對于每個系統用戶有擁有一個訪問…

windows下GitHub的SSH Key 配置

https://www.jianshu.com/p/9317a927e844轉載于:https://www.cnblogs.com/lishidefengchen/p/10481889.html

PyCharm調試錯誤

JetBrains PyCharm 2017.3.2 這就說明python.exe的環境沒有配,點擊藍色的configure Python Interpreter,然后選擇對應的路徑就可以了

Java06集合

13 集合 實現方法時,不同的數據結構會導致性能有很大差異。 13.1 集合接口 Java集合類庫將接口(interface)與實現(implementation)分離。 可以使用接口類型存放集合的應用,一旦改變了想法,可…

Tensorflow驗證碼識別應用

簡單的Tensorflow驗證碼識別應用,供大家參考,具體內容如下 1.Tensorflow的安裝方式簡單,在此就不贅述了. 2.訓練集訓練集以及測試及如下(純手工打造,所以數量不多): 3.實現代碼部分(參考了網上的一些實現來完成的) main.py(主要的神經網絡代碼) ?123456…

9 文件系統管理

9.1 回顧分區和文件系統 分區類型 主分區:總共最多只能分四個 擴展分區:只能有一個,主分區加擴展分區最多有四個,必須再劃分成邏輯分區才能使用。 邏輯分區:在擴展分區中劃分的 IDE硬盤最多支持59個邏輯分區 SCSI…

Linux 桌面玩家指南:09. X Window 的奧秘

Linux 桌面玩家指南:09. X Window 的奧秘 原文:Linux 桌面玩家指南:09. X Window 的奧秘特別說明:要在我的隨筆后寫評論的小伙伴們請注意了,我的博客開啟了 MathJax 數學公式支持,MathJax 使用$標記數學公式的開始和結…

Storm教程1理論介紹

流式計算的歷史: 早在7、8年前諸如UC伯克利、斯坦福等大學就開始了對流式數據處理的研究,但是由于更多的關注于金融行業的業務場景或者互聯網流量監控的業務場景,以及當時互聯網數據場景的限制,造成了研究多是基于對傳統數據庫處理的流式化&…

梯度下降原理及Python實現

梯度下降算法是一個很基本的算法,在機器學習和優化中有著非常重要的作用,本文首先介紹了梯度下降的基本概念,然后使用python實現了一個基本的梯度下降算法。梯度下降有很多的變種,本文只介紹最基礎的梯度下降,也就是批…

dagger2的初次使用

一、使用前準備 1、打開app的build.gradle文件: 頂部停用apt插件: //添加如下代碼,應用apt插件 apply plugin: com.neenbedankt.android-apt dependencies中添加依賴: //Dagger2compile com.google.dagger:dagger:2.4apt com.goog…

Storm教程2安裝部署

Storm 安裝部署 部署Storm集群需要依次完成的安裝步驟: 1.安裝jdk6及以上版本;   2. 搭建Zookeeper集群;   3. 安裝Storm依賴庫;   4. 下載并解壓Storm發布版本;   5. 修改storm.yaml配置文件;   6…

matplotlib一些常用知識點的整理,

本文作為學習過程中對matplotlib一些常用知識點的整理,方便查找。 強烈推薦ipython 無論你工作在什么項目上,IPython都是值得推薦的。利用ipython --pylab,可以進入PyLab模式,已經導入了matplotlib庫與相關軟件包(例如…

JAVA課程09

package 月份輸出;import java.util.*;public class 月份輸出 {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc new Scanner(System.in);int s sc.nextInt();String a[] {"January","February","March&q…

Storm教程3編程接口

Spouts Spout是Stream的消息產生源,Spout組件的實現可以通過繼承BaseRichSpout類或者其他Spout類來完成,也可以通過實現IRichSpout接口來實現。 需要根據情況實現Spout類中重要的幾個方法有: open方法 當一個Task被初始化的時候會調用此…

梳理操作系統概論

1、用一張圖總結操作系統的結構、功能特征、采用的技術和提供服務方式等。 2、用一張圖描述CPU的工作原理。 3、用一張圖描述系統程序與應用程序、特權指令與非特權指令、CPU狀態、PSW及中斷是如何協同工作的? 轉載于:https://www.cnblogs.com/ljgljg/p/10503190.ht…

機器學習01簡介

Machine Learning 是人工智能的核心,主要使用歸納、綜合而不是演繹。 讓計算機模擬人類行為,以獲取新的知識或技能 重新組織已有的知識結構使之不斷改善自身性能 一個程序能從經驗 E 中學習,解決任務 T,達到性能度量值P&#xf…

位置指紋法的實現(KNN)

基本原理 位置指紋法可以看作是分類或回歸問題(特征是RSS向量,標簽是位置),監督式機器學習方法可以從數據中訓練出一個從特征到標簽的映射關系模型。kNN是一種很簡單的監督式機器學習算法,可以用來做分類或回歸。 對于…

室內定位系列 ——WiFi位置指紋(譯)

摘要 GPS難以解決室內環境下的一些定位問題,大部分室內環境下都存在WiFi,因此利用WiFi進行定位無需額外部署硬件設備,是一個非常節省成本的方法。然而WiFi并不是專門為定位而設計的,傳統的基于時間和角度的定位方法并不適用于WiFi…