(linux系統服務)Linux高級命令用戶管理

一、Linux用戶管理

1、用戶概念以及基本作用

用戶:指的是Linux操作系統中用于管理系統或者服務的

一問:管理系統到底在管理什么?

答:Linux下一切皆文件,所以用戶管理的是相應的文件

二問:如何管理文件呢?

答:

  1. 文件基本管理,比如文件的創建、刪除、復制、查找、打包壓縮等;文件的權限增加、減少等;
  2. 文件高級管理,比如程序文件的安裝、卸載、配置等。終極目的是對外提供穩定的服務。

2、用戶的類別

① root超級管理員,在Linux系統中擁有至高無上的權力

② 系統用戶,CentOS6=> 1 ~ 499,CentOS7=> 1 ~ 999,系統賬號默認不允許登錄

# useradd -s /sbin/nologin 系統用戶

③ 普通用戶,大部分是由root管理員創建的,UID的取值范圍:CentOS6=> 500 ~ 60000,CentOS7=> 1000 ~ 60000,對系統進行有限的管理維護操作

總結

① 用戶指的是操作系統上管理系統或服務,是人,就有相關的屬性信息

② 用戶的屬性信息包括但不限于,如:==家目錄、唯一身份標識(UID)、所屬組(GID)==等

③ 今天我們討論的用戶指的是普通用戶,即由管理員創建的用戶

3、用戶管理

與用戶管理相關的幾個單詞 => user(用戶)、add(添加)、mod(修改)、del(刪除)

① 用戶添加 useradd

② 用戶修改 usermod

③ 用戶刪除 userdel

☆ useradd用戶添加

基本語法:

# useradd [選項 選項的值] 新用戶名稱
-u	指定用戶uid,唯一標識,必須唯一
-g	指定用戶的默認組(主組)
-G	指定用戶附加組(一個用戶可以加入多個組,但是默認組只有一個)
-d	指定用戶家目錄(每個用戶都有一個自己的家,并且默認在/home/xxx)
-s	指定用戶默認shell,常見/bin/bash或/sbin/nologin擴展:
-r  指定用戶為系統用戶,如創建一個系統賬號mysql

案例:在Linux系統中創建一個賬號zhangsan

# useradd zhangsan

問題:一個用戶創建成功后,如何判斷是否添加到系統?

答:第一種方案我們可以通過tail命令查看/etc/passwd文件

	 第二種方案我們可以使用id命令查看zhangsan信息

案例:在Linux系統中創建一個賬號lisi,指定用戶的家目錄為/rhome/lisi

# mkdir /rhome
# useradd -d /rhome/lisi lisi

當我們為用戶自定義家目錄時,其上級目錄必須是真實存在的,如/rhome

案例:在Linux系統中創建一個mysql賬號,要求真實存在的,但是其不允許登錄操作系統

# useradd -s /sbin/nologin mysql

案例:在Linux系統中創建一個mysql系統賬號,要求真實存在,但是不允許登錄操作系統

# userdel -r mysql
# useradd -r -s /sbin/nologin mysql

☆ 與用戶相關的文件

Linux中一切皆文件,所以保存用戶的信息的也是一個文件 => /etc/passwd

# vim /etc/passwd
root:x:0:0:root:/root:/bin/bash第1列:用戶名稱
第2列:用戶密碼,使用一個x占位符,真實密碼存儲在/etc/shadow文件中
第3列:用戶的編號UID,0,1-999,1000 ~ 60000
第4列:用戶的主組編號GID
第5列:用戶的備注信息(擴展,可以使用-c進行指定) useradd -c "mysql" mysql
第6列:用戶的家目錄,/root,超級管理員的家/home,普通賬號的家
第7列:用戶的Shell文件,常見/bin/bash或/sbin/nologin=>/bin/false

☆ usermod用戶修改

基本語法:

# usermod [選項 選項的值] 用戶名稱
-u	指定用戶uid,唯一標識,必須唯一	
-g	指定用戶的默認組(主組)
-G	指定用戶附加組(一個用戶可以加入多個組,但是默認組只有一個)
-d	指定用戶家目錄(每個用戶都有一個自己的家,并且默認在/home/xxx)
-s	指定用戶默認shell

案例:修改zhangsan賬號的主組為itheima組(只能指定一個)

① 可以獲取itheima組的編號信息GID

② 使用usermod -g GID編號修改某個用戶的主組信息

其實在usermod修改用戶的主組中,usermod -g 可以使用GID編號也可以使用組名稱

# cat /etc/group |grep itheima
# usermod -g 1000 zhangsan

# usermod -g itheima zhangsan

案例:修改lisi賬號的附加組,將其添加到itheima中

# usermod -G 1000 lisi

# usermod -G itheima lisi

案例:創建一個itcast組,在創建一個wangwu的賬號,修改wangwu的附加組為itcast與itheima

# groupadd itcast
# useradd wangwu
# usermod -G itcast,itheima wangwu

問題:如果一個用戶同時擁有多個附屬組,怎么查看呢?

答:使用id命令即可

案例:修改用戶zhangsan的家目錄為/rhome/zhangsan(默認/home/zhangsan)

# mkdir /rhome/zhangsan
# usermod -d /rhome/zhangsan zhangsan
# su - zhangsan
-bash-4.2$
出現以上問題的主要原因在于:我們遷移用戶的家目錄時,沒有遷移家目錄中的配置文件"家具"解決方案:
① 家目錄已經遷移,我們把/etc/skel中的文件,copy到新家中
# cp -a /etc/skel/. /rhome/zhangsan/
選項說明:
-a :all所有,復制時,保留文件的原有屬性
② 家目錄還沒有遷移,準備遷移時,使用usermod -md /rhome/zhangsan 用戶名
-m :move,遷移家目錄時,把"家具"一起遷移到新的家目錄
# usermod -md /rhome/zhangsan zhangsan

注:要求/rhome/zhangsan必須是真實存在的!

案例:當我們創建了某個賬號,但是不希望這個賬號登錄操作系統

# usermod -s /sbin/nologin 用戶名稱

☆ userdel用戶的刪除

# userdel [選項] 用戶名稱
選項說明:
-r :刪除用戶的同時,刪除用戶的家目錄
-f :強制刪除用戶(即使用戶處于登錄狀態)

案例:刪除zhangsan這個賬號

# userdel zhangsan

案例:刪除zhangsan這個賬號,同時刪除這個賬號的家

# userdel -r zhangsan

案例:刪除某個正在使用的賬號(強制刪除)

# userdel -f zhangsan

4、用戶密碼

☆ passwd修改用戶密碼

# passwd [用戶名稱]說明:
1.管理員root可以給任何用戶修改密碼
2.普通用戶可以自己給自己修改密碼,但是密碼復雜度要符合規范(大小寫、特殊字符、長度)

案例:使用root賬號給itheima用戶修改密碼,新密碼為123456

# su - root
# passwd itheima
Changing password for user itheima.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

案例:切換到itheima這個賬號,自己給自己修改密碼(密碼規范)

# su - itheima
# passwd
Changing password for user itheima.
Changing password for itheima.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

☆ --stdin修改用戶密碼

–stdin :標準輸入

# echo 123 |passwd --stdin itheima
# history -c 						=>    			     清除history歷史記錄

注意:以上方式操作非常簡單,但是以上命令會留在history歷史命令中!

5、chage更改用戶的賬號信息

背景:很多公司運維工程師剛入職,都會默認得到一個服務器的管理賬號,密碼默認,如123456,我們有沒有辦法讓運維工程師在第一次登陸操作系統后,強制要求其更新密碼。

# chage --help
-l:列出用戶的詳細密碼狀態;
-d 日期:修改 /etc/shadow 文件中指定用戶密碼信息的第3個字段,也就是最后一次修改密碼的日期,格式為 YYYY-MM-DD;
-m 天數:修改密碼最短保留的天數,也就是 /etc/shadow 文件中的第4個字段;
注:幾天后才能修改一次密碼
-M 天數:修改密碼的有效期,也就是 /etc/shadow 文件中的第5個字段;
注:每隔多少天更新一次密碼
-W 天數:修改密碼到期前的警告天數,也就是 /etc/shadow 文件中的第6個字段;
-i 天數:修改密碼過期后的寬限天數,也就是 /etc/shadow 文件中的第7個字段;
注:過期后還可以使用的天數,達到這個天數后,賬號失效-E 日期:修改賬號失效日期,格式為 YYYY-MM-DD,也就是 /etc/shadow 文件中的第8個字段;

案例:新創建一個賬號lamp,設置初始化密碼為123456。要求用戶第一次登陸后必須強制修改用戶的密碼。

解決思路:把密碼的最后修改時間重置為0(回到1970年1月1日)

# useradd lamp
# echo 123456 |passwd --stdin lamp# chage -d 0 lamp

運行效果:

案例:設置lamp賬號的過期時間為2010-04-10

# chage -E "2020-04-10" lamp

案例:設置lamp賬號的10天后過期(延伸)

# chage -E $(date +%F -d '+10 days') lamp
%F:YYYY-mm-dd,格式2020-04-01
-d:多少天以后的日期

案例:設置mysql用戶60天后密碼過期,至少7天后才能修改密碼,密碼過期前7天開始收到告警信息

# useradd mysql
# echo 123456 |passwd --stdin mysql# chage -M 60 -m 7 -W 7 mysql

練習題

創建3個普通用戶stu1~stu3,要求如下:

  1. stu1默認創建,密碼為123
  2. stu2的家目錄為/rhome/redhat/stu2,密碼為123
  3. stu3用戶不能登錄操作系統,密碼為123

6、用戶組管理

☆ 用戶和組的關系

核心:組的目的是為了方便管理用戶

  • 用戶是操作系統上管理維護系統或服務的人
  • 組是用戶的一個屬性信息
  • 任何一個用戶默認都會有一個主組(默認組)
  • 一個用戶除了主組也可以有多個其他組(附加組)

一問:用戶的主組和附加組到底有啥關系呢?

答:用戶的主組和附加組半毛錢關系都木有

二問:那要這個主組或者附加組有啥用呢?

答:肯定是有用的,組的目的是方便管理用戶,用戶的目的是管理操作文件,文件就有權限這個屬性。

  1. 用戶要操作一些文件,文件是由用戶創建,不同用戶創建的文件的屬性信息也就不一樣
  2. 文件的屬性都有啥呢?比如,文件的創建者,文件屬于哪個組,文件大小,文件時間等
  3. 其中,不同用戶所創建的文件的屬組就是該用戶的主組(默認組)
  4. A用戶附加組也有可能是其他用戶的主組,道理同上(權限章節再細細體會組的作用)

☆ 用戶組管理

group組,添加add,修改mod,刪除del

groupadd 添加用戶組

groupmod 修改用戶組

groupdel 刪除用戶組

☆ 添加用戶組

# groupadd [選項 選項的值] 用戶組名稱
選項說明:
-g :創建用戶組時指定用戶組編號GID,0代表超級管理員root組,1-999代表系統用戶組,1000以后代表普通用戶組

案例:在系統中創建一個admin組

# groupadd admin

案例:在系統中創建一個itcast組,并指定用戶組的編號為1200

# groupadd -g 1200 itcast

問題:用戶組創建完成后,如何判斷是否創建成功?

# tail -1 /etc/group

☆ 與用戶組相關的文件

在Linux系統中,與用戶組相關的文件 => /etc/group

# vim /etc/group
root:x:0:
第1列:代表用戶組的組名稱
第2列:代表用戶組的組密碼,使用一個x占位符(基本已經不使用了)
第3列:代表用戶的組ID編號GID的值
第4列:代表用戶組內的用戶信息

☆ 修改用戶組

# groupmod [選項 選項的值] 用戶組名稱
選項說明:
-g :gid縮寫,代表修改用戶所屬組的ID編號
-n :name縮寫,代表修改用戶組的名稱

案例:更改itcast用戶的GID編號(從1200 => 1005)

# groupmod -g 1005 itcast

☆ 刪除用戶組

# groupdel 用戶組的名稱

注意:在Linux操作系統中,如果想刪除某個用戶組,必須要保證這個組不能是某個用戶的主組。

案例:刪除itcast用戶組

# groupdel itcast

案例:刪除admin用戶組

# groupdel admin

7、附屬組管理

基本語法:

# gpasswd [選項 選項的值] 用戶組的名稱
-a :添加用戶到組,append追加
-d :從組中刪除成員,delete移除
-A :指定管理員,Admin管理員
-M :指定組成員,可以批量添加用戶到組中問題解析:-a與-M到底有啥區別?
-a一次只能追加一個用戶到附屬組中(-a,append,追加的形式,原有用戶不覆蓋)
-M一次可以追加多個用戶到附屬組中(覆蓋追加,先把原有用戶刪除,然后添加我們的用戶)

案例:創建3個用戶user01~user03,將user01添加到sysadmin組里(附屬組)

# useradd user01
# useradd user02
# useradd user03
# groupadd sysadmin① 方案1
# usermod -G sysadmin user01
② 方案2
# gpasswd -a user01 sysadmin

案例:把user02、user03添加到sysadmin組中

① 方案1
# gpasswd -a user02 sysadmin
# gpasswd -a user03 sysadmin② 方案2
# gpasswd -M user02,user03 sysadmin

案例:從附屬組中移除某個賬號

# gpasswd -d 移除的用戶名稱 附屬組名稱# gpasswd -d user03 sysadmin
Removing user user03 from group sysadmin

二、文件權限管理

1、什么是權限

權限:在計算機系統中,權限是指某個計算機用戶具有使用軟件資源的權利

2、權限的目的

文件權限的設置目的:是想讓某個用戶有權利操作文件

3、權限的分類

  • 普通權限rwx
    用戶正常情況去操作文件所具有的權限
  • 高級權限st
    用戶對某個文件操作有特殊需求,而普通權限不能滿足,需要給文件設置高級權限
  • 默認權限umask
    用戶在系統中創建一個文件,該文件默認都會有一個權限,該權限是默認有的

注意:

權限是設置在文件上的,而不是用戶

4、普通權限rwx(重點)

☆ read讀權限

  • 針對目錄
    一個目錄擁有r權限,說明可以查看該目錄里的內容(ls命令列出)
  • 針對普通文件
    一個普通文件擁有r權限,說明可以查看該文件的內容(cat/head/tail/less/more等命令查看)
  • 讀權限r(read)用數字表示是4

☆ write寫權限

  • 針對目錄
    一個目錄擁有w權限,說明可以在該目錄里創建、刪除、重命名等操作(mkdir/touch/mv/rm等)
  • 針對普通文件
    一個普通文件擁有w權限,說明可以修改文件的內容(vi/vim編輯器編輯文件)
  • 寫權限w(write)用數字表示是2

☆ execute執行權限

  • 針對目錄
    一個目錄擁有x權限,說明可以進入或切換到該目錄里(cd命令)
  • 針對普通文件
    一個普通文件擁有x權限,說明可以執行該文件(一般程序文件、腳本文件、命令都需要執行權限)
  • 執行權限x(execute)用數字表示是1

rwx = 讀寫執行 = 4 + 2 + 1

☆ -沒有權限

沒有任何權限用橫杠==-表示,數字表示是0==

5、理解UGO

UGO,指的是用戶身份,每個字母代表不同的用戶身份。

  • U(the user who owns it)
    文件的擁有者(owner)或者創建者
  • G(other users in the file’s group)
    在文件的所屬組(默認是創建文件的用戶的主組)里的用戶
  • O(other users not in the file’s group)
    既不是文件的創建者,也不在文件屬組里的用戶,稱為其他人

注意:

除了上面ugo以外,還有一個字母==a==(all users),表示==所有用戶==,包含ugo

6、查看文件的權限

# ls -l 文件名稱
或
# ll 文件名稱

注:如果查看一個文件夾的權限,建議使用-d

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

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

相關文章

CF - 1676 - G White-Black Balanced Subtrees

White-Black Balanced Subtrees - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) #include <bits/stdc.h> using namespace std; int t; int n; vector<int> gv[4005]; string s; int tot; int dp(int x){int val;if(s[x]B){val1;}else if(s[x]W){val-1;}if(gv[x]…

啟智暢想集裝箱箱號識別產品簡介,軟硬件解決方案

產品介紹&#xff1a; 集裝箱車輛進出口通道&#xff0c;部署箱號識別相機&#xff0c;進行全天候監控。通過后端部署箱號識別系統&#xff0c;提供API接口&#xff0c;應用集裝箱識別模型&#xff0c;識別集裝箱箱號&#xff0c;記錄識別圖片。同時記錄識別時間、集裝箱特征圖…

“不喝雞湯 不訴離殤”華火電燃灶用實力引領烹飪灶具發展

在這個快節奏的時代&#xff0c;我們常常被各種廚房電器的雞湯所包圍&#xff0c;并悄悄的告訴我們廚房生活是美好與溫暖的&#xff0c;但面對現實中的挑戰與困難時&#xff0c;常常表現出選擇性失明&#xff1b;那些隱藏在傳統廚房烹飪環境下的危機&#xff0c;就像是慢性的毒…

Spring Boot logback 日志文件配置

引入依賴 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency>logback-spring.xml 配置 <?xml version"1.0" encoding"UTF-8&quo…

Java AI+若依框架項目開發 RuoYi-Vue(SpringBoot + Vue)

1.諾依的版本 本次選擇RuoYI-Vue框架進行講解 官網地址&#xff1a;RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分離權限管理系統&#xff0c;同時提供了 Vue3 的版本 (gitee.com) 2.搭建后端…

vue中使用 json編輯器

<template><div class"stringTest"><vue-json-editorv-model"vstringData" //編輯器中的內容:showBtns"false" // 保存按鈕mode"code"lang"zh":expanded-on-start"true"json-change&quo…

5.Android逆向協議-初識HTTP和HTTPS協議

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a;微塵網校 上一個內容&#xff1a;4.Android逆向協議-詳解二次打包失敗解決方案 從現在開始正式進入協議分析了。 首先客戶端與服務端之…

tkinter拖入txt文本并顯示

tkinter拖入txt文本并顯示 效果代碼 效果 代碼 import tkinter as tk from tkinter import scrolledtext from tkinterdnd2 import DND_FILES, TkinterDnDdef drop(event):file_path event.data.strip({})if file_path.endswith(.txt):with open(file_path, r, encodingutf-8…

Keepalived安裝-單節點

1.服務器信息 服務器版本服務器IPkeepalived版本安裝用戶CentOS Linux release 7.9.2009 (Core)192.168.10.244keepalived-2.2.8.tar.gzrootLinux常規基礎配置參考: Linux常規基礎配置_linux基礎配置-CSDN博客 2.keepalived安裝 -->進入opt目錄,創建keepalived子目錄 …

libpng warning iCCP cHRM chunk does not match sRGB警告解決指南

libpng warning: iCCP: cHRM chunk does not match sRGB警告解決指南 一、問題溯源 當使用 OpenCV 讀取 PNG 圖片時&#xff0c;出現了以下警告&#xff1a; libpng warning: iCCP: known incorrect sRGB profile libpng warning: iCCP: cHRM chunk does not match sRGB這些…

Seatunnel本地模式快速測驗

前言 SeaTunnel&#xff08;先前稱為WaterDrop&#xff09;是一個分布式、高性能、易于擴展的數據集成平臺&#xff0c;旨在實現海量數據的同步和轉換。它支持多種數據處理引擎&#xff0c;包括Apache Spark和Apache Flink&#xff0c;并在某個版本中引入了自主研發的Zeta引擎…

在Python asyncio中如何識別協程是否被block了

現在asyncio在Python中的使用越來越廣泛了,但是很多人對于協程(corotine)的一些使用方式還不太熟悉。在這篇文章中,我將會介紹如何識別協程是否被block了,并以常用的HTTP網絡庫requests/httpx為例來說明如何避免協程被block的問題。 為什么協程會被block 在Python中,可…

Django學習第二天

啟動項目命令 python manage.py runserver 動態獲取當前時間 javascript實現數據動態更新代碼 <script>setInterval(function() {var currentTimeElement document.getElementById(current-time);var currentTime new Date();currentTimeElement.textContent Curren…

經典的卷積神經網絡模型 - ResNet

經典的卷積神經網絡模型 - ResNet flyfish 2015年&#xff0c;何愷明&#xff08;Kaiming He&#xff09;等人在論文《Deep Residual Learning for Image Recognition》中提出了ResNet&#xff08;Residual Network&#xff0c;殘差網絡&#xff09;。在當時&#xff0c;隨著…

【List】判斷集合相等、集合拷貝

【List】判斷集合相等、集合拷貝 【一】判斷集合是否相等【1】☆使用list中的containAll【2】使用for循環遍歷contains方法【3】將list先排序再轉為String進行比較【4】使用list.retainAll()方法【5】使用MD5加密方式【6】轉換為Java8中的新特性steam流再進行排序來進行比較 【…

AI數字人直播源碼出售價格公布!

隨著數字人行業的興起&#xff0c;以數字人直播為代表的應用場景逐漸成為人們日常生活中不可分割的一部分&#xff0c;再加上艾媒研究數據顯示&#xff0c;超五成以上的被調查群體的企業使用過虛擬人技術&#xff0c;超三成被調查群體的企業計劃使用虛擬人技術等結論的公布&…

python-圖像模糊處理(賽氪OJ)

[題目描述] 給定 n 行 m 列的圖像各像素點的灰度值&#xff0c;要求用如下方法對其進行模糊化處理&#xff1a; 1. 四周最外側的像素點灰度值不變。 2. 中間各像素點新灰度值為該像素點及其上下左右相鄰四個像素點原灰度值的平均&#xff08;四舍五入&#xff09;輸入&#xff…

【C語言】inline 關鍵字

在C語言中&#xff0c;inline關鍵字用于建議編譯器對函數進行內聯展開&#xff0c;而不是像普通函數一樣調用。內聯函數的目的是減少函數調用的開銷&#xff0c;特別是對于簡單的、頻繁調用的函數。 內聯函數的定義和使用 定義內聯函數 要定義一個內聯函數&#xff0c;需要在…

《代號鳶》國服,能否推動國乙市場重新洗牌?

靈犀互娛《如鳶》順利拿到版號&#xff0c;再次攪渾了國乙市場這潭水。 六月份游戲版號審批公布后&#xff0c;靈犀互娛運營的《如鳶》引起了關注&#xff0c;這個與《代號鳶》原名《三國志如鳶》雷同的名字&#xff0c;竟然讓《代號鳶》玩家大面積破防了。 其實目前關于《如…

for循環中list觸發fast-fail或不觸發的原理和方法

Iterable和Iterator Iterator接口位于的位置是java.util.Iterator&#xff0c;它主要有兩個抽象方法供子類實現。hasNext()用來判斷還有沒有數據可供訪問&#xff0c;next()用來訪問下一個數據。 集合Collection不是直接去實現Iterator接口&#xff0c;而是去實現Iterable接口…