Linux許可權

卖雨伞的小男孩發表於2024-09-27

一、使用者許可權
1、直譯器
/bin/sh 預設
/bin/bash 預設
/sbin/nologin 虛擬使用者
/dash ubuntu

2、使用者配置

使用者資訊配置檔案 /etc/passwd

一行內容 tjer:x:1000:1000:tjer:/home/tjer:/bin/bash
(使用者名稱 密碼 uid gid 註釋 直譯器)

密碼檔案地址 /etc/shadow
組資訊地址 /etc/group

/bin/bash 可以登入
/sbin/nologin 不可以登入

3、使用者相關命令

useradd 建立使用者
usermod 修改使用者資訊
userdel 刪除使用者 -f強制 -r家目錄刪除
passwd 更改使用者密碼
chpasswd 批次更新使用者密碼
chage 修改使用者密碼屬性
id 檢視uid gid 組資訊
su 切換使用者 示例 su - tjer(不加-環境變數不會帶過去) 密碼(tjer的密碼) -c切換後執行命令
sudo 以root許可權執行命令
visudo 編輯sudoers配置檔案
groupadd
whoami 顯示當前使用者
who 顯示當前登入使用者(比w全)
w 顯示當前登入使用者
last 最後使用者的登入資訊
lastlog 顯示比last詳細的悉尼

4、建立使用者的過程
/home/tjer
.bash_profile 使用者個人配置檔案


刪除tjer目錄後,tjer無法執行登入 可以建立tjer目錄 mkdir /home/tjer 然後cp /etc/skel/.bash* /home/tjer

useradd 建立使用者 /etc/passwd -c 加備註 -d設定起始目錄 -D變更預設值 -e有效期 -g群組 -m自動建立登入目錄 -M不要自動建立登入目錄 -n取消建立以使用者名稱為名的組 -r建立系統賬號 -s(shell)指定登入使用的shell -u(udi)使用者id

passwd 設定密碼

使用uderadd->系統讀取/etc/login.defs(使用者定義檔案)和etc/default/userad(使用者預設配置檔案)倆檔案中的規則定義建立新使用者->向/etc/passwd和/etc/shadow /etc/gshadow新增密碼資訊->根據/etc/default/useradd建立家目錄->/etc/skel所有檔案複製到新的家目錄


5、sudo詳解
sudo command
su -root
visudo 編輯許可權給某個使用者


二、檔案屬性
1、命令
ll
ls
l -a
ln -s link命令 建立連結(類似widnows傳送快捷方式)
chmod u+x ./hello.sh 給屬主新增執行許可權
chmod 0
touch filename 當前目錄落地一個檔案

2、
-rw-r--r-- 1 tjer tjer 3854 4月 27 2023 .bashrc
drwx------ 2 tjer tjer 4096 12月 14 2023 .box/

[1屬性][3屬主許可權][3屬組許可權][3其他人許可權] [屬主][屬組][大小] 修改日期 檔名

許可權值 排列順序 ---------- -rw-rw--- 10位
- (無許可權)
r (read)
w (write)
x (exec)


-普通檔案
d資料夾
l軟連線

3、更改檔案許可權(chanage mod)
檔案的許可權必須嚴格按照順序rwx
chmod u+x filename 給屬主新增執行許可權
chmod g-x filename 給陣列去掉執行許可權
chmod u=rw
chmod 0 filename 給屬性清零
chmod o=x filename 其他人許可權為x
chmod a=r filename 相當於一次性修改檔案許可權為只讀 相當於chmod 444

4、更改資料夾的許可權
資料夾的讀許可權體現在ls
資料夾的執行許可權體現在可以cd資料夾
資料夾的寫許可權體現在可以touch等

資料夾先有w許可權才能touch mkdir等
資料夾先有x許可權才能cd進入

5、檔案個數字的匹配

r w x r w x r w x
4 2 1 4 2 1 4 2 1

檔案許可權如下test.txt
-rwx -w- --x
修改許可權如下:屬主只讀,其他人無許可權
chmod u=r test.txt chmod g-w test.txt chmod o=x test.txt 需要三組

rwx 4+2+1 7
r-x 4+0+1 5
-w- 0+2+0 2
--- 0+0+0 0
chmod 400 test.txt

設定許可權為
-w-r--r-- chmod u=w,g=r,o=r test.txt chmod 244 test.txt

設定許可權為755 字母表示許可權
rwxr-xr-x

數字666 rw-rw-rw-
數字542 r-xr---w-
數字443 r--r---wx

6、修改檔案的屬組、屬主(change owner) chown tjer filename(dir)

chown tjer filename 送給人
chown :tjer_group filename 送給組
chown group:tjer filename 送給組和人
-R 遞迴修改檔案的屬組屬主

chowm -R root:root dir/* 所有檔案都修改 使用管理員許可權


7、使用umask命令(用來限制新檔案的許可權)永久修改編輯此檔案/etc/profile 否則umask 0002設定
檔案、資料夾的許可權最高為777

root建立檔案、資料夾的許可權
系統預設檔案666 資料夾777 減去umask

普通使用者建立檔案、資料夾的許可權 umask 0002
664 775

8、chattr 更改檔案的擴充套件屬性,比chmod更加底層
引數 a 只能向檔案新增資料,不能刪除
引數-R 遞迴更改目錄屬性
引數-V 顯示命令執行過程
模式+ 新增引數
模式- 移除引數
模式= 更新為指定引數
A不讓系統修改最後的訪問時間
a檔案資料只能追加,不能刪除
i檔案不能被刪除、改名、修改內容

三、linux的萬用字元

常見萬用字元

* 匹配任意 0或多個字元
? 匹配任意一個字元 有且只有一個字元
符號集合 匹配一堆字元或文字
[] 匹配其中的任意字元 [absf]
[a-z] 匹配a到z之間的任意一個字元,要求連續字元
[1-9] 匹配1-9之間的任意一個數字,要求連數字
[!abcd]不匹配括號中的一個字元,也可以是[!a-d]
[^abcd]不匹配括號中的一個字元,也可以是[^a-d]

特殊萬用字元

[[:upper:]] 所有大寫字母
[[:lower:]] 所有小寫字元
[[:alpha:]] 所有字母
[[:alnum:]] 所有字母和數字
[[:space:]] 所有空白字元
[[:punct:]] 所有標點

示例 找出跟目錄下最大資料夾深度是3,且以l開頭的檔案,以小寫字母結尾,中間出現任意一個字元的文字檔案

find / -maxdepth 3 -type f -name l?[a-z]

示例找出/tmp下任意一個數字開頭且以非數字開頭的檔案

find /tmm -type f -name [0-9][!0-9]


五、特殊符號

單引號'' 所見即所得,強引用
雙引號"" 可以解析特殊符號、變數、轉移符號,解析後在輸出結果
沒有引號 一般是連續的字串、數字、路徑可以省略雙引號,遇見特殊字元、空格、變數必須加上雙引號
反引號 `` 常用於引用命令結果、同於$(命令)

六、重定向

輸入流:<--標準輸入stdin 鍵盤
輸出流:-->標準輸出stdout 顯示器
錯誤輸出流: -->輸出錯誤stderr


程式啟動時候預設開啟三個I/O裝置檔案
stdin 檔案描述符0 <或0< (覆蓋) <<或0<<(追加)
stdout 檔案描述符1 >或1>(覆蓋)>>或1>>(追加)
stderr 檔案描述符2 >或2>(覆蓋)>>或2>>(追加)

七、其他特殊符號

; 1、表示命令結束 2、命令分隔符 ls;pwd 先前者再後者 3、註釋符 系統不會讀取的部分
| 管道符 第一個結果給第二個
#註釋內容 root身份提示符
$ $變數 取變數的值 普通使用者提示符
\轉移符

{}生成序列 引用變數作為分隔
生成文字 touch test{1..20} test.txt touch {a..z} text.txt
生成檔案 mkdir {test1,test2,test3}
快速備份檔案 cp /tmp/test.txt{,.backup} 會備份成test.txt.backup

&&前一個命令成功再執行下一個
|| 前一個失敗就下一個
!取反、vim的強制退出、找出歷史命令

相關文章