Linux-05-Linux文件及目录的属性和权限

Linux系统中的文件或目录的属性主要有:索引节点(inode)、文件类型、权限属性、链接数、所归属的用户及用户组、最近修改时间等。

[test@CentOS6 ~]$ ls -lih
总用量 20K
260172 drwxrwxr-x 3 test test 4.0K 8月  13 11:09 test
260393 -rw-rw-r-- 1 test test   36 8月  13 20:56 test.txt
260430 -rw-rw-r-- 1 test test  193 8月  13 17:10 tnp.tar.gz
260180 drwxrwxr-x 3 test test 4.0K 8月  13 20:25 vv
260387 -rw-rw-r-- 1 test test  220 8月  13 20:34 vv.tar.bz

每列分别是

inode节点、文件类型及权限、硬链接数、所属用户、所属组、文件或目录大小、最近修改时间、文件或目录名

查看inode大小

[root@CentOS6 ~]# dumpe2fs /dev/sda1|grep -i "Inode size"
dumpe2fs 1.41.12 (17-May-2010)
Inode size:               128

一个文件至少要占用一个inode和一个block

查看inode数量

[root@CentOS6 ~]# df -i
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/sda3      479552 85799 393753   18% /
tmpfs          239728     1 239727    1% /dev/shm
/dev/sda1       51200    46  51154    1% /boot

查看block大小

[root@CentOS6 ~]#  dumpe2fs /dev/sda1|grep -i "block size"
dumpe2fs 1.41.12 (17-May-2010)
Block size:               1024
[root@CentOS6 ~]#  dumpe2fs /dev/sda3|grep -i "block size"
dumpe2fs 1.41.12 (17-May-2010)
Block size:               4096
[root@CentOS6 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       7.1G  2.1G  4.7G  31% /
tmpfs           937M     0  937M   0% /dev/shm
/dev/sda1       190M   65M  115M  37% /boot

更改文件或目录所属用户及组

[root@CentOS6 ~]# cd /home/test
[root@CentOS6 test]# ll
total 20
drwxrwxr-x 3 test test 4096 Aug 13 11:09 test
-rw-rw-r-- 1 test test   36 Aug 13 20:56 test.txt
-rw-rw-r-- 1 test test  193 Aug 13 17:10 tnp.tar.gz
drwxrwxr-x 3 test test 4096 Aug 13 20:25 vv
-rw-rw-r-- 1 test test  220 Aug 13 20:34 vv.tar.bz
[root@CentOS6 test]# chown root.root test
[root@CentOS6 test]# ll
total 20
drwxrwxr-x 3 root root 4096 Aug 13 11:09 test
-rw-rw-r-- 1 test test   36 Aug 13 20:56 test.txt
-rw-rw-r-- 1 test test  193 Aug 13 17:10 tnp.tar.gz
drwxrwxr-x 3 test test 4096 Aug 13 20:25 vv
-rw-rw-r-- 1 test test  220 Aug 13 20:34 vv.tar.bz
[root@CentOS6 test]# 

也可以将用户和组分开改

[root@CentOS6 test]# chown test test
[root@CentOS6 test]# ll
total 20
drwxrwxr-x 3 test root 4096 Aug 13 11:09 test
-rw-rw-r-- 1 test test   36 Aug 13 20:56 test.txt
-rw-rw-r-- 1 test test  193 Aug 13 17:10 tnp.tar.gz
drwxrwxr-x 3 test test 4096 Aug 13 20:25 vv
-rw-rw-r-- 1 test test  220 Aug 13 20:34 vv.tar.bz
[root@CentOS6 test]# chown :test test
[root@CentOS6 test]# ll
total 20
drwxrwxr-x 3 test test 4096 Aug 13 11:09 test
-rw-rw-r-- 1 test test   36 Aug 13 20:56 test.txt
-rw-rw-r-- 1 test test  193 Aug 13 17:10 tnp.tar.gz
drwxrwxr-x 3 test test 4096 Aug 13 20:25 vv
-rw-rw-r-- 1 test test  220 Aug 13 20:34 vv.tar.bz

更改文件或目录的数组也可以用chgrp命令

[root@CentOS6 test]# ls -ld test
drwxrwxr-x 3 test test 4096 Aug 13 11:09 test
[root@CentOS6 test]# chgrp root test
[root@CentOS6 test]# ls -ld test
drwxrwxr-x 3 test root 4096 Aug 13 11:09 test

有一种情况是用户和组都是数字,是由于此用户被删掉的原因,我们模拟一下

[root@CentOS6 test]# useradd tt
[root@CentOS6 tt]# su - tt
[tt@CentOS6 ~]$ ll
total 0
[tt@CentOS6 ~]$ mkdir tt_d
[tt@CentOS6 ~]$ ll
total 4
drwxrwxr-x 2 tt tt 4096 Aug 21 20:09 tt_d

[root@CentOS6 ~]# userdel tt
[root@CentOS6 tt]# ls -ld /home/tt
drwx------ 4 503 503 4096 Aug 21 20:10 /home/tt

如果碰到这种情况我们怎么恢复呢?

[root@CentOS6 tt]# useradd tt -u 503
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
[root@CentOS6 tt]# ls -ld  /home/tt
drwx------ 4 tt tt 4096 Aug 21 20:10 /home/tt

将文件或目录权限还原到数字的表达方式

ll ./a.txt|cut -c 2-10|tr rwx- 4210|awk '{for(i=1;i<=length($1);i++) {s=substr($1,i,1);printf s" "}}'|awk '{print$1+$2+$3 $4+$5+$6 $7+$8+$9}'
[test@CentOS6 ~]$ ll
total 24
-rw-rw-r-- 1 test test   38 Aug 21 21:07 a.txt
drwxrwxr-x 3 test root 4096 Aug 13 11:09 test
-rw-rw-r-- 1 test test   36 Aug 13 20:56 test.txt
-rw-rw-r-- 1 test test  193 Aug 13 17:10 tnp.tar.gz
drwxrwxr-x 3 test test 4096 Aug 13 20:25 vv
-rw-rw-r-- 1 test test  220 Aug 13 20:34 vv.tar.bz
[test@CentOS6 ~]$ 
[test@CentOS6 ~]$ 
[test@CentOS6 ~]$ ll ./a.txt|cut -c 2-10|tr rwx- 4210|awk '{for(i=1;i<=length($1);i++) {s=substr($1,i,1);printf s" "}}'|awk '{print$1+$2+$3 $4+$5+$6 $7+$8+$9}'
664

或者stat命令

[test@CentOS6 ~]$ stat a.txt|sed -n 4p|cut -d "(" -f2|cut -d / -f1
0664
[test@CentOS6 ~]$ stat a.txt|sed -n 4p|cut -d "(" -f2|cut -c 1-4
0664
[test@CentOS6 ~]$ stat a.txt|head -4|tail -1|cut -d "(" -f2|cut -c 1-4
0664
[test@CentOS6 ~]$ stat a.txt|sed -n 4p|awk -F "(" '{print $2}'|awk -F "/" '{print $1}'
0664
[test@CentOS6 ~]$ stat -c %a a.txt 
664

指定多分隔符

[test@CentOS6 ~]$ stat a.txt |sed -n 4p|awk -F '[(/]' '{print $2}'
0664

从ifconfig中分离ip地址

[test@CentOS6 ~]$ ifconfig eth0|grep "inet addr"|awk -F '[ :]+' '{print $4}'
2.2.2.5
[test@CentOS6 ~]$ ifconfig eth0|awk -F '[ :]+' 'NR==2 {print $4}'
2.2.2.5
[test@CentOS6 ~]$ ifconfig eth0|sed -n 2p|sed 's#^.*addr:##g'|sed 's#  Bcast.*$##g'
2.2.2.5
[test@CentOS6 ~]$ ifconfig eth0|sed -n 's#^.*addr:\(.*\)  B.*$#\1#gp'
2.2.2.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值