一、LINUX文件類型 -:普通文件: 純文本文件(ascll) 配置文件 二進位文件(binary file):命令 數據格式文件(date):/var/log/wtmp d:目錄文件 l:鏈接文件 設備文件(/dev): b:block塊設備 c:character 字元集設備:一次性讀取,按順 ...
一、LINUX文件類型
-:普通文件:
- 純文本文件(ascll) 配置文件
- 二進位文件(binary file):命令
- 數據格式文件(date):/var/log/wtmp
d:目錄文件
l:鏈接文件
設備文件(/dev):
- b:block塊設備
- c:character 字元集設備:一次性讀取,按順序讀取
s:socket套接字文件:用在網路上的數據連接IP:PORT
p:管道文件:特殊的文件類型,解決多個應用程式同時訪問一個文件造成的錯誤問題
file:查看Linux中的文件類型
語法:file [options] filename
Linux文件名限制:
- 單個文件或者目錄不能超過255字元
- 文件名當中不能包含一些特殊字元
文件查找命令: which locate find
which:查找命令字所在的位置
locate:模糊匹配(只要包含關鍵字的文件都查找出來)
不是實時的,基於資料庫查找, updatedb升級locate資料庫
查找速度特別快
find:查看文件或目錄的工具
特點: 實時查找
精確查找
遍歷整個指定目錄中的文件,速度很慢
支持多種查找條件(屬主,屬組,許可權,文件名等)
語法: find [find_path] [條件] [處理動作]
find_path:如果不寫,預設在當前工作目錄查找
條件:如果不寫,會查找出該路徑下所有的文件
處理動作:預設列印到屏幕上 print
條件:(匹配標準)
-name file_name:根據文件名進行查找,區分大小寫
查找條件通配符:
*:通配任意個數的任意字元 # find /etc/ -name "pass*" # find /etc/ -name "*pass"
?:通配單個的任意字元 # find /etc/ -name "passw*"
-iname file_name:根據文件名進行查找,不區分大小寫
-regex PATTERN:根據正則表達式的模式進行查找
-user:通過屬主進行查找
-group:通過屬組進程查找
-uid UID:通過UID號進行查找
-gid GID:通過GID號進行查找
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
-type:根據文件類型進行查找
-b:塊設備
-c:字元設備
-d:目錄
-f:文件
-p:命名管道
-s:套接字文件
-l:鏈接文件
-size [+ | -] num [k|m|g]
-size 5k:精確匹配
+:大於
-:小於
根據時間戳進行查找: # stat file_name //查看文件的時間戳
[+ | -] 也起作用
-atime:時間單位為天,access時間
-mtime:時間單位為天,modify時間
-ctime:時間單位為天,change時間
-mmin:時間單位為分鐘,modify時間
-amin:時間單位為分鐘,access時間
-cmin:時間單位為分鐘,change時間
根據許可權查找:
-perm MODE:
MODE:num(如644),精確匹配
/MODE:/num任意一位匹配
-MODE:-num文件許可權能夠完全包含此MODE時才能匹配
條件組合:
-a:同時滿足多個條件,比如查找屬主是tom並且許可權為644的文件
-o:滿足一個條件即可,比如查找屬主是tom或者許可權為644的文件
-not:不滿足條件的被查找出來
出來動作:
-print:預設動作,預設查找結果列印到屏幕
-ls:預設以類似於ls -l的形式顯示結果的信息
-ok COMMAND {} \;執行動作時提示用戶是否執行,必須以\;結尾,{}代表文件名占位符
-exec COMMAND {} \;執行動作時不提示用戶直接執行,必須以\;結尾,{}代表文件名占位符
1、查找/var目錄下屬主為root並且屬組為mail的所有文件;
find /var -user root -a -group mail
2、查找/usr目錄下不屬於root,bin,或student的文件;
find /usr -not -user root -a -not -user bin -a -not -user student
find /usr -not \( -user root -o -user bin -o -user student \)
3、查找/etc目錄下最近一周內內容修改過且不屬於root及student用戶的文件;
find /etc -mtime -7 -not \ ( -user root -o -user student \)
find /etc -mtime -7 -not -user root -a -not -user student
4、查找當前系統上沒有屬主或屬組且最近1天內曾被訪問過的文件,並將其屬主屬組均修改為root;
find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;
5、查找/etc目錄下大於1M的文件,並將其文件名寫入/tmp/etc.largefiles文件中;
find /etc -size +1M >> /tmp/etc.largefiles
6、查找/etc目錄下所有用戶都沒有寫許可權的文件,顯示出其詳細信息;
find /etc -not -perm /222 -ls
二、許可權:是用戶對於系統資源及數據等操作的能力 三類用戶許可權: 屬主:owner 屬組:group 其他:other -rw-r--r--:10位 第一位:文件類型 第2-4位:文件屬主許可權 第5-7位:文件屬組許可權 第8-10位:其他用戶的許可權 文件: r(read):讀許可權,可以查看文件的內容,使用cat more等命令 w(write):寫許可權,可以修改文件的內容及刪除文件 x(execute):執行許可權,可執行文件或腳本 目錄: r:讀許可權,可以查看目錄中的列表,執行ls命令 w:寫許可權,可以向目錄中新建文件或目錄等 x:執行許可權,可以執行cd命令 改變許可權的命令 chmod 改變文件或目錄的許可權 chmod 755 abc:賦予abc許可權rwxr-xr-x chmod u=rwx,g=rx,o=rx abc:同上u=用戶許可權,g=組許可權,o=不同組其他用戶許可權 chmod u-x,g+w abc:給abc去除用戶執行的許可權,增加組寫的許可權 chmod a+r abc:給所有用戶添加讀的許可權 改變所有者(chown)和用戶組(chgrp)命令 chown xiaoming abc:改變abc的所有者為xiaoming chgrp root abc:改變abc所屬的組為root chown root ./abc:改變abc這個目錄的所有者是root chown ‐R root ./abc:改變abc這個目錄及其下麵所有的文件和目錄的所有者是root umask:反掩碼(在/etc/login.defs中定義) rwx:7 文件預設:rw-rw-rw-:666 644=rw-r--r--新建文件時,許可權掩碼(666)減去反掩碼(022)就是新建文件的許可權(644) 目錄預設:rwxrwxrwx:777 755=rwxr-xr-x,新建目錄時,許可權掩碼(777)減去反掩碼(022)就是新建目錄的許可權(755) Linux隱藏許可權: lsattr:查看文件或目錄的隱藏許可權 chattr:修改文件的隱藏許可權,/ /dev /tmp /var /etc 目錄不受chattr保護 語法: chattr +-= [options] file_name a:只能向文件中追加數據,不能刪除 i:任何用戶不能刪除文件 A:不同步訪問時間 +:添加相應許可權 -:刪除相應許可權 =:設定相應許可權 /etc/passwd /etc/shadow /etc/group tom:/etc/passwd /etc/shadow /etc/group添加信息,新建宿主目錄(修改宿主目錄的歸屬) echo "tom:x:1001:1001::/home/tom:/bin/bash" >> /etc/passwd