linux 文件系統

  1 /        根目錄
  2 
  3 /bin        存放着啓動時所須要的普通程序。不少程序在啓動之後也頗有用,它們放在這個目錄下是由於它們常常要被其餘程序調用
  4 
  5 /boot        不少Linux系統把內核映像和其餘一些和啓動有關的文件都放在這裏。內核和加載內核所需的文件
  6 
  7 /dev        這個目錄下保存着全部的設備文件。裏面有一些是由Linux內核建立的用來控制硬件設備的特殊文件
  8 
  9 /etc        這裏保存着絕大部分的系統配置文件。相對來說,單個用戶的系統配置文件會保存在這個用戶本身的主目錄裏面。下面列舉其中一些重要的子目錄
 10 
 11 /home        通常用戶的主目錄都會放在這個目錄下。在Linux下,能夠經過#cd ~來進入本身的主目錄
 12 
 13 /lib        啓動的時候所要用到的庫文件都放在這個目錄下。那些非啓動用的庫文件都會放在/usr/lib下。內核模塊是放在/lib/modules/(內核版本)下的
 14 
 15 /lib64
 16 
 17 /media
 18 
 19 /mnt        這個目錄下面放着一些用來安裝其餘設備的子目錄,好比說/mnt/cdrom或者/mnt/floppy。在有些Linux中這個目錄被/mount代替
 20 
 21 /opt
 22 
 23 /proc        虛擬文件系統,系統運行信息,包括內核信息、正在運行的進程、硬件狀態、內存使用的多少等
 24 
 25 /root        root用戶的主目錄
 26 
 27 /run        
 28 
 29 /sbin        存放啓動時所須要的系統程序,不少程序在啓動之後也頗有用,它們放在這個目錄下是由於它們常常要被其餘程序調用
 30 
 31 /srv
 32 
 33 /sys        虛擬文件系統,不佔硬盤容量,主要記錄與系統核心相關的信息,如系統已載入的模塊
 34 
 35 /tmp        通常只有啓動時產生的臨時文件纔會放在這個地方。咱們本身的臨時文件都放在/var/tmp
 36 
 37 /usr        這是一個很複雜、龐大的目錄。除了上述目錄以外,幾乎全部的文件都存放在這下面。下面列舉其中一些重要的子目錄
 38 
 39 /var        這裏有一些被系統改變過的數據。好比說/var/tmp,就是用來儲存臨時文件的。還有不少其餘的進程和模塊把它們的記錄文件也放在這個地方,包括以下一些重要的子目錄系統專用數據和配置文件,含有logs, spool等目錄
 40 
 41 
 42 
 43 常見目錄文件
 44 
 45 
 46 /boot/grub/
 47 /boot/grub2/grub.cfg
 48 /boot/initramfs-xxx.img
 49 
 50 /dev/cdrom                        ;光驅
 51 /dev/input/mice                        ;鼠標
 52 /dev/log                        ; unix 域數據報套結字 syslogd syslog
 53 /dev/mem                        ; 物理內存的全映象
 54 /dev/null
 55 /dev/random                        ; 存儲的系統運行環境的實時數據
 56 /dev/shm
 57 /dev/stderr                        ; 錯誤輸出
 58 /dev/stdin
 59 /dev/stdout
 60 /dev/urandom                        ; 和 /dev/random 數據同樣,可是讀取它時不會產生阻塞
 61 /dev/zero                        ;你讀它的時候,它會提供無限的空字符,能夠做爲一個數據源或數據池,全部寫往/dev/zero將返回成功;dd if=/dev/zero of=foobar count=1024 bs=1024 建立一個名爲'foobar'大小爲1 MiB的文件,以"0"填充
 62 
 63 /etc/aliases                        ; This file describes user ID aliases used by sendmail.
 64 /etc/apt/sources.list                    ; debian 的 apt-get 軟件管理的源
 65 /etc/bashrc                        ; 登錄後設置的函數和 alias
 66 /etc/bluetooth                        ; 藍牙配置目錄
 67 /etc/default/grub                    ; grub 默認設置
 68 /etc/default/useradd                    ; 添加用戶時的默認設置
 69 /etc/dhcp/dhcpd.conf                    ; dhcp 服務配置文件
 70 /etc/environment                    ; 環境變量
 71 /etc/exports                        ; nfs 配置文件
 72 /etc/firewalld/                        ; firewalld 配置文件
 73 /etc/group
 74 /etc/grub.d/                        ; 生成 grub 配置文件的相關文件
 75 /etc/grub2.cfg                        ; 指向 /boot/grub2/grub.cfg
 76 /etc/host.conf                        ; resolver configuration file; mutli on
 77 /etc/hostname                        ; 永久修改主機名時修改這個文件,hostname 命令只能暫時修改主機名
 78 /etc/hosts                        ; 當機器啓動時,在能夠查詢DNS之前,機器須要查詢一些主機名到IP地址的匹配
 79 /etc/httpd/conf.d/welcome.conf
 80 /etc/httpd/conf/httpd.conf                ; 配置apache服務器
 81 /etc/init.d                        ; 這個目錄保存着啓動描述文件,包括各類模塊和服務的加載描述, CentOS7 不使用這個文件配置啓動信息,採用了 systemd ,但仍是支持這個文件的啓動信息配置。
 82 /etc/init.d/network                    ; CentOS6 網絡啓動時使用的文件
 83 /etc/iproute2/rt_tables                    ; 策略路由的規則
 84 /etc/issue                        ; 本地登錄時顯示的信息,常爲內核等信息
 85 /etc/issue.net                        ; 網絡登錄時顯示的信息
 86 /etc/ld.so.conf                        ; gcc 動態庫文件的搜索路徑
 87 /etc/ld.so.conf.d/                    ; 庫文件的配置路徑
 88 /etc/ld.so.conf.d/mariadb-x86_64.conf            ; 
 89 /etc/locale.conf
 90 /etc/localtime                        ; 本機時區的配置文件
 91 /etc/login.defs                        ; 用戶規則的配置文件,好比讓用戶每半年改一次密碼,而且密碼長度很多於 8 92 /etc/mail.rc                        ; mailx 配置文件
 93 /etc/man_db.conf                    ; man 手冊配置
 94 /etc/modules-load.d/eth0.conf                ; 設置開機自動加在網卡驅動模塊(文件內容爲:alias enp2s0 e1000 )
 95 /etc/modprobe.d/mlx4.conf                ; select the various module options they need for the mlx4 driver
 96 /etc/motd                        ; 內容由管理員肯定,經常使用於通告信息,任何用戶任何終端登錄時都會顯示的內容
 97 /etc/my.cnf.d/mysql-clients.cnf                ; mysql
 98 /etc/nail.rc                        ; mail
 99 /etc/network/interfaces                    ; debian 網卡配置文件存放目錄,網卡配置詳看 http://gfrog.net/2008/01/config-file-in-debian-interfaces-1/    http://qref.sourceforge.net/Debian/reference/ch-gateway.zh-cn.html
100 /etc/networks                        ; 已知的網絡名的信息
101 /etc/nsswitch.conf                    ; An example Name Service Switch config file
102 /etc/NetworkManager
103 /etc/NetworkManager/NetworkManager.conf            ; 網絡配置文件,在 main 部分加入 dns=none 不會自動生成 dns
104 /etc/passwd
105 /etc/php.ini
106 /etc/pki/rpm-gpk                      ;yum
107 /etc/pki/tls/certs/                    ; 創建憑證的地方
108 /etc/profile                        ; 系統全部用戶的環境變量和啓動程序,在用戶第一次登錄時執行,不建議改變
109 /etc/profile.d/                        ; 自定義的系統環境變狼和啓動程序,以 .sh 結尾
110 /etc/protocols                        ; 網絡協議和協議代碼的對應文件;封包協議的相關數據
111 /etc/redhat-release                    ; 系統版本
112 /etc/resolv.conf                     ; 網絡配置臨時 namesever DNS
113 /etc/resolvconf/resolv.conf.d                ; 配置永久 DNS( CentOS7 中沒有此文件)
114 /etc/rc.d/init.d/functions                ; 函數有:killproc, status
115 /etc/rc.d/rc.local                    ; 添加自定義腳本,Centos7 中已經不建議使用該文件,該文件沒有執行權限了
116 /etc/rc.local                        ; FOR COMPATIBILITY PURPOSES
117 /etc/rc0.d - /etc/rc6.d                    ; 這裏面也是一些鏈接文件,和/etc/rcS.d差很少。不一樣的是,這些只會在指定的runlevel下運行相應的描述。0表示關機,6表示重啓。全部以K開頭的文件表示關閉,全部以S開頭的文件表示重啓。目前來說,文件的命名方式和/etc/rcS.d是同樣的
118 /etc/rcS.d                            ; 這裏放着一些鏈接到/etc/init.d的文件,根據runlevel的不一樣而執行相應的描述。這裏的文件名都是由S來開頭的,而後是一個兩位的數字——表示各類服務啓動的順序。好比,S24foo就是在S42bar前面執行的。接着就是相應的鏈接到/etc/init.d下面的文件名字了
119 /etc/rsyslog.conf                    ; rsyslog configuration file, syslog 集中的出錯管理設施配置文件,決定不一樣種類的消息、日誌送往何處
120 /usr/sbin/setenforce                    ; selinux 配置命令
121 /etc/securetty
122 /etc/security/limits.conf                ; 系統限制的配置文件,規範每一個用戶的相關權限,可用 ulimit 設置;domino是以符號@開頭的用戶名或組名,*表示全部用戶,type設置爲hard or soft。item指定想限制的資源。如cpu,core nproc or maxlogins。value是相應的限制值。
123 /etc/selinux/config                    ; selinux配置文件
124 /etc/services                        ; 定義每種 TCP/IP 服務對應的端口號和別名等
125 /etc/skel/                        ; 建立用戶時 home 目錄內默認的文件
126 /etc/ssh                        ; ssh 配置文件等
127 /etc/sshd/sshd_config                    ; ssh 配置文件,在 Centos7 中沒有
128 /etc/sysconfig/dhcpd                    ; dhcp 服務配置文件
129 /etc/sysconfig/iptables                    ; 防火牆規則
130 /etc/sysconfig/iptables-config                ; 配置 iptables 加載的模塊(NAT)
131 /etc/sysconfig/selinux                    ; selinxu的配置文件    
132 /etc/sysconfig/network                    ; 該文件用來指定服務器上的網絡配置信息,例如永久修改主機名,網關 GATEWAY,是否支持 ipv6
133 /etc/sysconfig/network-scripts/                ; 網卡配置文件
134 /etc/sysconfig/nfs                    ; nfs 配置端口等信息
135 /etc/sysctl.conf                    ; 系統設置,net.ipv4.ip_forward = 1 | net.ipv4.tcp_syncookies = 1 | net.ipv4.icmp_echo_ignore_broadcasts = 1 | net.ipv4.conf.all.rp_filter = 1 | net.ipv4.conf.default.rp_filter = 1 | net.ipv4.conf.eth0.rp_filter = 1 | net.qiang@hotmail.comnet.ipv4.conf.lo.rp_filter = 1 啓用核心封包轉發功能。sysctl  -p 使設置當即生效
136 /etc/systemd/logind.conf
137 /etc/systemd/system/multi-user.target.wants/        ; 自啓服務
138 /etc/systemd/system/multi-user.target.wants/abrt-ccpp.service
139 /etc/updatedb.conf                        ; updatedb 配置文件,和 locate 有關
140 /etc/vimrc
141 /etc/wpa_supplicant/wpa_supplicant.conf
142 /etc/xinetd.d/                        ; Centos7 使用 systemd 代替了 xinetd 這個服務,可是有些軟件仍是可使用這個服務
143 /etc/xinetd.d/tftp                    ; tftp 服務器配置目錄
144 /etc/X11                            ; 這裏放着 X 窗口系統(Linux中的圖形用戶界面系統之一)所須要的配置文件。XF86Config(XFee86 是 linux 下實現 X Window 協議的軟件包,另一個是 X.org)就是把配置儲存到這個地方的。/etc/X11/fonts裏面放着一些服務器須要的字體,還存放一些窗口管理器存放的配置文件
145 /etc/X11/xinit/xinitrc                    ; root read this file to start x-org
146 /etc/yum.conf                        ; yum 配置文件
147 /etc/yum.repos.d                    ; yum 源的配置目錄
148 /etc/yum/pluginconf.d                    ; yum 插件
149 
150 /home/user/.bash_history
151 /home/user/.bash_logout                    ; 用戶退出 shell 時登錄時由 bash 解釋執行該文件,即便是使用 gnome-terminal 登錄也會執行
152 /home/user/.bash_profile                ; 執行用戶的 .bashrc 文件
153 /home/user/.bashrc
154 /home/user/.config/gedit
155 /home/user/.local
156 /home/user/.ssh
157 /home/user/.ssh/authorizrd_keys                ; 公鑰文件
158 /home/user/.ssh/config                    ; 配置文件
159 /home/user/.ssh/known_hosts
160 /home/user/.vim
161 /home/user/.viminfo
162 /home/user/.vimrc
163 /home/home/.Xauthority
164 
165 /lib/modules/3.10.0-327.13.1.el7.x86_64/kernel/drivers/net/ethernet/realtek            ; 內核加載的有線網卡驅動模塊
166 /lib/systemd/system/runlevel*.target            ; run level
167 
168 /proc/acpi
169 /proc/acpi/button/lid/                    ; 筆記本蓋子狀況
170 /proc/bus/*                        ; 一些總線的裝置,還有 USB 的裝置也記錄在此喔!
171 /proc/bus/pci/devices
172 /proc/cmdline                        ; 系統啓動時的 IMAGE vmlinuz, 加載 kernel 時所下達的相關參數
173 /proc/consoles                        ; 當前登錄的終端
174 /proc/cpuinfo                        ; cpu 信息
175 /proc/devices                         ; 這個檔案記錄了系統各個主要裝置的主要裝置代號,不 mknod 有關呢!
176 /proc/filesystems                    ; 目前系統已經加載的文件系統囉!
177 /proc/interrupts                    ; 目前系統上面的 IRQ 分配狀忞。系統中全部中斷信息,包括網卡
178 /proc/ioports                        ; 目前系統上面各個裝置所配置的 I/O 地址。
179 /proc/kcore                        ; 這個就是內存的大小啦!好大對吧!可是丌要諾他啦!
180 /proc/loadavg                         ; 平均負載
181 /proc/meminfo                        ; 內存(虛擬),使用 free 列出的內存信息
182 /proc/modules                        ; 目前咱們的 Linux 已經加載的模塊列表,也能夠想成是驅勱程序啦!
183 /proc/mounts                        ; 系統已經掛載的數據,就是用 mount 這個挃令呼叨出來的數據啦!
184 /proc/pci                        ; 在 PCI 總線上面,每一個裝置的詳紳情冴!可用 lspci 來查閱!
185 /proc/swaps                        ; 到底系統掛加載的內存在哪裏?呵呵!使用掉的 partition 就記錄在此啦!/proc/partitions 使用 fdisk -l 會出現目前全部的 partition 吧?在這個檔案當中也有紈錄喔!
186 /proc/sys/kernel/domainname                ; (none)
187 /proc/sys/kernel/hostname                ; 主機名
188 /proc/sys/kernel/msgmax                    ; 8129
189 /proc/sys/kernel/pidmax                    ; 32768
190 /proc/sys/kernel/random/uuid                ; 系統生成的惟一的 uuid 號
191 /proc/sys/kernel/threads-max                ; 系統容許的最大線程數 30408,好像不許確,個人是 32754
192 /proc/sys/net/ipv4/ip_forward                ; 內核是否打開核心封包傳遞功能,爲 0 沒有打開,爲 1 打開,沒有打開直接置 1 就能夠了,想重啓生效則配置文件 /etc/sysctl.conf
193 /proc/sys/net/ipv4/ip_forward                ; 爲 1 則具有數據包轉發功能
194 /proc/sys/net/ipv4/tcp_max_syn_backlog            ; TCP 封包聯機優化的三個參數
195 /proc/sys/net/ipv4/tcp_synack_retries
196 /proc/sys/net/ipv4/tcp_abort_on_overflow
197 /proc/sys/net/ipv4/icmp_echo_ignore_all            ; 爲 1 忽略全部 icmp 請求
198 /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts        ; 爲 1 僅有 ping broadcast 地址時才取消 ping 的迴應
199 /proc/sys/net/ipv4/tcp_syncookies            ; 防止 SYN 攻擊
200 /proc/sys/vm/drop_caches                ; echo 1 > dir 釋放網頁緩存,echo 2 > dir 釋放目錄項和索引,echo 3 > dir 釋放目錄項、索引和網頁緩存
201 /proc/uptime                        ; 就是用 uptime 的時候,會出現的信息啦
202 /proc/version                        ; 核心版本,就是用 uname -a 顯示的內容啦
203 
204 /run/media                            ; 可移動介質的文件系統掛載點
205 
206 /sys/devices/system/cpu/cpu0/cpufreq                ; cpu 參數
207 /sys/class/backlight/acpi_video0/brightness            ; 屏幕亮度
208 /sys/class/power_supply/BAT1                    ; 電源相關的狀態
209 /sys/class/power_supply/BAT1/capacity                ; 剩餘電量百分比
210 /sys/class/power_supply/BAT1/uevent                ; 基本信息
211 
212 /usr/bin                            ; 二進制可執行文件存放的目錄,這裏放着絕大部分的應用程序
213 /usr/doc                            ; 這裏保存着各類文檔文件。這些文件能夠幫助你瞭解Linux,解決問題和提供一些技巧
214 /usr/games                            ; 遊戲程序和相應的數據會放在這裏
215 /usr/include                        ;這個目錄保存着C和C++的頭文件
216 /usr/include/bits/local_lim.h                    ; 系統限制信息;其中 PTHREAD_THREADS_MAX 是最大線程數,爲 1024,最大線程數和內存也有關,由於每一個線程都要佔用內存;個人最大線程數是 32754,內存是 4 G
217 /usr/include/mysql/mysql.h                    ; mariadb-devel
218 /usr/info                            ; 這裏保存着GNU Info程序所須要的數據
219 /usr/lib                            ; 啓動時用不到的庫文件都會放在這裏
220 /usr/lib/firewalld/                        ; 不要編輯,由於由於它們是爲默認設定準備的
221 /usr/lib/modules/3.10.0-229.11.1.el7.x86_64/kernel/drivers/misc/mei
222 /usr/lib/systemd/                          ;系統和用戶服務目錄
223 /usr/lib/systemd/scripts/nfs-utils_env.sh
224 /usr/lib/systemd/system/                    ; 系統服務目錄,隨着系統啓動而啓動
225 /usr/lib/systemd/user/                        ; 用戶服務目錄
226 /usr/lib/python2.6/site-packages/yum/yumRepo.py
227 /usr/lib64/gedit/plugin                        ; gedit plugin
228 /usr/local                            ; 這裏保存着本地計算機所須要的文件。在用戶進行遠程訪問的時候特別有意義。這個目錄在有些Linux系統下就是一個單獨的分區,存放一些這臺機子所屬的那個用戶的文件。裏面的結構和/usr是同樣的
229 /usr/local/share/QQWry.Dat                    ; nali 數據文件
230 /usr/sbin                            ; 這裏放着絕大部分的系統程序
231 /usr/share                            ; 這裏保存着各類共享文件
232 /usr/share/applications                          ; 快捷方式
233 /usr/share/httpd/noindex
234 /usr/share/man                            ; 這裏保存着man程序所須要的數據
235 /usr/share/man/man1
236 /usr/share/mysql                         ; 配置文件(mysql.server命令及配置文件)
237 /usr/share/vim/vim74/colors                ; vim 配色方案
238 /usr/share/vim/vim74/plugin                ; vim 插件
239 /usr/share/vim/vimfiles/                ; 插件文件
240 /usr/src                            ; 這裏保存着系統源代碼文件
241 /usr/X11R6,/usr/X11,/usr/Xfree86            ;這裏保存着X窗口系統所須要的文件,它的目錄結構和/usr是同樣的( CentOS 中沒有)
242 
243 /var/account/pacct
244 /var/cache/yum/                        ; yum cache
245 /var/lib                        ; 包括了一些系統運行時須要的文件
246 /var/lib/dhclient/dhclient*                ; dhcp 客戶端的配置文件,刪除了能夠從新設定鏈接的 DHCP 服務器
247 /var/lib/mysql/                     ; 數據庫目錄
248 /var/lib/nfs
249 /var/lib/rpm                        ; 軟件版本之間的比較來自亍這個數據庫, 而若是妳想要查詢系統已經安裝的軟件,也是仍這裏查詢的!同時,目前的 RPM 也提供數字簽名信息, 這些數字簽名也是在這個目錄內記錄的
250 也是在這個目錄內記錄的呢!
251 /var/log                        ; 這裏放着絕大部分的記錄文件。隨着時間的增加,這個目錄會變得很龐大,因此要按期清理
252 /var/log/acct
253 /var/log/boot.log                        ; 啓動時屏幕上的內容
254 /var/log/btmp                        ; 用戶登錄記錄,包括登錄失敗,使用 lastb 查看
255 /var/log/messages
256 /var/log/secure                        ; 系統安全相關信息,包括但不限於 root 權限的使用,ssh 登錄失敗
257 /var/log/wtmp                        ; 用戶登錄記錄,使用 last 查看
258 /var/log/yum.log
259 /var/run                            ; 包括了各類運行時的信息
260 /var/spool                            ; 郵件,新聞,打印序列的所在地
261 /var/www/html
262 
263 
264 gcc相關:
265 
266 /usr/include
267 /usr/local/include
268 /usr/lib/gcc-lib/i386-linux/2.95.2/include
269 /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
270 /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
271 
272 
273 
274 文件權限
275 
276 
277 -rwxr-x--t        文件類型 用戶權限 組權限 其餘用戶權限
278 
279 umask是一個掩碼,設置文件的默認權限,會屏蔽掉不想授予該安全級別的權限,從對象的全權權限中減掉;對文件全權權限是666,目錄是777,由於目錄有執行權限。系統啓動時在/etc/profile中設置。
280 
281 chmod    [ugoa]    [+-=]    [rwxXstugo]        只有文件的屬主能夠改變權限
282 chmod    0xddd    file
283 
284 -R 參數表示遞歸的改變文件權限
285 
286 u 表示設置權限和屬主同樣,g和o相似
287 s 運行時從新設置uid或gid
288 t 保留文件或目錄
289 X 表示若是對象是目錄或者已有執行權限,賦予執行權限
290 
291 suid sgid 粘着位 構成另一個八進制數在 umask 中(前),umask 有 4 個 8 進制數
292 
293 r        對文件而言,具備讀取文件內容的權限;對目錄來講,具備瀏覽目錄的權限
294 w        對文件而言,具備新增、修改和刪除文件的權限;對目錄來講,具備刪除、移動目錄內文件的權限
295 x        對文件而言,具備執行文件的權限;對目錄了來講該用戶具備進入目錄的權限
296 s(suid)    當文件被用戶使用時,程序會以文件的屬主權限運行,大寫 s 表示用戶的執行權限爲空
297 s(sgid)    對文件來講,文件會以文件屬組的權限運行;對目錄來講,目錄中建立的權限會以目錄的默認屬組做爲默認屬組,經常使用於建立共享組共享文件(新建共享組後可能須要重啓才能生效)
298 t(sticky)    進程結束後仍保留在內存中;當使用者對於此目錄具備 w, x 權限,亦即具備寫入的權限時,使用者在該目錄下創建的檔案或目錄,僅有本身與 root 纔有權力刪除該檔案
299 
300 SUID 不用在目錄上,而 t 不用在檔案上。SUID 爲 u+s ,而 SGID 爲 g+s ,t 則是 o+t 
301 shell 腳本的 suid 並不生效;suid 只能做用於二進制文件。
302 
303 目錄 r 權限代表可使用ls命令列出內容(必須也有使用ls命令選項的執行權限), w 權限代表文件能夠被添加或刪除(目錄必須也有執行權限), x 權限控制對目錄的訪問。用戶能夠 cd 到目錄中,使用讀訪問列出其中的內容。文件可使用寫訪問被移動或者拷貝到目錄中;只有屬主可使用 chmod 操做目錄,重命名目錄。
304 
305 掛載的 ntfs 格式磁盤不能改變權限。
306 
307 
308 沒法建立文件:肯定全部上級目錄都有 w 權限,關閉 selinux( getenfore 查看 selinux 是否啓用 ),
309 
310 文件沒有權限使用 ll 查看時有可能顯示全部的權限爲「 ? 」。
311 
312 普通用戶目錄沒有 x 權限時 root 用戶仍是有 x 權限。當普通用戶的目錄沒有 x 權限時除了 root 用戶外其它全部用戶沒法在目錄下建立或修改任何文件(沒法使用 rw 權限),包括其子目錄。若是用戶能夠進入某一個目錄(擁有 x 權限),可是沒有該目錄的讀寫權限(沒有 rw ),那麼沒法列出當前目錄下有哪些文件,可是仍然能夠編輯該目錄下本身擁有 w 權限的文件,若是對該文件不具備 r 權限,就不能用 vim 等編輯,只能使用其餘方式往裏面寫數據。
313 
314 權限沒有遞歸的現象,若是用戶在父目錄沒有讀、寫或者執行的權限,不影響子目錄下的讀寫權限。
315 
316 
317 
318 文件隱藏屬性
319 
320 
321 什麼?檔案還有隱藏屬性?光是那九個權限就快要瘋掉了,居然還有隱藏屬性,真是要命~ 可是沒辦法,就是有檔案的隱藏屬性存在啊!不過,這些隱藏的屬性確實對於系統有很大的幫助的~ 尤爲是在系統安全 (Security) 上面,重要的緊呢!不過要先強調的是,底下的chattr指令只能在Ext2/Ext3/Ext4的 Linux 傳統檔案系統上面完整生效, 其餘的檔案系統可能就無法完整的支援這個指令了,例如 xfs 僅支援部份參數而已。底下我們就來談一談如何設定與檢查這些隱藏的屬性吧!
322 
323     chattr (設定檔案隱藏屬性)
324 
325 [root@study ~]# chattr [+-=][ASacdistu] 檔案或目錄名稱
326 選項與參數:
327 +   :增長某一個特殊參數,其餘本來存在參數則不動。
328 -   :移除某一個特殊參數,其餘本來存在參數則不動。
329 =   :設定必定,且僅有後面接的參數
330 
331 A  :當設定了 A 這個屬性時,若你有存取此檔案(或目錄)時,他的存取時間 atime 將不會被修改,
332      可避免 I/O 較慢的機器過度的存取磁碟。(目前建議使用檔案系統掛載參數處理這個項目)
333 S  :通常檔案是非同步寫入磁碟的(原理請參考前一章sync的說明),若是加上 S 這個屬性時,
334      當你進行任何檔案的修改,該更動會『同步』寫入磁碟中。
335 a  :當設定 a 之後,這個檔案將只能增長資料,而不能刪除也不能修改資料,只有root 才能設定這屬性
336 c  :這個屬性設定之後,將會自動的將此檔案『壓縮』,在讀取的時候將會自動解壓縮,
337      可是在儲存的時候,將會先進行壓縮後再儲存(看來對於大檔案彷佛蠻有用的!)
338 d  :當 dump 程序被執行的時候,設定 d 屬性將可以使該檔案(或目錄)不會被 dump 備份
339 i  :這個 i 可就很厲害了!他能夠讓一個檔案『不能被刪除、更名、設定連結也無法寫入或新增資料!』
340      對於系統安全性有相當大的助益!只有 root 能設定此屬性
341 s  :當檔案設定了 s 屬性時,若是這個檔案被刪除,他將會被徹底的移除出這個硬碟空間,
342      因此若是誤刪了,徹底無法救回來了喔!
343 u  :與 s 相反的,當使用 u 來設定檔案時,若是該檔案被刪除了,則資料內容其實還存在磁碟中,
344      可使用來救援該檔案喔!
345 注意1:屬性設定常見的是 a 與 i 的設定值,並且不少設定值必須要身為 root 才能設定
346 注意2:xfs 檔案系統僅支援 AadiS 而已
347 
348 
349 範例:請嘗試到/tmp底下創建檔案,並加入 i 的參數,嘗試刪除看看。
350 chattr +i attrtest <==給予 i 的屬性
351 rm attrtest        <==嘗試刪除看看
352 rm: remove regular empty file `attrtest'? y
353 rm: cannot remove `attrtest': Operation not permitted        # 看到了嗎?呼呼!連 root 也沒有辦法將這個檔案刪除呢!趕緊解除設定!
354 
355 範例:請將該檔案的 i 屬性取消
356 chattr -i attrtest
357 
358 這個指令是很重要的,尤爲是在系統的資料安全上面!由於這些屬性是隱藏的性質,因此須要以 lsattr 才能看到該屬性呦!其中,個人認為最重要的當屬 +i 與 +a 這個屬性了。+i 能夠讓一個檔案無法被更動,對於須要強烈的系統安全的人來說, 真是相當的重要的!裡頭還有相當多的屬性是須要 root 才能設定的呢!
359 
360 此外,若是是 log file 這種的登錄檔,就更須要 +a 這個能夠增長,可是不能修改舊有的資料與刪除的參數了!怎樣?很棒吧! 未來提到登錄檔 (十八章) 的認知時,我們再來聊一聊如何設定他吧!
361 
362 
363 Linux 文件類型
364 
365 普通文件 - 、目錄文件 d 、字符設備文件 c 、塊設備文件 b 、符號連接文件 l 、套接口文件 s 、先進先出文件 f 
366 
367 
368 
369 文件的命名規則
370 
371 
372 最大長度:文件或目錄名最大長度爲 127 箇中文字符,英文則能夠支持 255 個數字字母字符,包含完整路徑名稱及目錄 (/) 之完整檔名爲 4096 個字符。
373 非數字字母字符:一些非數字字母字符或者元字符是可用的:「 _ - . + 」;容許但要再終端轉義的符號「 ; < > * ? ~ [ ] & | " $ 」,由於這些符號再終端中有特殊含義。
374 文件名擴展:文件名能夠包含零個或多個擴展名。擴展名常被一個應用追加到文件的末端。擴展名一般是1個到3個字符,追加到文件名的末端,以前有一個句點。
375 目錄名的擴展名:目錄名通常不包含擴展名,可是也沒有規則反對這一點。
376 大小寫敏感:Linux文件和目錄名是大小寫敏感的,通常規則都是使用小寫字母。
377 
378 
379 
380 根文件系統
381 
382 
383 系統啓動掛載的第一個文件系統。
384 
385 系統第一個進程是全部進程的祖先,由它fork出來的進程將繼承它的根目錄。
386 
387 
388 與根目錄的關係:根目錄就是「 / 」,和文件系統關係不大。
389 
390 
391 
392 經常使用文件系統( vfs )
393 
394 df -T
395 
396 ext2
397 ext3
398 ext4
399 fat32                W95 FAT32
400 ntfs
401 xfat
402 nfs
403 CIFS                Windows 網絡鄰居使用的協議,同 NFS
404 vfat                同 fat32
405 xfs
406 
407 
408 
409 文件系統操做
410 
411 mkfs.xfs -f /dev/mapper/centos-home            格式化
412 
413 
414 
415 邏輯卷
416 
417 
418 準備生產環境中數據目錄(邏輯卷)            
419 
420 fdisk /dev/sda                    建立一個邏輯分區/dev/sda6
421 p、打印分區表
422 n、新建一個新分區:e 表示擴展分區,p 表示主分區;按" p "鍵出現提示:"Partition number (1-4): "選擇主分區號,輸入"1"表示第一個主分區;直接按回車表示從 1 柱面開始分區,提示最後一個柱面或大小時輸入 +5620M 按回車表示第一個分區爲5G空間
423 d、刪除一個分區
424 q、退出不保存
425 t、指定分區類型:輸入 L 顯示各類文件系統對應的 id 值,輸入 id 就能夠改變分區類型了( GPT、FAT3二、EFI、AIX、Linux、Linux swap、Linux LVM )
426 w、把分區寫進分區表,保存並退出
427 
428 格式化分區(邏輯卷不用這一步)
429 {
430     $ mkfs.ext3 /dev/hdd1
431 }
432 
433 建立邏輯卷
434 pvcreate /dev/sda6
435 vgcreate myvg /dev/sda6
436 lvcreate -L 10G -n mydata /dev/myvg
437 
438 格式化邏輯卷
439 mke2fs -t ext4 /dev/myvg/mydata
440 
441 建立數據目錄
442 #mkdir -pv mydata/data
443 
444 
445 
446 ext2 詳細介紹
447 
448 
449 超級塊
450 
451 用來存儲了該文件系統的大量基本信息,包括塊的大小、每塊組中包含的塊數等。同時,系統會對超級塊進行備份,備份被存放在塊組的第一個塊中。超級塊的起始位置爲其所在分區的第1024個字節,佔用1KB的空間。
452 
453 struct ext2_super_block {
454 __le32 s_inodes_count; // 文件系統中inode的總數
455 __le32 s_blocks_count; // 文件系統中塊的總數
456 __le32 s_r_blocks_count; // 保留塊的總數
457 __le32 s_free_blocks_count; // 未使用的塊的總數(包括保留塊)
458 __le32 s_free_inodes_count; // 未使用的inode的總數
459 __le32 s_first_data_block; // 塊ID,在小於1KB的文件系統中爲0,大於1KB的文件系統中爲1
460 __le32 s_log_block_size; // 用以計算塊的大小(1024算術左移該值即爲塊大小)
461 __le32 s_log_frag_size; // 用以計算段大小(爲正則1024算術左移該值,不然右移)
462 __le32 s_blocks_per_group; // 每一個塊組中塊的總數
463 __le32 s_frags_per_group; // 每一個塊組中段的總數
464 __le32 s_inodes_per_group; // 每一個塊組中inode的總數
465 __le32 s_mtime; // POSIX中定義的文件系統裝載時間
466 __le32 s_wtime; // POSIX中定義的文件系統最近被寫入的時間
467 __le16 s_mnt_count; // 最近一次完整校驗後被裝載的次數
468 __le16 s_max_mnt_count; // 在進行完整校驗前還能被裝載的次數
469 __le16 s_magic; // 文件系統標誌,ext2中爲0xEF53
470 __le16 s_state; // 文件系統的狀態
471 __le16 s_errors; // 文件系統發生錯誤時驅動程式應該執行的操做
472 __le16 s_minor_rev_level; // 局部修訂級別
473 __le32 s_lastcheck; // POSIX中定義的文件系統最近一次檢查的時間
474 __le32 s_checkinterval; // POSIX中定義的文件系統最近檢查的最大時間間隔
475 __le32 s_creator_os; // 生成該文件系統的操做系統
476 __le32 s_rev_level; // 修訂級別
477 __le16 s_def_resuid; // 報留塊的默認用戶ID
478 __le16 s_def_resgid; // 保留塊的默認組ID
479 // 僅用於使用動態inode大小的修訂版(EXT2_DYNAMIC_REV)
480 __le32 s_first_ino; // 標準文件的第一個可用inode的索引(非動態爲11)
481 __le16 s_inode_size; // inode結構的大小(非動態爲128)
482 __le16 s_block_group_nr; // 保存此超級塊的塊組號
483 __le32 s_feature_compat; // 兼容特性掩碼
484 __le32 s_feature_incompat; // 不兼容特性掩碼
485 __le32 s_feature_ro_compat; // 只讀特性掩碼
486 __u8 s_uuid[16]; // 卷ID,應儘量使每一個文件系統的格式惟一
487 char s_volume_name[16]; // 卷名(只能爲ISO-Latin-1字符集,以’\0’結束)
488 char s_last_mounted[64]; // 最近被安裝的目錄
489 __le32 s_algorithm_usage_bitmap; // 文件系統採用的壓縮算法
490 // 僅在EXT2_COMPAT_PREALLOC標誌被設置時有效
491 __u8 s_prealloc_blocks; // 預分配的塊數
492 __u8 s_prealloc_dir_blocks; // 給目錄預分配的塊數
493 __u16 s_padding1;
494 // 僅在EXT3_FEATURE_COMPAT_HAS_JOURNAL標誌被設置時有效,用以支持日誌
495 __u8 s_journal_uuid[16]; // 日誌超級塊的卷ID
496 __u32 s_journal_inum; // 日誌文件的inode數目
497 __u32 s_journal_dev; // 日誌文件的設備數
498 __u32 s_last_orphan; // 要刪除的inode列表的起始位置
499 __u32 s_hash_seed[4]; // HTREE散列種子
500 __u8 s_def_hash_version; // 默認使用的散列函數
501 __u8 s_reserved_char_pad;
502 __u16 s_reserved_word_pad;
503 __le32 s_default_mount_opts;
504 __le32 s_first_meta_bg; // 塊組的第一個元塊
505 __u32 s_reserved[190];
506 };
507 
508 inode 是固定長度的記錄項,它包含了有關文件的大部分信息,但不包含文件名;文件名和 inode 編號是存放在目錄項中的。
509 inode 包含:
510   * 文件的字節數
511   * 文件擁有者的User ID
512   * 文件的Group ID
513   * 文件的讀、寫、執行權限
514   * 文件的時間戳,共有三個:ctime指inode上一次變更的時間,mtime指文件內容上一次變更的時間,atime指文件上一次打開的時間。
515   * 連接數,即有多少文件名指向這個inode
516   * 文件數據block的位置
517 
518 
519 
520 APPLE 文件系統
521 
522 os文件資源管理器Finder
523 
524 
525 文件系統結構
526 
527 符合unix傳統的目錄
528 /bin                傳統unix命令的存放目錄,如ls,rm,mv等。
529 /sbin                傳統unix管理類命令存放目錄,如fdisk,ifconfig等等。
530 /usr                第三方程序安裝目錄。
531 /usr/bin, /usr/sbin, /usr/lib                其中/usr/lib目錄中存放了共享庫(動態連接庫).
532 /etc                標準unix系統配置文件存放目錄,如用戶密碼文件/etc/passwd。此目錄實際爲指向/private/etc的連接。
533 /dev                設備文件存放目錄,如何表明硬盤的/dev/disk0。
534 /tmp                臨時文件存放目錄,其權限爲全部人任意讀寫。此目錄實際爲指向/private/tmp的連接。
535 /var                存放常常變化的文件,如日誌文件。此目錄實際爲指向/private/var的連接。
536 這些標準的Unix目錄在Finder中並不可見
537 
538 os x特有的目錄
539 /Applications            應用程序目錄,默認全部的GUI應用程序都安裝在這裏;
540 /Library                系統的數據文件、幫助文件、文檔等等;
541 /Network                網絡節點存放目錄;
542 /System                他只包含一個名爲Library的目錄,這個子目錄中存放了系統的絕大部分組件,如各類framework,以及內核模塊,字體文件
543 /Users                存放用戶的我的資料和配置。每一個用戶有本身的單獨目錄。
544 /Volumes                文件系統掛載點存放目錄。
545 /cores                內核轉儲文件存放目錄。當一個進程崩潰時,若是系統容許則會產生轉儲文件。
546 /private                裏面的子目錄存放了/tmp, /var, /etc等連接目錄的目標目錄。
547 
548 
549 
550 問題
551 
552 
553 
554 tips
相關文章
相關標籤/搜索