linux用戶及文件管理

来源:https://www.cnblogs.com/plyx/archive/2018/05/31/9114654.html
-Advertisement-
Play Games

幫助命令 whatis 命令 #顯示命令的簡短功能 man 命令 #查看手冊頁和命令描述 命令--help #適用於外部命令 help 命令 #適用於內部命令 type 命令 #查看命令內嵌還是外部 文件管理 位置判斷 絕對路徑 :從/開始 相對路徑:以 . 或 .. 開始的 文件管理 touch/ ...


幫助命令

whatis 命令  #顯示命令的簡短功能

man    命令  #查看手冊頁和命令描述

命令--help    #適用於外部命令

help    命令  #適用於內部命令

type 命令    #查看命令內嵌還是外部

文件管理

位置判斷

絕對路徑 :從/開始

相對路徑:以 . 或 .. 開始的

文件管理

touch/mkdir/mv/rm/cp    #創建/修改/移動/刪除/複製

#創建文件

touch    #創建空文件,文件存在修改時間

touch file{1..n}        #批量創建文件

vi  file                      #vi創建文件

cat EOF<< >file    #重定向創建文件

XXXXXX

EOF

echo"xxx">file      #重定向創建文件

#創建目錄

mkdir -p/a/b/c            #父目錄子目錄一起創建

mkdir  -v/a                  #創建顯示信息

mkdir -p/a/{1..101}    #批量創建目錄

#移動文件

mv file1 file2              #重命名文件

mv /a/file1 /b              #移動文件

#刪除文件

rm -r/a/*                      #刪除目錄下所有文件

rm -rf/a/*                    #強制刪除不提示

#複製文件

語法 cp-r 源文件 目標文件

cp -r /a /b                    #遞歸,包含目錄下的子目錄一併處理

#查看文件

ls -a 文件                    #顯示所有文件及文件夾

ls -l 文件                      #格式化顯示目錄下的內容列表

cat -n 文件                  #對輸出的所有行進行編號

cat -b 文件                #對非空的輸出行進行編號

cat -s 文件                #多行的空行合併為一個空行

more 文件                #分佈顯示文件內容,不支持向前翻頁

less 文件                #可前後翻頁

head -n 文件            #顯示從文件頭開始到n的行數,預設顯示前10行

tail 文件                  #顯示文件尾部內容,預設顯示末尾10行

tail -nf 文件              #動態顯示文件末尾n行的內容

xfs文件系統備份與恢復

xfs備份介紹

XFS提供了 xfsdump 和 xfsrestore 工具協助備份XFS文件系統中的數據。xfsdump 按inode順序備份一個XFS文件系統。

與傳統的UNIX文件系統不同,XFS不需要在dump前被卸載;對使用中的XFS文件系統做dump就可以保證鏡像的一致性。這與XFS對快照的實現不同,XFS的dump和restore的過程是可以被中斷然後繼續的,無須凍結文件系統。xfsdump 甚至提供了高性能的多線程備份操作,把一次dump拆分成多個數據流,每個數據流可以被髮往不同的目的地。

首先瞭解一下xfsdump的備份級別有以下兩種,預設為0(即完全備份)

完全備份 0

增量備份 1-9

備份

語法: xfsdump –f 備份存放位置 要備份路徑

#互動式備份

xfsdump -f /opt/dump_sdb1 /sdb1                      

# -L 指定備份會話標簽 -M 指定設備備份標簽

#非互動式備份

xfsdump -f /opt/dump_sdb1 /sdb1-Ldump_sdb1-Mmedia0       

# 指定文件備份

xfsdump -f /opt/dump_sda1_passwd-spasswd /sda1-Ldump_sda1_passwd-Mmedia1

#克隆目錄到另一個目錄

xfsdump -/sda1 | xfsrestore -/data/

#克隆指定目錄到另一個目錄

xfsdump--stest /sda1  | xfsrestore-/data/

恢復

語法: xfsrestore –f 指定恢覆文件的位置 要恢復的目錄

xfsrestore-f /opt/dump_sdb1 /sdb1

#指定恢復單個文件

xfsrestore -f/opt/dump_sdb1-spasswd /sdb1

用戶管理

用戶分類

超級用戶: root  擁有對系統的最高的管理權

普通用戶:系統用戶 UID:1-999(RHEL7)      1-499(RHEL6)

​                  本地用戶 UID:1000+                    500+

虛擬用戶:偽用戶  一般不會用來登錄系統的,它主要是用於維持某個服務的正常運行

#創建用戶

useradd -m -u -d- g"初始組" -G"附加組" -s "登陸的shell" "用戶"

-m  創建用戶主目錄/home

-g    設置用戶的初始組名稱或id

-G    設置用戶附屬組

-s    設置用戶登陸shell ,/sbin/nologin  禁止登陸系統

-u      指定用戶的uuid

-d    指定用戶的主目錄

#改變用戶信息

usermod -aG 組名 用戶名

-u      UID

-d      宿主目錄

-g      起始組            #只能有一個

-G      附加組            #可以有多個

-s      登錄shell

-L      鎖定

#刪除用戶及家目錄

userdel -r user

#創建用戶密碼

passwd user

echo123456 |passwd --stdin user

#修改密碼

chage 用來更改用戶密碼過期信息

-m:密碼可更改的最小天數。為0時代表任何時候都可以更改密碼

-M:密碼保持有效的最大天數

-W:用戶密碼到期前,提前收到警告信息的天數

-E:帳號到期的日期。過了這天,此帳號將不可用

-d:上一次更改的日期,為0表示強制在下次登錄時更新密碼

-I:停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用

-l:(list)列出當前的設置,由非特權用戶來確定他們的密碼或帳號何時過期

#添加用戶到指定組

gpasswd

-a:添加用戶到組;

-d:從組刪除用戶;

-A:指定管理員;

-M:指定組成員和-A的用途差不多;

-r:刪除密碼;

-R:限制用戶登入組,只有組中的成員才可以用newgrp加入該組。

gpasswd -a users user

授權

#創建用戶

useradd user

#編輯sudoers文件

vi /etc/sudoers

## Allows people in group wheel to run all commands

%wheel ALL=(ALL)      ALL

## Same thing without a password

# %wheel      ALL=(ALL)      NOPASSWD: ALL

use rALL=(ALL)  NOPASSWD:ALL

加%表示組,NOPASSWD表示使用sudo不需要密碼認證

文件許可權管理

文件基本許可權

#查看文件許可權

ll /etc/passwd

-rw-r--r--.1root root9305月2306:46 /etc/passwd

p 表示命名管道文件

d 表示目錄文件

l 表示符號連接文件

- 表示普通文件

s 表示socket套介面文件,比如我們啟用mysql時,會產生一個mysql.sock文件

c 表示字元設備文件

b 表示塊設備文件

#文件屬性說明

-|rw-|r--|r--|屬主|屬組|修改時間|對象:文件名

rw-  文件所有者對文件具有讀取、寫入的許可權

r--  用戶組裡用戶則具有讀取的許可權

r--  其他用戶則具有讀取的許可權

#更改文件的屬主和屬組

語法:chown chgrp+文件或目錄

chown user:user text.txt    更改文件的屬主,屬組

chown user text.txt                更改文件的屬主

chown:user text.txt            更改文件的屬組

chown -R user:user /text    更改目錄的屬主,屬組

chgrp user text.txt                更改文件的屬組

#修改許可權

語法:chmod+  文件或目錄

+-=                      添加或者刪除對應的許可權

r=4,w=2,x=1數字許可權

u+-=(rwx)      添加刪除擁有者許可權

g+-=(rwx)      添加刪除組的許可權

o+-=(rwx)      添加刪除其他的許可權

a+-=(rwx)      添加刪除所有用戶的許可權

chmodu+x test.txt    添加擁有者可執行的許可權

chmoda-r text.txt    刪除所有人可讀的許可權

#文件預設許可權

umask    設定文件的預設值,從許可權中去掉部分許可權

umask    000-777

預設創建目錄許可權為777-022=755

預設創建文件許可權為666-022=644

修改umask的值,改變預設文件目錄許可權

vi/etc/profile | $[HOME]/.bash.profile | $[HOME]/.profile

if[$UID-gt199] && ["`id -gn`"="`id -un`"];then

    umask002

else

    umask022

#查看文件許可權

ll /etc/passwd

-rw-r--r--.1root root9815月2517:34 /etc/passwd

stat -c %a /etc/passwd

644

stat -c %A /etc/passwd

-rw-r--r--

文件高級許可權

特殊許可權

SUID:限定:只能設置在二進位可執行程式上面,對目錄設置無效。

功能:程式運行時的許可權從執行者變更成程式所有者。

SGID:限定:既可以給二進位可執行程式設置,也可以對目錄設置。

功能:在設置了SGID許可權的目錄下建立文件時,新創建的文件的所屬組會繼承上級目錄的所屬組。

Stickybit:粘滯位許可權是針對目錄的,對文件無效,也叫防刪除位。

SGID SUID Stickybit

u=4,u+s | g=2,g+s | o=1,o+t

#增加特殊許可權

chmod u+s text.txt  對文件需要可執行許可權

chmod g+s /text    對目錄使用

chmod o+t /text    只能針對目錄

chmod 4777 text.txt  對文件需要可執行許可權

chmod 2777 /text    對目錄使用

chmod 1777 /text    只能針對目錄

ACL訪問控制列表

ACL: 訪問控制列表

它是一種許可權分配之外的普遍範式。例如,預設情況下你需要確認3個許可權組:UGO。而使用ACL,你可以增加許可權給其他用戶或組別,可以允許指定的用戶A、B、C擁有寫許可權而不再是讓他們整個組擁有寫許可權。

#ACL參數解釋

ACL_USER_OBJ: 相當於Linux里file_owner的許可權

ACL_USER: 定義了額外的用戶可以對此文件擁有的許可權

ACL_GROUP_OBJ: 相當於Linux里group的許可權      

ACL_GROUP: 定義了額外的組可以對此文件擁有的許可權

ACL_MASK: 定義了ACL_USER, ACL_GROUP_OBJ和ACL_GROUP的最大許可權

ACL_OTHER: 相當於Linux里other的許可權

#查看ACL

getfacl  /etc/passwd

# file: etc/passwd

# owner: root

# group: root

user::rw-

group::r--

other::r--

#設置文件許可權

#創建文件

touch  a.txt

#查看acl

getfacl a.txt            

# file: a.txt

# owner: root

# group: root

  user::rw-

  group::r--

  other::r--

#設置文件acl

setfacl -m:: a.txt    設置用戶,組許可權

setfacl -m: a.txt    設置mask的許可權

#設置預設目錄許可權

setfacl -md::: /test 目錄中所有新建文件都繼承此許可權,這個許可權對目錄本身不生效,並且不會影響目錄中已經存在的文件

#刪除acl許可權

setfacl -x: a.txt 刪除用戶組acl許可權

setfacl -xd:: a.txt 刪除預設目錄下acl許可權

setfacl -b a.txt  刪除所有acl許可權

#acl許可權複製

getfacl  /text | setfacl --set-file=/text1

文件鎖

chattr 命令的作用很大,通過chattr命令修改文件屬性能夠提高系統的安全性,包括(root)但是它並不適合所有的目錄,chattr命令不能保護/,/dev,/tmp,/var等目錄。

#chattr屬性

chattr +-=文件#添加,刪除,給予許可權

chattr +a

對文件來說:只能在文件中追加數據,但現有數據不能刪除也不能進行修改

對目錄來說:只能只允許在目錄中建立和修改文件,但是不允許刪除

chattr +i

對文件來說:不能修改,刪除文件,也不能添加和修改其內的數據,但可以查看文件裡面的內容

對目錄來說:只能修改目錄下的文件數據,但不能建立和刪除文件

lsattr 文件      #查看文件屬性

#舉例說明(針對文件)

touchb.txt

chattr+a b.txt

echo"123456">b.txt  無法修改

-bash: b.txt: 不允許的操作

echo"123456">>b.txt &&echook  可以追加

ok

chattr+i b.txt

echo"123456">b.txt

-bash: b.txt: 不允許的操作

echo"123456">>b.txt

-bash: b.txt: 許可權不夠

catb.txt    可以查看

123456

123456

123456

#舉例說明(針對目錄)

mkdirb

chattr+a b

touchb/{file1,file2}

rm-rfb/file1

rm: 無法刪除"b/file1": 不允許的操作

echo123456>b/file1

catb/file1

123456

chattr+i b

touchb/file4

touch: 無法創建"b/file4":

rm-rfb/file1

rm: 無法刪除"b/file1": 許可權不夠

echoaaaa>b/file1

catb/file1

aaaa

我是MIkel Pan,雲計算愛好者,定期更新生活感悟,心靈進化者就在MIkel Pan,喜歡我就來找我吧!

博客園地址:http://www.cnblogs.com/plyx/
簡書地址:https://www.jianshu.com/u/5986765934f4

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

-Advertisement-
Play Games
更多相關文章
  • 話不多說,直接代碼 ...
  • 原理就是,先從梁的LocationCurve上取點,然後向板的上錶面投影。如果有投影點,再從投影點(板上)向梁的底面投影,這時候如果有投影點的話就能得到距離了。 運用該分析的第一條件是梁是在板的上方,勿忘哈! LocationCurve的延伸: 在Curve上按PointRange選取點位: 獲取距 ...
  • 添加 父節點,併為父節點添加子節點 移除選中節點(父/子都可以移除) 為節點添加圖標(父/子都可以添加) ...
  • src直接寫入api地址,filename是對應伺服器視頻存儲的地址。 後臺對應代碼 ...
  • 轉發請註明出處:https://home.cnblogs.com/u/zhiyong-ITNote/ 整個Demo是基於Controller-Service-Repository架構設計的,每一層之間是通過介面來實現解耦與調用的,參照了《ASP.NETMVC5框架揭秘》一書最後的網站示例架構,使用U ...
  • 路由跟URL 重寫的功能性略有不同。路由是將Request 找到對應的服務,而URL 重寫是為了推卸責任轉送Request。本篇將簡單介紹下ASP.NET Core的URL重寫(URL Rewrite)。 URL Rewrite 註冊 URL Rewriting Middleware需要Micros ...
  • 用ASP.NET Core 2.0 建立規範的 RESTful API -- 建立Richardson成熟度2級的DELETE, UPDATE, PATCH 和 Log。 之前一篇文章講了POST和GET。 ...
  • [1] Linux中 “shell終端” 和 “bash解釋器” 的區別 shell終端是通過基於系統調用介面開發出的程式,用來讓用戶與系統進行對話,管理計Linux系統。它是一個命令行工具,操作類似於Windows下的CMD工具。shell終端工具有很多,bash解釋器只是其中的一種,而且是主流L ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...