檔案屬性
【1】、ls -ihl 每一列的含義
[root@kylin-xu ~]# ls -ilh
總用量 105M
102604839 -rw-r--r-- 1 root root 57M 9月 21 2017 access.log
102685193 -rw------- 1 root root 2.7K 11月 3 12:29 anaconda-ks.cfg
102407797 -rw-r--r-- 1 root root 3.1K 11月 3 12:31 initial-setup-ks.cfg
102684881 -rw-r--r-- 1 root root 112 11月 4 23:52 nginxconf.bak.txt
102604829 -rw-r--r-- 1 root root 112 11月 4 23:50 nginxconf.txt
102684877 -rw-r--r-- 1 root root 327 11月 4 12:54 num.txt
102604833 -rw-r--r-- 1 root root 49M 2月 15 2017 secure-20161219
【2】、inode和block
-
inode index node 索引節點,類似於我們的身份證
-
inode號碼是身份證號
-
inode空間是類似於身份證存放個人資訊
-
inode空間存放檔案屬性資訊。
-
-
block 資料塊, 存放資料(檔案內容)
我們檢視 abc.txt 檔案的過程解析
我們在執行cat abc.txt 命令後,首先會進入inode區。因為inode中存在許可權、使用者/使用者組等資訊,如果我們的許可權不匹配,會在這一步就被拒絕
如果可以進入indode區後,裡面會存在著 block位置(指向資料實體指標),他會指引我們到block的位置,進而可以檢視到資料資訊
-
特點:
- 每建立1個檔案,需要1個inode,block(非空)
- inode 256位元組一般。
- block 一般是4k.
- 建立1個非空檔案,佔1個block, 檔案小沒有佔滿block,剩餘的空間就空著。
- inode大小,block大小,數量都是在格式化的時候誕生的。
-
命令
- 檔案 inode 號碼(不太重要),block(檔案大小 重要)
ls -lhi filename
-
目錄 檢視目錄所佔的空間
[root@kylin-xu ~]# du -sh /etc/ 25M /etc/ # -h:以人類可讀的方式檢視大小 # -s:檢視彙總後的結果 # 不要使用ls -ih去看
對於目錄來說,我們使用
ls -lh
命令去檢視得到的大小並不是該目錄在磁碟中佔據的大小因為按照inode和block的關係來分析,目錄的block中存放的是該目錄下所有檔案和目錄的名字,因此我們不能使用
ls -lh
去檢視目錄的大小 -
小結:
-
inode,block作用。
-
命令ls,du
-
【3】、檔案型別
一切皆檔案
常見Linux檔案型別 | |
---|---|
-(檔案) | |
d(目錄) | |
l(軟連結) | |
c(字元裝置) 後面使用 | 不斷輸出(白洞),不斷吸收(黑洞) /dev/null (黑洞) /dev/urandom (白洞) /dev/zero(白洞) |
b(塊裝置) | 硬碟,光碟 (磁碟專題) |
s(socket檔案 套接字檔案) | 網路傳輸相關 |
...... |
- ls -l
- file 檢視檔案型別
crw-rw-rw- 1 root root 1, 3 11月 4 14:40 /dev/null
[root@kylin-xu ~]# ll /dev/zero
crw-rw-rw- 1 root root 1, 5 11月 4 14:40 /dev/zero
[root@kylin-xu ~]# ll /dev/urandom
crw-rw-rw- 1 root root 1, 9 11月 4 14:40 /dev/urandom
[root@kylin-xu ~]# file /dev/urandom
/dev/urandom: character special (1/9)
【4】、許可權
1、rwx許可權含義
r read # 讀 可以使用這些命令 cat、less、more、vim
w write # 寫 vim echo sed
x excuter # 可執行,對於普通檔案無意義,對可執行檔案才有意義
- 沒有許可權
[root@kylin-xu day14]# ll
總用量 0
-rw-r--r-- 1 root root 0 11月 6 03:54 1.txt
-rw-r--r-- 1 root root 0 11月 6 03:54 2.txt
-rw-r--r-- 1 root root 0 11月 6 03:54 3.txt
- # 檔案型別
檔案許可權三位為一組
rw- # 第一列 檔案的屬主 檔案屬於哪個使用者 主人是誰
r-- # 第二列 檔案的屬組 檔案對於小組的許可權 手機對於組內的許可權
r-- # 第三列 檔案的其他許可權 檔案對於陌生人的許可權 和小組一樣 都是隻能看的許可權
我對1.txt有什麼許可權?
[root@kylin-xu day14]# whoami
root
2、找出使用者和檔案的關係是什麼?
3、檢視具體的許可權
root對應的1.txt的許可權是前三位 rw-
檔案的最高許可權
目錄的最高許可權
2、rwx和數字的對應關係
r # 4
w # 2
x # 1
-rw-r--r-- 1 xu xu 0 11月 6 04:04 1.txt
user rw-;4+2+0
group r--:4+0+0
others r--:4+0+0
檔案的許可權用數字表示 644
透過數字得出檔案使用字元表示許可權
755
rwxr-xr-x
3、修改檔案許可權
(1)、chown
chown # 修改檔案的屬主屬組
語法結構
chown oldboy file # 只修改屬主
chown oldboy.oldboy file # 修改屬主和屬組
引數選項
-R # 遞迴修改
[root@oldboyedu ~]# ll /tmp/oldboy.txt
-rw-r--r-- 1 root root 6 11月 7 11:11 /tmp/oldboy.txt
- 案例1.修改test檔案的屬主為xu使用者
[root@kylin-xu tmp]# ll
總用量 0
-rw-r--r-- 1 root root 0 11月 6 04:18 test
[root@kylin-xu tmp]# chown xu test
[root@kylin-xu tmp]# ll
總用量 0
-rw-r--r-- 1 xu root 0 11月 6 04:18 test
- 案例2.同時修改屬主和屬組為xu
[root@kylin-xu tmp]# ll
總用量 0
-rw-r--r-- 1 root root 0 11月 6 04:20 test
[root@kylin-xu tmp]# chown xu.xu test
[root@kylin-xu tmp]# ll
總用量 0
-rw-r--r-- 1 xu xu 0 11月 6 04:20 test
- 案例3.遞迴修改檔案的屬組和屬組
[root@kylin-xu tmp]# chown xu.xu a -R
[root@kylin-xu tmp]# ll a
總用量 0
drwxr-xr-x 3 xu xu 60 11月 6 04:21 b
[root@kylin-xu tmp]# ll a/b/
總用量 0
drwxr-xr-x 2 xu xu 40 11月 6 04:21 c
[root@kylin-xu tmp]# ll a/b/c -d
drwxr-xr-x 2 xu xu 40 11月 6 04:21 a/b/c
[root@kylin-xu tmp]#
(2)、chmod
chmod # 修改檔案許可權
語法結構
chmod +w file # 增加w許可權
chmod -w file # 減少w許可權
chmod g+w file # 授權屬組位增加w許可權
屬主 使用 u表示 user
屬組 使用 g表示 group
陌生人 使用 o表示 other
- 案例1.給test 屬主位增加x許可權
[root@kylin-xu tmp]# chmod u+x test
[root@kylin-xu tmp]# ll
總用量 0
-rwxr--r-- 1 xu xu 0 11月 6 04:20 test
- 案例2.給test 屬組位減去w許可權
chmod u-x test
- 案例3.給test屬主設定rwx許可權
chmod u=rwx test
- 給test other 設定rw許可權
chmod o=rw test
- 案例4.同時去掉陌生人的wx許可權
chmod o-wx test
- 案例5.使用等號來重新賦值許可權位
chmod o=r test
- 案例6.修改所有位置增加x許可權
chmod +x test
- 案例7.所有位置減去x許可權
chmod -x test
- 案例8.對所有位置增加w許可權
chmod ugo+w test
- 案例9.對所有的位置減少w許可權使用a
chmod a-w test
小結: 使用ugo方式來對檔案進行授權
chmod u+w # 授權屬主位w許可權
chmod u-w # 屬主位減少w許可權
chmod ug+x # 屬主和屬組增加x許可權
chmod ugo+x # 所有位增加x許可權
chmod +x 所有位增加x許可權
chmod a+x 所有位增加x許可權
chmod g=w 去掉原來的許可權,重新增加w許可權
使用數字的方式授權
r # 4
w # 2
x # 1
語法結構
chmod 644 file # 授權檔案為644許可權
- 案例1.授權檔案許可權為rw-r-xr-- 許可權
[xu@kylin-xu day14]$ chmod 654 1.txt
[xu@kylin-xu day14]$ ll 1.txt
-rw-r-xr-- 1 xu xu 0 11月 6 04:04 1.txt
- 案例2.授權檔案許可權為rw------- 許可權
[xu@kylin-xu day14]$ chmod 600 1.txt
[xu@kylin-xu day14]$ ll 1.txt
-rw------- 1 xu xu 0 11月 6 04:04 1.txt
- 案例3.授權檔案許可權為 rw-r--r-- 許可權
[xu@kylin-xu day14]$ chmod 644 1.txt
[xu@kylin-xu day14]$ ll
總用量 0
-rw-r--r-- 1 xu xu 0 11月 6 04:04 1.txt
- 案例4.授權檔案許可權為---------許可權
chmod 000 1.txt
# 經常使用到的授權數字
644 rw-r--r--
755 rwxr-xr-x
600 rw-------
chmod # 遞迴授權檔案的屬主屬組為600許可權
引數選項:
-R # 遞迴授權 比較危險 別用來修改目錄
4、rwx對於檔案的作用
r對於檔案的作用:
1、可讀
2、不可寫 但是可以強制寫入vim
3、不能執行
4、不能刪除,刪除是由目錄的許可權控制的
[xu@kylin-xu day14]$ echo pwd > 1.txt
[xu@kylin-xu day14]$ chmod u=r 1.txt
[xu@kylin-xu day14]$ ll 1.txt
-r--r--r-- 1 xu xu 4 11月 6 04:59 1.txt
[xu@kylin-xu day14]$ cat 1.txt
pwd
[xu@kylin-xu day14]$ echo aaa > 1.txt
-bash: 1.txt: 許可權不夠
[xu@kylin-xu day14]$ ./1.txt
-bash: ./1.txt: 許可權不夠
[xu@kylin-xu day14]$ echo pwd > 1.txt
-bash: 1.txt: 許可權不夠
w對於檔案的作用:
[xu@kylin-xu day14]$ chmod u=w 2.txt
[xu@kylin-xu day14]$ ll 2.txt
--w-r--r-- 1 xu xu 0 11月 6 04:55 2.txt
[xu@kylin-xu day14]$ cat 2.txt
cat: 2.txt: 許可權不夠
[xu@kylin-xu day14]$ echo pwd > 2.txt
[xu@kylin-xu day14]$
1.不能檢視檔案內容
2.不能使用vim方式寫入 只能使用echo 追加內容
3.不能執行
4、只有一個w的話,理論上是可以的,但是在實際生產中意義不大
x對於檔案的作用:
[xu@kylin-xu day14]$ chmod u=x 1.txt
[xu@kylin-xu day14]$ ll
總用量 8
---xr--r-- 1 xu xu 4 11月 6 04:59 1.txt
# 檔案只有一個x啥都不能幹
[xu@kylin-xu day14]$ ./1.txt
bash: ./1.txt: 許可權不夠
# 想讓檔案可以執行必須有r許可權
xu@kylin-xu day14]$ chmod u=rx 1.txt
[xu@kylin-xu day14]$ ll 1.txt
-r-xr--r-- 1 xu xu 4 11月 6 04:59 1.txt
[xu@kylin-xu day14]$ ./1.txt
/home/xu/day14
總結:
1. 1個r對於檔案有作用,只讀
2. rw對於檔案是最高許可權可讀寫
3. r和x對於檔案是有執行的許可權
4. rwx指令碼擁有最高的許可權
對於檔案來講最高許可權為666 所有位置都可讀寫
5、rwx對目錄的作用
[xu@kylin-xu ~]$ ll -d day14/
drwxr-xr-x 2 xu xu 45 11月 6 04:55 day14/
1.目錄只有r許可權 啥都不能幹。由於目錄的block存放的是該目錄下的檔名,因此使用 ll 檢視也就只能看到檔名
[xu@kylin-xu ~]$ chmod u=r day14/
[xu@kylin-xu ~]$ ll day14/ -d
dr--r-xr-x 2 xu xu 45 11月 6 04:55 day14/
[xu@kylin-xu ~]$ ll day14/
ls: 無法訪問 'day14/1.txt': 許可權不夠
ls: 無法訪問 'day14/2.txt': 許可權不夠
ls: 無法訪問 'day14/3.txt': 許可權不夠
總用量 0
-????????? ? ? ? ? ? 1.txt
-????????? ? ? ? ? ? 2.txt
-????????? ? ? ? ? ? 3.txt
2.目錄只有w許可權 啥都不能幹。
3.x對於目錄的作用:
1.x控制是否可以cd到目錄下
2.沒有其他任何許可權
[root@oldboyedu oldboy]# chmod u=x /oldboy
[root@oldboyedu oldboy]# ll -d /oldboy
d--xr-xr-x 2 oldboy oldboy 45 11月 11 11:31 /oldboy
目錄許可權的常用組合方式:
1.r-x組合作用 可以進入到目錄可以檢視目錄下所有的檔案資訊 能不能看檔案內容具體看檔案的許可權
2.r-x組合不能在目錄下刪除 建立 改名等動作
3.rwx組合目錄的最高許可權可以進入可以增刪改查
為什麼會出現許可權拒絕?
[xu@kylin-xu ~]$ cat /etc/shadow
cat: /etc/shadow:
# 由於shadow檔案本身對於other來說沒有r許可權
#passwd的其他位置沒有w許可權 必須rw
[xu@kylin-xu ~]$ echo 11111>> /etc/passwd
-bash: /etc/passwd: 許可權不夠
[xu@kylin-xu ~]$ ll /etc/passwd
-rw-r--r-- 1 root root 2031 11月 5 16:00 /etc/passwd
# 由於/etc/目錄的other位置沒有w許可權
[xu@kylin-xu ~]$ touch /etc/haha
touch: 無法建立 '/etc/haha': 許可權不夠
[xu@kylin-xu ~]$ ll /etc/ -d
drwxr-xr-x 121 root root 8192 11月 6 02:47 /etc/
# 因為root目錄的其他位置沒有r-x許可權
[xu@kylin-xu ~]$ ls /root
ls: 無法開啟目錄 '/root': 許可權不夠
[xu@kylin-xu ~]$ 登出
[root@kylin-xu ~]# ll /root -d
dr-xr-x--- 5 root root 4096 11月 6 03:53 /root
6、umask
umask作用決定預設建立檔案和目錄的許可權 # 瞭解umask值 不作為重點
預設檔案的許可權: 644
預設目錄的許可權: 755
[root@kylin-xu ~]# umask
0022
檔案預設許可權: 是由檔案的最高許可權666減去umask值得到的
666
-022
=644
目錄預設許可權: 是由目錄的最高許可權777減去umask預設的值
777
-022
=755
- 案例1.umask值修改為044
[root@kylin-xu ~]# umask 044
[root@kylin-xu ~]# umask
0044
[root@kylin-xu ~]# ll a.txt
-rw--w--w- 1 root root 0 11月 6 06:41 a.txt
[root@kylin-xu ~]# mkdir aaaa
[root@kylin-xu ~]# ll -d aaaa/
drwx-wx-wx 2 root root 6 11月 6 06:41 aaaa/
- 案例2.umask值修改為032
# 如果umask存在奇數位,檔案相減後+1,目錄不需要
[root@kylin-xu ~]# umask 032
[root@kylin-xu ~]# umask
0032
[root@kylin-xu ~]# touch abc.txt
[root@kylin-xu ~]# ll abc.txt
-rw-r--r-- 1 root root 0 11月 6 06:44 abc.txt
[root@kylin-xu ~]# mkdir qaaa
[root@kylin-xu ~]# ll -d qaaa/
drwxr--r-x 2 root root 6 11月 6 06:44 qaaa/
7、隱藏許可權位
# 檢視隱藏許可權位
[root@kylin-xu ~]# touch test.txt
[root@kylin-xu ~]# lsattr test.txt
-------------------- test.txt
#增加a隱藏許可權 作用只能追加內容到檔案中
[root@kylin-xu ~]# chattr +a test.txt
[root@kylin-xu ~]# lsattr test.txt
-----a-------------- test.txt
[root@kylin-xu ~]# rm -f test.txt
rm: 無法刪除 'test.txt': 不允許的操作
[root@kylin-xu ~]# echo aa > test.txt
-bash: test.txt: 不允許的操作
[root@kylin-xu ~]# echo oooo >> test.txt
[root@kylin-xu ~]# cat test.txt
oooo
# 去掉a隱藏許可權
[root@kylin-xu ~]# chattr -a test.txt
[root@kylin-xu ~]# lsattr test.txt
-------------------- test.txt
# i 無敵的 除了檢視啥都不能幹
[root@kylin-xu ~]# chattr +i test.txt
[root@kylin-xu ~]# cat test.txt
oooo
[root@kylin-xu ~]# echo aaa>> test.txt
-bash: test.txt: 不允許的操作
我們可以理解為 隱藏許可權是限制root使用者的
8、特殊許可權位
suid set uid 4# 作用 在使用者執行命令的時候相當於屬主的許可權去執行。
需要我們給屬主的位置增加s許可權。任何人使用命令的時候相當於命令的屬主的許可權。
sgid 2 # 針對目錄設定,對於設定了sgid的許可權的目錄,在該目錄中建立的內容自動繼承上一級目錄的屬組
sticky粘滯位 1 # 主要是針對共享目錄設定的,設定了sticky的目錄中,誰建立的內容,只能被誰刪除。
suid
[root@kylin-xu ~]# ll /usr/bin/passwd
-rwsr-xr-x 1 root root 30800 4月 20 2022 /usr/bin/passwd
sgid
[root@kylin-xu ~]# chown xu.xu test
[root@kylin-xu ~]# touch test/qqq
[root@kylin-xu ~]# ll test/qqq
-rw-r--r-- 1 root xu 0 11月 6 07:14 test/qqq
sticky
[root@kylin-xu ~]# mkdir /nfs
[root@kylin-xu ~]# chmod 777 /nfs
[root@kylin-xu ~]# chmod o+t /nfs
[root@kylin-xu ~]# ll -d /nfs
drwxrwxrwt 2 root root 35 11月 6 07:16 /nfs
[root@kylin-xu ~]# su - xu
[xu@kylin-xu nfs]$ echo xu > xu.txt
[root@kylin-xu ~]# su - tom
上一次登入: 二 11月 5 11:47:09 -03 2024 pts/2 上
[tom@kylin-xu ~]$ cd /nfs
[tom@kylin-xu nfs]$ echo tom > tom.txt
# 在這個目錄下面有xu和tom兩個使用者建立的檔案,由於目錄設定了sticky,tom不能刪除xu建立的使用者
[tom@kylin-xu nfs]$ \rm -f xu.txt
rm: 無法刪除 'xu.txt': 不允許的操作
【5】、軟硬連線
1、軟連結
-
軟連結類似於windows快捷方式,存放原始檔的位置.
- 符號連結(symbolic link或symlink),軟連結
-
建立軟連結 給/etc/sysconfig/network-scripts/ifcfg-ens33 建立軟連結/opt/ifcfg-ens33
[root@kylin-xu ~]# ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 /opt/ifcfg-ens33 [root@kylin-xu ~]# ll /opt/ifcfg-ens33 lrwxrwxrwx 1 root root 42 11月 5 08:02 /opt/ifcfg-ens33 -> /etc/sysconfig/network-scripts/ifcfg-ens33 # ln -s 原始檔 目標檔案
-
刪除軟連線
[root@kylin-xu opt]# rm -f ifcfg-ens33 # 不會影響到原始檔
-
刪除原始檔
[root@kylin-xu day06]# touch 123 [root@kylin-xu day06]# ln -s 123 456 [root@kylin-xu day06]# ll 總用量 1636 -rw-r--r-- 1 root root 0 11月 5 08:05 123 lrwxrwxrwx 1 root root 3 11月 5 08:05 456 -> 123 [root@kylin-xu day06]# rm -f 123 # 軟連結不能使用了
2、硬連結
-
在同一個分割槽中,inode號碼相同的互為硬連結。
ln 原始檔 目標檔案
3、區別
- 含義:
- 軟連結原始檔位置
- 硬連結在同一個分割槽中inode號碼相同
- 特點:
- 最長用的是軟連結,對檔案,目錄建立。
- 硬連結只能對檔案建立,不能對目錄。
- 刪除
【6】、檔案時間
時間 | |
---|---|
修改時間 mtime | 修改時間,最常用的。 |
訪問時間 atime | 看一次檔案,時間就會改變。限制mtime有關。 |
屬性改變時間 ctime | 屬性資訊修改這個時間就變化。 |
建立時間 btime | 檔案建立時間。 |
[root@kylin-xu day06]# stat list.txt
檔案:“list.txt”
大小:20 塊:8 IO 塊:4096 普通檔案
裝置:fd00h/64768d Inode:102684889 硬連結:1
許可權:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近訪問:2024-11-05 00:06:10.939806497 -0300
最近更改:2024-11-05 00:06:08.442785880 -0300
最近改動:2024-11-05 00:06:08.442785880 -0300
建立時間:-