jdin043 发表于 2025-2-7 03:23:15

Linux文件属性

文件属性

【1】、ls-ihl 每一列的含义

# ls -ilh 总用量 105M102604839 -rw-r--r-- 1 root root57M9月 212017 access.log102685193 -rw------- 1 root root 2.7K 11月3 12:29 anaconda-ks.cfg102407797 -rw-r--r-- 1 root root 3.1K 11月3 12:31 initial-setup-ks.cfg102684881 -rw-r--r-- 1 root root112 11月4 23:52 nginxconf.bak.txt102604829 -rw-r--r-- 1 root root112 11月4 23:50 nginxconf.txt102684877 -rw-r--r-- 1 root root327 11月4 12:54 num.txt102604833 -rw-r--r-- 1 root root49M2月 152017 secure-20161219
【2】、inode和block


[*]inode   index node 索引节点,类似于我们的身份证

[*]inode号码是身份证号
[*]inode空间是类似于身份证存放个人信息
[*]inode空间存放文件属性信息。

[*]block   数据块, 存放数据(文件内容)
我们查看 abc.txt 文件的过程解析
我们在执行cat abc.txt 命令后,首先会进入inode区。因为inode中存在权限、用户/用户组等信息,如果我们的权限不匹配,会在这一步就被拒绝
如果可以进入indode区后,里面会存在着 block位置(指向数据实体指针),他会指引我们到block的位置,进而可以查看到数据信息
graph TD;cat命令subgraph inode区属性信息文件大小权限用户/用户组block位置endsubgraph block区数据endcat命令--->权限---->数据

[*]特点:

[*]每创建1个文件,需要1个inode,block(非空)
[*]inode 256字节一般。
[*]block 一般是4k.
[*]创建1个非空文件,占1个block,文件小没有占满block,剩余的空间就空着。
[*]inode大小,block大小,数量都是在格式化的时候诞生的。

[*]命令

[*]文件 inode 号码(不太重要),block(文件大小 重要)
ls -lhi   filename
[*]目录 查看目录所占的空间
# 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# ll /dev/zero crw-rw-rw- 1 root root 1, 5 11月4 14:40 /dev/zero# ll /dev/urandom crw-rw-rw- 1 root root 1, 9 11月4 14:40 /dev/urandom# file /dev/urandom /dev/urandom: character special (1/9)【4】、权限

1、rwx权限含义

r read # 读 可以使用这些命令 cat、less、more、vimwwrite   # 写 vim echo sedxexcuter # 可执行,对于普通文件无意义,对可执行文件才有意义-没有权限# 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有什么权限?# whoami root2、找出用户和文件的关系是什么?3、查看具体的权限root对应的1.txt的权限是前三位 rw-文件的最高权限
目录的最高权限
2、rwx和数字的对应关系

r   # 4w   # 2x   # 1-rw-r--r-- 1 xu xu 0 11月6 04:04 1.txtuser   rw-;4+2+0 groupr--:4+0+0others r--:4+0+0文件的权限用数字表示 644通过数字得出文件使用字符表示权限755rwxr-xr-x3、修改文件权限

(1)、chown

chown       # 修改文件的属主属组语法结构               chown oldboy file # 只修改属主               chown oldboy.oldboy file # 修改属主和属组参数选项             -R   # 递归修改# ll /tmp/oldboy.txt-rw-r--r-- 1 root root 6 11月7 11:11 /tmp/oldboy.txt

[*]案例1.修改test文件的属主为xu用户
# ll总用量 0-rw-r--r-- 1 root root 0 11月6 04:18 test# chown xu test # ll总用量 0-rw-r--r-- 1 xu root 0 11月6 04:18 test

[*]案例2.同时修改属主和属组为xu
# ll总用量 0-rw-r--r-- 1 root root 0 11月6 04:20 test# chown xu.xu test # ll总用量 0-rw-r--r-- 1 xu xu 0 11月6 04:20 test

[*]案例3.递归修改文件的属组和属组
# chown xu.xu a -R # ll a总用量 0drwxr-xr-x 3 xu xu 60 11月6 04:21 b# ll a/b/总用量 0drwxr-xr-x 2 xu xu 40 11月6 04:21 c# ll a/b/c -ddrwxr-xr-x 2 xu xu 40 11月6 04:21 a/b/c# (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权限
# chmodu+x test # ll总用量 0-rwxr--r-- 1 xu xu0 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 # 4w # 2x # 1语法结构                chmod 644 file# 授权文件为644权限

[*]案例1.授权文件权限为rw-r-xr-- 权限
$ chmod 654 1.txt $ ll 1.txt -rw-r-xr-- 1 xu xu 0 11月6 04:04 1.txt

[*]案例2.授权文件权限为rw------- 权限
$ chmod 600 1.txt $ ll 1.txt -rw------- 1 xu xu 0 11月6 04:04 1.txt

[*]案例3.授权文件权限为 rw-r--r-- 权限
$ chmod 644 1.txt $ 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-x600 rw-------chmod # 递归授权文件的属主属组为600权限参数选项:          -R# 递归授权 比较危险 别用来修改目录4、rwx对于文件的作用

r对于文件的作用:1、可读2、不可写但是可以强制写入vim3、不能执行4、不能删除,删除是由目录的权限控制的$ echo pwd > 1.txt $ chmod u=r 1.txt $ ll 1.txt -r--r--r-- 1 xu xu 4 11月6 04:59 1.txt$ cat 1.txt pwd$ echo aaa > 1.txt -bash: 1.txt: 权限不够$ ./1.txt-bash: ./1.txt: 权限不够$ echo pwd > 1.txt -bash: 1.txt: 权限不够w对于文件的作用:$ chmod u=w 2.txt $ ll 2.txt --w-r--r-- 1 xu xu 0 11月6 04:55 2.txt$ cat 2.txt cat: 2.txt: 权限不够$ echo pwd > 2.txt $ 1.不能查看文件内容2.不能使用vim方式写入 只能使用echo 追加内容3.不能执行4、只有一个w的话,理论上是可以的,但是在实际生产中意义不大x对于文件的作用:$ chmod u=x1.txt $ ll总用量 8---xr--r-- 1 xu xu 4 11月6 04:59 1.txt# 文件只有一个x啥都不能干$ ./1.txt bash: ./1.txt: 权限不够# 想让文件可以执行必须有r权限xu@kylin-xu day14]$ chmod u=rx 1.txt $ ll 1.txt -r-xr--r-- 1 xu xu 4 11月6 04:59 1.txt$ ./1.txt /home/xu/day14总结:1. 1个r对于文件有作用,只读2. rw对于文件是最高权限可读写3. r和x对于文件是有执行的权限4. rwx脚本拥有最高的权限对于文件来讲最高权限为666 所有位置都可读写5、rwx对目录的作用

$ ll -d day14/drwxr-xr-x 2 xu xu 45 11月6 04:55 day14/1.目录只有r权限 啥都不能干。由于目录的block存放的是该目录下的文件名,因此使用 ll 查看也就只能看到文件名$ chmod u=r day14/$ ll day14/ -ddr--r-xr-x 2 xu xu 45 11月6 04:55 day14/$ ll day14/ ls: 无法访问 'day14/1.txt': 权限不够ls: 无法访问 'day14/2.txt': 权限不够ls: 无法访问 'day14/3.txt': 权限不够总用量 0-????????? ? ? ? ?             ? 1.txt-????????? ? ? ? ?             ? 2.txt-????????? ? ? ? ?             ? 3.txt2.目录只有w权限 啥都不能干。3.x对于目录的作用:1.x控制是否可以cd到目录下2.没有其他任何权限# chmod u=x /oldboy# ll -d /oldboyd--xr-xr-x 2 oldboy oldboy 45 11月 11 11:31 /oldboy目录权限的常用组合方式:
1.r-x组合作用 可以进入到目录可以查看目录下所有的文件信息 能不能看文件内容具体看文件的权限
2.r-x组合不能在目录下删除 创建 改名等动作
3.rwx组合目录的最高权限可以进入可以增删改查
为什么会出现权限拒绝?
$ cat /etc/shadowcat: /etc/shadow: # 由于shadow文件本身对于other来说没有r权限#passwd的其他位置没有w权限 必须rw$ echo 11111>> /etc/passwd-bash: /etc/passwd: 权限不够$ ll /etc/passwd-rw-r--r-- 1 root root 2031 11月5 16:00 /etc/passwd# 由于/etc/目录的other位置没有w权限$ touch /etc/hahatouch: 无法创建 '/etc/haha': 权限不够$ ll /etc/ -ddrwxr-xr-x 121 root root 8192 11月6 02:47 /etc/# 因为root目录的其他位置没有r-x权限$ ls /rootls: 无法打开目录 '/root': 权限不够$ 注销# ll /root -ddr-xr-x--- 5 root root 4096 11月6 03:53 /root6、umask

umask作用决定默认创建文件和目录的权限   # 了解umask值 不作为重点
默认文件的权限: 644
默认目录的权限: 755
# umask 0022文件默认权限: 是由文件的最高权限666减去umask值得到的 666-022=644目录默认权限: 是由目录的最高权限777减去umask默认的值 777-022=755

[*]案例1.umask值修改为044
# umask 044# umask 0044# ll a.txt -rw--w--w- 1 root root 0 11月6 06:41 a.txt# mkdir aaaa# ll -d aaaa/drwx-wx-wx 2 root root 6 11月6 06:41 aaaa/

[*]案例2.umask值修改为032
# 如果umask存在奇数位,文件相减后+1,目录不需要# umask 032# umask 0032# touch abc.txt# ll abc.txt -rw-r--r-- 1 root root 0 11月6 06:44 abc.txt# mkdir qaaa# ll -d qaaa/drwxr--r-x 2 root root 6 11月6 06:44 qaaa/7、隐藏权限位

# 查看隐藏权限位# touch test.txt# lsattr test.txt -------------------- test.txt#增加a隐藏权限 作用只能追加内容到文件中# chattr +a test.txt # lsattr test.txt -----a-------------- test.txt# rm -f test.txt rm: 无法删除 'test.txt': 不允许的操作# echo aa > test.txt -bash: test.txt: 不允许的操作# echo oooo >> test.txt # cat test.txt oooo# 去掉a隐藏权限# chattr -a test.txt # lsattr test.txt -------------------- test.txt# i 无敌的 除了查看啥都不能干# chattr +i test.txt # cat test.txt oooo# echo aaa>> test.txt -bash: test.txt: 不允许的操作我们可以理解为 隐藏权限是限制root用户的
8、特殊权限位

suid set uid   4# 作用 在用户执行命令的时候相当于属主的权限去执行。需要我们给属主的位置增加s权限。任何人使用命令的时候相当于命令的属主的权限。sgid         2# 针对目录设置,对于设置了sgid的权限的目录,在该目录中创建的内容自动继承上一级目录的属组sticky粘滞位 1   # 主要是针对共享目录设置的,设置了sticky的目录中,谁创建的内容,只能被谁删除。suid# ll /usr/bin/passwd -rwsr-xr-x 1 root root 308004月 202022 /usr/bin/passwdsgid# chown xu.xu test# touch test/qqq# ll test/qqq -rw-r--r-- 1 root xu 0 11月6 07:14 test/qqqsticky# mkdir /nfs # chmod 777 /nfs# chmod o+t /nfs# ll -d /nfsdrwxrwxrwt 2 root root 35 11月6 07:16 /nfs# su - xu $ echo xu > xu.txt# su - tom上一次登录: 二 11月5 11:47:09 -03 2024 pts/2 上$ cd /nfs$ echo tom > tom.txt# 在这个目录下面有xu和tom两个用户创建的文件,由于目录设置了sticky,tom不能删除xu创建的用户$ \rm -f xu.txt rm: 无法删除 'xu.txt': 不允许的操作【5】、软硬连接

1、软链接


[*]软链接类似于windows快捷方式,存放源文件的位置.

[*]符号链接(symbolic link或symlink),软链接

[*]创建软链接给/etc/sysconfig/network-scripts/ifcfg-ens33 创建软链接/opt/ifcfg-ens33
# ln -s /etc/sysconfig/network-scripts/ifcfg-ens33/opt/ifcfg-ens33# ll /opt/ifcfg-ens33 lrwxrwxrwx 1 root root 42 11月5 08:02 /opt/ifcfg-ens33 -> /etc/sysconfig/network-scripts/ifcfg-ens33# ln -s 源文件目标文件
[*]删除软连接
# rm -f ifcfg-ens33 # 不会影响到源文件
[*]删除源文件
# touch 123# ln -s 123 456# ll总用量 1636-rw-r--r-- 1 root root       0 11月5 08:05 123lrwxrwxrwx 1 root root       3 11月5 08:05 456 -> 123# rm -f 123# 软链接不能使用了
2、硬链接


[*]在同一个分区中,inode号码相同的互为硬链接。
ln 源文件目标文件
3、区别


[*]含义:

[*]软链接源文件位置
[*]硬链接在同一个分区中inode号码相同

[*]特点:

[*]最长用的是软链接,对文件,目录创建。
[*]硬链接只能对文件创建,不能对目录。

[*]删除
【6】、文件时间

时间修改时间 mtime修改时间,最常用的。访问时间 atime看一次文件,时间就会改变。限制mtime有关。属性改变时间 ctime属性信息修改这个时间就变化。创建时间       btime文件创建时间。# 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创建时间:-
页: [1]
查看完整版本: Linux文件属性