1. 程式人生 > 其它 >三菱FX5U-32M與上位機通訊(C#)

三菱FX5U-32M與上位機通訊(C#)

day13筆記總結

內容相關:檔案、使用者許可權管理

系統使用者分類

  • 普通使用者

  • 超級使用者

  • 使用者組

不同的使用者,以及不同的組,對於linux的檔案操作,許可權高地,許可權不同。

讀取 cat,more,tail

寫入 echo 追加 ,vim編輯,cat重定向

修改,修改檔案屬性,mv改名字,修改檔案許可權

執行, 檔案中寫的是可執行的語句,如bash語句,python的指令碼檔案

執行一般指的是,檔案中寫的是程式語言的語句的一個特殊檔案

可以執行該檔案,稱之為指令碼

為什麼要許可權分類

1、保護伺服器資料、檔案、程序等

2、不要莫名其妙的背黑鍋,許可權限制(你作為運維,要限制其他使用者的許可權,不要傷害你的機器,否則你就背黑鍋)

3、針對不同部門,不同員工的工作職責,分工不同,許可權應該做好限制。

4、對來自外部的惡意攻擊進行防禦。

許可權分類

檔案及資料夾的許可權分類

  許可權針對檔案,file 許可權針對目錄,directory
讀r,read 表示可以檢視檔案內容;cat 表示可以(ls)檢視目錄中存在的檔名稱
寫w,write 表示可以更改檔案的內容;vim 修改,儲存退出 表示是否可以刪除目錄中的子檔案或者新建子目錄(rm/touch/mkdir)
執行x,executable 表示是否可以執行檔案,一般指二進位制檔案、或者指令碼檔案 表示是否可以進入目錄中(cd)

 

檔案許可權分解

檔案所有者分類u g o a

特殊使用者

all 角色

在後續使用linux命令,修改檔案許可權時,除了會用到 u、g、o三個角色,還會使用all(縮寫a),表示一次性對三個角色,設定許可權。

root 使用者

linux中的root使用者是特殊使用者,是系統的超級管理員,有最大許可權,可以任意修改linux檔案,因此權利越大、責任越大。

工作裡儘量都不用root,以防出故障。

都是使用普通使用者,然後運維給配置sudo許可權這樣去用。

數字化許可權表示

許可權 對應數字 意義
r 4 可讀
w 2 可寫
x 1 可執行

 

檢視檔案屬性命令

[root@yuanlai0224 ~]# ll 
total 68
-rw-------. 1 root root 1624 Feb 27 18:12 anaconda-ks.cfg

drwxr-xr-x. 2 root root   24 Mar  4 20:59 chaoge
#對應數字轉化755
drwxr-xr-x. 5 root root   44 Mar  4 17:10 data
drwxr-xr-x. 2 root root    6 Mar 15 19:13 Desktop
drwxr-xr-x. 2 root root    6 Mar 15 19:13 Documents
drwxr-xr-x. 2 root root    6 Mar 15 19:13 Downloads
-rw-r--r--. 1 root root 2253 Mar  6 16:11 gushi2.txt
-rw-r--r--. 1 root root  168 Mar  6 18:48 gushi3.txt
-rw-r--r--. 1 root root   42 Mar  6 18:54 gushi4.txt
-rw-r--r--. 1 root root  318 Mar  6 13:55 gushi.txt
drwxr-xr-x. 3 root root   22 Mar  3 21:34 home

 

檔案許可權修改命令

設定、或修改檔案許可權,需要使用命令

語法(change mode)
chmod 選項 許可權   檔案

作用:設定、修改檔案的許可權(包括設定user,group,other對應的許可權)

選項: -R 遞迴設定資料夾許可權

注意:使用該命令,要麼是root登入,要麼是屬主(你不可能隨便修改別人的資料)

字母許可權型別修改

u = + - rwx

g = + - rwx

o = + - rwx

a = + - rwx

 

特別的

檔案、目錄的的rwx

1.想要刪除檔案,要看是否有該檔案所在目錄,目錄是否有w許可權,才可以刪除檔案,且還得有x許可權,才能進入資料夾。(用普通使用者測試)

 

檔案屬主 屬組許可權更改

屬主更改命令

chown命令

語法
  chown -R 新屬主名 檔案路徑

作用
  修改檔案的屬主

注意
  誰能在公司裡,隨便篡改資產屬於誰?個人肯定不行,老闆能行。
  linux能修改檔案許可權的,只有root
   

批量修改檔案屬主屬組
chown 屬組:屬組   檔案

屬組更改命令

chgrp命令

語法
  chgrp 引數 組名 檔案

 

學習link新增快捷方式

PATH變數和軟連結區別

新增軟連結方式

命令

ln -s 原始檔資料   目標檔案資料

以程式碼雨軟連結方式舉例

cmatrix

結合使用,設定軟連結和PATH變數的連結使用,高效簡潔快速使用命令設定

對於資料維護,資料迭代更新,提供便利

 

 

day14筆記總結

檔案特殊許可權

Linux系統許可權組成

9位基本許可權之外,linux許可權位,還有3個特殊許可權,一共是12位許可權。

9個基本許可權 rwxrwxrwx

3個特殊許可權

suid(setuid)  設定屬主的特殊許可權

sgid(setgid 設定屬組的特殊許可權

sbit(sticky) 設定其他人員的特殊許可權

特殊許可權對照表

類別 suid sgid sticky
字元表示 S S T
出現位置 使用者許可權位x 使用者組許可權位x 其他使用者許可權位x
基本許可權位有x s s t
數字表示法 4 2 1
八進位制表示法 4000 2000 1000
生效物件 使用者位 使用者組 其他使用者

特殊許可權逐個分解

suid

基礎原理方式

1. suid通過S字元標識,存在於使用者許可權位的x許可權對應位置。
2. 如果某檔案,使用者許可權位本身就有x許可權,給該檔案設定suid許可權時,則以小寫s標識,否則就是大寫的S字元。
3. 給檔案設定s許可權對應的數字表示法是4,八進位制數下可以用4000
4. suid同樣也用chmod設定許可權,可以以字元法,數字法兩種標識。

命令實操

chmod u+s file

功能實現

  • SUID 特殊許可權僅適用於可執行檔案

  • 所具有的功能是,只要使用者對設有 SUID 的檔案有執行許可權,那麼當用戶執行此檔案時,會以檔案屬主的身份去執行此檔案

  • 一旦檔案執行結束,身份的切換也隨之消失。

舉例

/usr/bin/passwd與suid

[yuchao01@yuchao-linux01 ~]$ ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd

普通使用者可以實現執行passwd修改自己的密碼資訊,但是passwd命令需要讀取,修改/etc/passwd、/etc/shadow檔案,這些檔案都是屬於root。

這是普通使用者通過屬主的特殊許可權suid許可權,暫時借用了root身份去執行

警告

請注意:學習SUID是為了知道有它的存在,但不要隨便用

尤其針對刪除命令rm -rf許可權設定

擴充套件學習

find命令根據檔案的許可權查詢

# find搜尋,根據許可權搜尋
[root@yuchao-tx-server ~]# find / -type f -perm -4000 -ls

 

sgid屬組特殊許可權設定

基本原理

1.對於二進位制命令來說,sgid的功能和suid基本一樣,只不過一個是設定檔案屬主的許可權,一個是設定屬組的許可權,和9位基本rwx那個理解概念一樣。

2. suid是獲得檔案屬主的許可權,sgid是獲得檔案屬組的許可權
重點如下
3. sgid主要用於資料夾,為某個目錄設定sgid之後,在該目錄中的建立的檔案,都以(目錄的屬組)許可權為準,而不屬於建立該檔案的使用者許可權,這就實現了多個使用者,可以共享一個目錄的作用。

sgid針對檔案、資料夾的作用

對檔案來說

1. sgid只對二進位制命令生效,且需要二進位制命令本身有x許可權。

2. 執行包含sgid許可權的二進位制命令時,會獲得該命令在執行期間所屬的組的身份與許可權。

對資料夾來說

1. linux中所有的使用者,預設建立的檔案,資料夾,屬主和屬組都是使用者自身。

2. 設定了sgid的目錄,會保證在這個目錄下建立的檔案、資料夾都保持同樣的許可權屬性,都屬於該目錄的屬組許可權。

 

SBIT特殊許可權(sticky bit)

基本原理

 

背景:sbit粘滯位,用的已經很少了,但是對於系統特殊資料夾/tmp來說,是整個系統所有使用者的臨時檔案存放地,誰都有任意的許可權,你會發現該目錄的許可權巨大。
[root@yuchao-tx-server ~]# ll -d /tmp/
drwxrwxrwt. 8 root root 4096 3月 16 18:54 /tmp/
針對777許可權的檔案目錄,其目錄的檔案屬主享受目錄的檔案許可權,造成可以互刪的結果

如果不為目錄設定粘滯位,任何具有該目錄寫和執行許可權的使用者都可以刪除和移動其中的檔案。

當目錄有了粘滯位特殊許可權,這個目錄除了root使用者特殊以外,任何使用者都只能刪除、移動自己的建立的檔案,而不能影響到其他人。

實際應用中,粘滯位一般用於/tmp目錄,以防止普通使用者刪除或移動其他使用者的檔案
因此,t許可權,是用於限制使用者許可權,禁止使用者刪除其他人資料的

 

umask

定義

umask 命令用來限制新檔案許可權的掩碼,也稱之為遮罩碼。

  • 防止檔案、資料夾建立的時候,許可權過大

  • 當新檔案被建立時,其最初的許可權由檔案建立掩碼決定。

圖解umask

  • linux預設資料夾最大許可權是777(資料夾必須、可讀、可寫、可執行)

  • linux檔案預設最大許可權是666(缺少x,因為x專門給可執行命令用,而不是普通檔案)

使用方式

臨時修改umask值

[root@yuchao-linux01 ~]# 
[root@yuchao-linux01 ~]# umask 011
[root@yuchao-linux01 ~]# touch test-umask.txt
[root@yuchao-linux01 ~]# ll test-umask.txt
-rw-rw-rw- 1 root root 0 Jan 16 14:01 test-umask.txt

永久修改umask值(所謂永久修改,指的是資料寫入檔案,每次開機都會載入)

# 1.編輯使用者環境變數檔案,用於設定針對你個人使用者,每次開機想得到一些專屬於你自己的資訊
vim ~/.bashrc

# 2.寫入資訊,儲存
umask 044

# 3. 重啟登入ssh會話
exit

# 4.檢查umask值
[root@yuchao-linux01 ~]# umask
0044

警告

注意umask別設定為基數

注意2:

比如root使用者
預設檔案最大許可權 666
umask值 011

初始檔案許可權,理論是 655

但是結果是這樣嗎
  • 這是因為檔案預設是沒有x許可權的,x許可權一般專門用於二進位制檔案,比如一個可以執行的linux命令。

  • 如果遮罩碼設定為奇數,建立的檔案許可權會自動+1變成偶數許可權。

 

特殊屬性修改

chattr

命令說明

  • chattr用於改變檔案的擴充套件屬性。

  • chmod用於修改檔案9位基礎許可權、r、w、x

  • 更底層的許可權由chattr改變。

語法、引數

引數

a:只能向檔案中新增資料,不得刪除
-R:遞迴更改目錄屬性
-V:顯示命令執行過程

模式
+ 增加引數
- 移除引數
= 更新為指定引數
A 不讓系統修改檔案最後訪問時間
a 只能追加檔案資料,不得刪除
i 檔案不能被刪除、改名、修改內容

特殊屬性檢視

lsattr

lsattr用於檢視檔案擴充套件的屬性。


-R
遞迴地列出目錄以及其下內容的屬性.
-a
列出目錄中的所有檔案,包括以`.'開頭的檔案的屬性.
-d
列出目錄本身的屬性

 

擴充套件學習

檢視檔案的具體屬性型別

file - 確定檔案型別

-b
不輸出檔名 (簡要模式).
-c
檢查時列印輸出幻數檔案的解析結果.常與 -m 一起使用,用來在安裝幻數檔案之前除錯它.
-f 命名檔案
從在引數表前的 命名檔案 中讀出將要檢查的檔名(每行一個檔案).要有 命名檔案 ,或者至少有一個檔名引數; 如果要檢查標準輸入, 使用``-作為檔案引數.
-m list
指定包含幻數的檔案列表.可以是單個檔案,也可以是 用冒號分開的多個檔案.
-n
每檢查完一個檔案就強制重新整理標準輸出. 僅在檢查一組檔案時才有效. 一般在將檔案型別輸出到管道時才採用此選項.
-v
列印程式版本並退出.
-z
試圖檢視壓縮檔案內部資訊.
-L
(在支援符號連結的系統上)選項顯示符號連結檔案的原檔案, 就像 ls(1) 命令的like-named 選項.
-s
通常, file 只是試圖去檢查在檔案列表中那些 stat(2) 報告為正常檔案的檔案的型別.由於讀特殊檔案將可能導致 不可知後果,所以這樣可以防止發生問題.使用 -s 選項時 file 命令也將去讀檔案列表中的塊特殊檔案和字元特殊檔案. 一般用於從原始磁碟分割槽中獲得檔案系統型別,此檔案為塊 特殊檔案. 這個選項也導致 file 命令忽略 stat(2) 報告的檔案大小,因為在有些系統中原始磁碟分割槽的大小報告為0.

 

 

系統環境變數

環境變數:系統中自動生成的關於載入使用者資訊變數如內部日誌,郵件等

 

使用者環境變數檢視

env

[root@yuanlai0224 ~]# env
XDG_SESSION_ID=35
HOSTNAME=yuanlai0224
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=10.96.0.1 49702 22
SSH_TTY=/dev/pts/0

系統全域性環境變數檢視

set

命令提示符控制變數PS1

[root@yuanlai0224 ~]# set | grep PS1
PS1='[\u@\h \W]\$ '
[root@yuanlai0224 ~]# ^C

變數解釋
\u 顯示使用者名稱
\h 顯示主機名
\W 顯示使用者所處目錄的最後一級
\w 顯示使用者所處的絕對路徑,省去你敲pwd
\t 以24小時制,顯示時間
\$ 顯示使用者的身份提示符,自動識別root還是普通使用者

該變數,臨時敲打,臨時生效,重新登入後,系統重新載入使用者環境變數,該設定丟失
如何永久生效?把你自定義的變數
- 寫入到,系統全域性環境變數配置檔案中(/etc/profile)
- 那麼就有關於使用者個人的配置檔案,在使用者家目錄下
~/.bash_profile

 

當命令提示符出現損壞,以及家目錄顯示不正常的解決辦法

比如如下損壞資訊時,
[root@yuanlai-0224 tmp]# su - chaoge01
上一次登入:四 3月 17 09:51:51 CST 2022pts/0 上
su: 警告:無法更改到 /home/chaoge01 目錄: 沒有那個檔案或目錄
-bash-4.2$
-bash-4.2$

修復原理:
1.表示系統讀不到使用者的個人配置檔案,使用者在useradd建立時候,系統會去 /etc/skel 目錄下,拷貝所有的使用者個人環境變數配置檔案,到使用者生成的家目錄下 /home/chaoge01
/etc/skel 表示系統讀不到使用者的個人配置檔案,使用者在useradd建立時候,系統會去 /etc/skel 目錄下,拷貝所有的使用者個人環境變數配置檔案,到使用者生成的家目錄下 /home/chaoge01

2. 使用者在登入時,自動載入 /home/chaoge01 下所有的檔案內容


3.修復手段,手動的拷貝 前2步操作即可修復
cp -r /etc/skel/ /home/chaoge01

從變數學習解釋中瞭解

使用者切換命令區別

su 不完全切換,還保留root使用者環境變數
su - 完全切換,環境變數都切換