一、特殊權限(chattr、lsattr)
二、特殊權限(set_uid、set_gid、sticky_bit)
三、搜索文件(which、whereis、find、locate)
四、鏈接文件的建立(ln -s、ln)
一、特殊權限設置
chattr命令 這個命令爲文件或目錄添加特殊權限,較常用的有i、a這兩個權限。
chattr +i 名稱(文件或目錄)
文件:文件添加此權限後無法寫入數據,無法重命名、刪除此文件。
目錄:目錄添加此權限後無法再寫入文件、無法刪除目錄內的文件或目錄、無法移動或重命名目錄內的數據。
chattr -i 爲文件或目錄去掉i權限
實例:
[root@laoqi tmp]# chattr +i 2 //給目錄2添加i權限
[root@laoqi tmp]# lsattr -d 2 //查看目錄2的權限
----i--------e- 2 //顯示有i權限
chattr +a 追加特殊權限
文件 無法寫入數據
目錄:只能追加信息,不能刪除或移動內容。
chattr -a 文件或目錄名 去掉a權限
實例:
[root@laoqi tmp]# chattr +a 1 //爲文件1添加a權限
[root@laoqi tmp]# lsattr 1 //查看文件1的特殊權限
-----a-------e- 1 //文件1目前有a權限
[root@laoqi tmp]# vi 1 //vi進入該文件,無法寫入任何數據
注:默認一個文件沒有任何特殊權限
lsattr 常用選項
-V 顯示lsattr版本
-a 顯示所有文件,包括隱藏文件
-d 顯示目錄本身特效
-R 遞歸顯示
[root@laoqi tmp]# ls -ld /usr/bin/passwd
-rwsr-xr-x. 1 root root 25980 2月 22 2012 /usr/bin/passwd
上面的rws的s 是set_uid權限 這個權限可以讓其他用戶擁有屬主的權限
如果把這個文件的set_uid權限去掉,則普通用戶無法修改自己的密碼。
實例:chmod u+s /usr/bin/passwd
注意:如果屬主沒有x執行權限,添加s權限後,會變成大S,且沒有任何意義
什麼樣的文件可以設置s權限?:可執行文件、必須是二進制文件
set_gid 簡寫sgid 讓其他用戶新建目錄或文件時,繼承父目錄所屬組。
實例:
[root@laoqi tmp]# mkdir 2
[root@laoqi tmp]# chmod 777 2
[root@laoqi tmp]# chmod g+s 2
[root@laoqi tmp]# su - xiaoqi
[xiaoqi@laoqi ~]$ cd /tmp/
[xiaoqi@laoqi tmp]$ mkdir 2/123 //用戶xiaoqi建立了一個目錄
[xiaoqi@laoqi tmp]$ ls -ld 2/123
drwxrwsr-x. 2 xiaoqi root 4096 3月 20 00:21 2/123 //屬組並不是xiaoqi,而是root
sticky_bit 特殊權限 防刪除位 用戶1創建的文件,只有用戶1才能刪除。
使用方法 :chomd o+t 目錄名
實例:
[xiaoqi@laoqi tmp]$ ls -ld /tmp/
drwxrwxrwt. 4 root root 4096 3月 20 00:20 /tmp/ //tmp目錄下的文件,只有創建它的用戶才能修改
刪除目錄下的文件,有寫權限
強制寫入(刪掉原來的文件,重新建立一個文件 屬主和屬組都變了)
set_uid、set_gid、stick_bit可以分別用數字來表示:
set_uid 4
set_gid 2
stick_bit 1
這樣在給文件添加權限時,就可以這樣設置了:
實例:chmod 4755 /tmp/2 給/tmp/2添加set_uid權限
實例:chmod 6644 /tmp/2 給/tmp/2添加set_gid權限和set_uid權限
實例:chmod 5644 /tmp/2 給/tmp/2添加set_uid權限和sticky_bit權限
三、搜索文件
which 在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪個位置的命令。
實例:
[root@laoqi ~]# which grep
/bin/grep
whereis 只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s),如果省略參數,則返回所有信息。
whereis 會在固定的幾個目錄中搜索 /bin 、/sbin//、/usr/bin/、 /usr/sbin/、 /usr/share/man/man1/
/bin /usr/bin /usr/share 侷限於這兩個目錄下
實例:whereis grep
[root@laoqi ~]# whereis grep
grep: /bin/grep /usr/share/man/man1/grep.1.gz //返回所有信息(二進制文件、man說明文件、源代碼文件)
[root@laoqi ~]# whereis -b grep //只搜索二進制文件
grep: /bin/grep
[root@laoqi ~]# whereis -m grep //只搜索man說明文件
grep: /usr/share/man/man1/grep.1.gz
[root@laoqi ~]# whereis -s grep //只搜索源代碼文件
grep:
locate 相當於find -name 不搜索具體目錄,而是搜索一個數據庫(var/lib/locatedb) ,這個數據庫中含有本地所有文件信息。LINUX系統自動創建這個數據庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。爲了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。實例:locate /etc/sh 搜索etc目錄下所有以sh開頭的文件
實例:locate ~/m 搜索用戶主目錄下,所有以m開頭的文件
實例:locate -i ~/m 搜索用戶主目錄下,所有以m開頭的文件,並且忽略大小寫。
不檢索/tmp下的文件
updatedb 手動更新數據庫
yum install -y mlocate
find 查找命令
使用格式: find 指定目錄 指定條件 指定動作
指定目錄 所要搜索的目錄及其所有子目錄。默認爲當前目錄
指定條件 所要搜索的文件的特徵。
指定動作 對搜索結果進行特定的處理
指定條件: -type d //類型爲目錄的文件
-type f //類型爲普通文件
-name “文件名” //根據文件名搜索
指定動作 -mtime +1 //修改時間(修改文件內容)一天以上
-mtime -1 //一天以內
-mmin -10 //10分鐘以內
-mmin +10 //10分鐘以上
-atime +1 //訪問時間一天以上
-ctime +1 //改變時間(修改文件信息)一天以上
實例:find . -name 'my*' 搜索當前目錄(含子目錄)中,所有文件名以my開頭的文件
實例:find . -name 'my*' -ls 搜索當前目錄中,所有以my開頭的文件,並顯示它們的詳細信息。
實例:find . -type f -mmin -10 搜索當前目錄中,所有過去10分鐘更新過的普通文件。如果不加-type f參數,則搜索普通文件+特殊文件+目錄
實例:find /etc/init.d/ -type d //搜索/etc/init.d目錄下所有的目錄文件
find /etc/init.d/ ! -type d //搜索/etc/init.d目錄下非目錄的文件(!是取反的意思)
find /etc/ -type d -name "cron.d" //搜索/etc/下文件名爲cron.d的目錄文件
find /etc/ -type d -a -name "cron.d" //搜索/etc/下文件名爲cron.d的目錄文件
find /etc/ -type d -o -name "cron.d" //搜索/etc/的目錄文件或文件名爲cron.d的文件
find /etc/ -type d -name "cron.d" -mtime -1 //搜索/etc/下最近一天修改過的名爲cron.d的目錄文件
-name 根據文件名查詢
stat命令查看文件的三個time(ctime、mtime、atime)
實例:stat 文件名
擴展:
進行哪些操作會修改3個time的時間呢?
vi文件 三個time都變(注:只進入vi,不修改就退出,只修改atime)
cat 文件 atime會變
echo 追加一個文本 m和 c
四、linux下的鏈接文件
ln 鏈接命令
軟連接
ln -s 建立軟鏈接
ln -s /root/3.txt /tmp/21.txt 創建軟鏈接要使用絕對路徑
注如果建立軟鏈接使用相對路徑會怎麼樣?
查看軟鏈接信息,鏈接到的也是一個相對路徑,根本看不到鏈接到哪裏了
使用pwd -P,查看到的信息也是錯誤的
如何檢查一個軟鏈接的真實路徑呢?
pwd -P 真正路徑
pwd -L 邏輯路徑
硬鏈接
不可以作用於目錄
ln 文件名
ls -l
不能作用在不同分區 因爲inode號會衝突
可以刪除其中一個文件,同級
硬鏈接可以同步修改
硬鏈接=複製+同步+刪除源文件無礙+不能跨分區+不能作用於目錄
軟鏈接=快捷方式+同步+刪除源文件廢廢+能跨分區+也能作用於目錄
3月18日學習筆記
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux---find文件查找命令
zhongqijian916
2019-02-23 13:54:50
Lua學習之字符串函數及模式匹配
appleegig_ing
2019-02-23 13:08:22
Lua學習之字符串函數及模式匹配
appleegig_ing
2019-02-23 13:08:22
每天一個linux命令(19):find 命令概覽
蛛正義
2019-02-23 00:36:15
linux-----強大的find
xupresent
2019-02-23 00:33:45
linux find命令
yuanchunxu
2019-02-23 00:32:41
find詳解
xuexiwuyou
2019-02-23 00:15:33
find命令總結
deshanrenjian
2019-02-23 00:13:13
find用法
qqtthappygo
2019-02-22 23:57:42
Linux之find命令詳解
cheer加油
2019-02-22 23:57:38
Linux(三)----find
nna_0914
2019-02-22 23:54:07
linux學習筆記——安裝虛擬機、設備掛載、軟硬鏈接
河邊的石子
2019-02-23 00:30:50
硬鏈接和軟鏈接的區別
qqtthappygo
2019-02-22 23:57:44