linux文件属性

linux文件属性

当使用ls -l命令展示目录的时候,会显示文件类型,读写权限,属主,修改时间等信息。

rc@rc-virtual-machine:/$ ls -l
drwxr-xr-x   4 root root       4096 2月  19 06:43 boot/
drwxrwxr-x   2 root root       4096 11月 28 12:17 cdrom/
drwxr-xr-x  20 root root       4260 2月  25 19:12 dev/
drwxr-xr-x 132 root root      12288 2月  25 06:50 etc/
drwxr-xr-x   3 root root       4096 11月 28 12:21 home/
drwx------   2 root root      16384 11月 28 12:15 lost+found/
drwxr-xr-x   2 root root       4096 8月  19  2021 media/
drwxr-xr-x   2 root root       4096 8月  19  2021 mnt/
drwxr-xr-x   3 root root       4096 12月  2 15:11 opt/
dr-xr-xr-x 408 root root          0 2月  25 19:12 proc/
drwx------   7 root root       4096 1月  24 16:29 root/
drwxr-xr-x  36 root root       1020 2月  27 06:37 run/
drwxr-xr-x  12 root root       4096 12月  1 20:24 snap/
drwxr-xr-x   2 root root       4096 8月  19  2021 srv/
dr-xr-xr-x  13 root root          0 2月  25 19:12 sys/
drwxrwxrwt  42 root root      16384 2月  27 12:27 tmp/
drwxr-xr-x  14 root root       4096 8月  19  2021 usr/
drwxr-xr-x  14 root root       4096 8月  19  2021 var/

每一行表示一个文件的属性。

文件类型与文件权限 链接数 所属用户 所属群组 文件大小 修改时间 文件名
drwxr-xr-x 3 root root 4096 11月 28 12:21 home/

文件类型

ls -l展示的文件类型与文件权限中,第一个字符表示文件的类型

示例 文件类型 文件权限
drwxr-xr-x d rwxr-xr-x

文件类型如下表。

符号 含义
d 目录
- 文件
l 链接文件
b 块设备文件,比如硬盘
c 字符设备,比如键盘鼠标
s 套接字文件
p 管道文件

文件权限

文件权限分为三组,从左到右分别是属主权限(user),属群权限(group),其它(others)。

示例 用户权限(users) 属群权限(group) 其它(others)
drwxr-xr-- rwx r-x r--

对于文件和目录来说,权限代表的意义不一样。

文件类型 r w x
文件 文件可读 文件可写 文件可执行
目录 目录可读(可以查看目录下的文件) 目录可写(可以增减目录下的文件) 目录可执行(可以进入目录)

umask表示新建文件或者目录的时候用来屏蔽初始权限的掩码。
创建文件和目录的时候默认的权限不一样:

  • 文件的初始权限:-rw-rw-rw-
  • 目录的初始权限:drwxrwxrwx

初始权限再去除umask指定的权限就得到新建目录或者文件实际的权限了。

rc@rc-virtual-machine:~/tmp$ umask
0002
rc@rc-virtual-machine:~/tmp$ touch file1
rc@rc-virtual-machine:~/tmp$ mkdir dir1
rc@rc-virtual-machine:~/tmp$ ll
总用量 12
drwxrwxr-x  3 rc rc 4096 2月  27 14:44 ./
drwxr-xr-x 28 rc rc 4096 2月  27 14:44 ../
drwxrwxr-x  2 rc rc 4096 2月  27 14:44 dir1/
-rw-rw-r--  1 rc rc    0 2月  27 14:44 file1

修改umask的值可以修改~/.bashrc文件添加umask xxxx即可。

文件时间属性

stat命令可以查看文件详细的时间属性。

rc@rc-virtual-machine:~/tmp$ stat file1 
  文件:file1
  大小:0         	块:0          IO 块:4096   普通空文件
设备:805h/2053d	Inode:1051847     硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1000/      rc)   Gid:( 1000/      rc)
最近访问:2022-02-27 14:44:17.960612250 +0800
最近更改:2022-02-27 14:44:17.960612250 +0800
最近改动:2022-02-27 14:44:17.960612250 +0800
创建时间:-

在linux中文件有三种时间属性。

  • 最近访问时间(access time)(atime):文件被读取的时候会更新,比如cat命令查看文件。
  • 最近内容修改时间(modification time)(mtime):文件写入的时候会更新,比如vi命令修改文件。
  • 最近状态修改时间(change time)(ctime):文件属性变化的时候会更新,比如chmod命令修改文件属性。

touch命令默认会修改这三种时间属性。

有效用户和有效群组

passwd命令需要查看/etc/shadow文件,但这个文件需要root权限才可以读写,那么一般用户怎么通过passwd命令修改密码呢。

rc@rc-virtual-machine:~/tmp$ which passwd
/usr/bin/passwd
rc@rc-virtual-machine:~/tmp$ ll /usr/bin/passwd 
-rwsr-xr-x 1 root root 68208 7月  15  2021 /usr/bin/passwd*

linux通过设置开启有效用户的概念来解决这种问题。通过chmod 4755 xxx命令最前面的八进制数字来开启SUID位,表示该可执行程序使用文件属主来作为有效有户。内核实际在检查权限的时候会根据有效用户和有效群组来判断。

  • SUID:值为4,表示是否开启有效用户功能,使用文件属主作为有效用户。
  • GUID:值为2,表示是否开启有效群组功能,使用文件属群作为有效群组。
  • SBIT:值为1,暂时没了解。

参考资料

posted @ 2022-02-27 15:46  HachikoT  阅读(29)  评论(0编辑  收藏  举报