Linux 文件系统管理之一

文件系统是操作系统在磁盘分区上保存文件信息的方法和数据结构


Linux 文件系统具有类似的通用结构,其关键组成部分如下:
超级块(super block)
索引节点(inode)
数据块(data block)
目录块(directory block)


文件权限
[root@asm ~]# ls -lt
total 68
文件权限      属主  属组 大小
drwxr-xr-x 2 root  root  4096 Feb  2 20:40 Desktop
-rw------- 1 root  root  1769 Feb  2 07:12 anaconda-ks.cfg
-rw-r--r-- 1 root  root 39469 Feb  2 07:11 install.log
-rw-r--r-- 1 root  root  5400 Feb  2 07:11 install.log.syslog


文件权限
文件类型             属主权限               属组权限              其他用户的权限
d                    rwx                    r-x                   r-x
-                    rw-                    ---                   ---
-                    rw-                    r--                   r--
-                    rw-                    r--                   r--


read write execute
r    w     x     
4    2     1


rwx=421




三种基本权限:读、写、执行


R 读权限 可以读文件的内容  可以列出目录中的文件列表
W 写权限 可以修改、删除文件 可以在目录中创建、删除文件
X 执行权限 可以执行文件 可以通过cd命令进入目录


如果目录只有执行权限,则只可以进入该目录或该目录下更深层次的目录
如果目录只有执行权限,则要访问该目录下的只有读权限的文件,则必须知道文件名才可以访问
如果目录上只有执行权限,则无法列出目录列表也不能删除该目录
如果目录上具有执行权限和读权限,则可以进入目录并列出目录列表
如果目录上具有执行权限和写权限,则可以再目录中创建、删除、重命名文件




三种特殊权限位:在可执行程序运行时影响操作权限
SUID 位:当设置了suid位的可执行文件执行时,该文件将以 owner 的身份运行,也就是无论什么用户来执行该文件,执行用户都具有该文件owner的特权,
         任意访问该文件owner所拥有的全部系统资源。如果owner是root,则文件的执行者将具有root 权限


SGID 位:当设置了SGID位的可执行文件运行时,该文件将具有所属 group 的特权,能够任意访问所属 gruop 的系统资源;若某个目录设置了SGID,则所有
         被复制到这个目录下的文件,其所属的 group 都会被重设为该目录的所属组,除非在复制文件时加上 -p 选项(preserve,保留文件属性)的参数,
         才能保留原来的所属组设置


sticky-bit:对一个文件设置了 sticky-bit之后,即使其他用户具有写权限,也必须由owner来执行删除、移动等操作;对一个目录设置了 sticky-bit之后,
            存放在该目录的文件仅允许其owner执行删除、移动等操作。


以 passwd 程序为例,该程序允许普通用户修改自己的口令,这是通过修改 /etc/shadow 文件的口令字段实现的。然而系统管理员决不允许普通用户拥有直
接修改 /etc/shadow 文件的权限。实现的方法便是将 passwd 程序设置 suid,当 passwd 程序被执行时将拥有 root 的权限,而 passwd 运行结束又回到
普通用户的权限。


[root@asm /]# useradd test
[root@asm /]# passwd test
Changing password for user test.
New UNIX password: 
BAD PASSWORD: it is too short
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.




[root@asm /]# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 23420 Nov 12  2010 /usr/bin/passwd


[root@asm /]# su - test
[test@asm ~]$ id test
uid=502(test) gid=506(test) groups=506(test)
[test@asm ~]$ ls -l /etc/shadow
-r-------- 1 root root 1353 Feb 14 11:33 /etc/shadow


当 test 用户修改自己的密码执行 passwd 时,它就具有 root 的权限了


sticky-bit
t 表示所有用户对 /tmp 都具有读、写、执行权限
[root@asm test]# ls -lt / | grep tmp
drwxrwxrwt  12 root   root      4096 Feb 14 10:53 tmp




Linux 系统中的每个文件和目录都有访问许可权限,这是加在文件上的一种数据结构
访问权限规定了三种不同类型的用户:
文件属主 owner  文件所有者
文件属组 group  同组用户
可以访问系统的其他用户 others


访问权限规定三种访问文件或目录的方式:
读 r: 允许读取文件内容或者列出目录
写 w: 允许修改文件内容或者创建、删除文件
可执行或查找(x): 允许执行文件或者允许使用 cd 命令进入目录




Linux 的文件类型
文件时操作系统用于存储信息的基本结构,通过文件名来标识
Linux 系统有三种基本的文件类型
普通文件:文本文件、数据文件、可执行二进制文件
目录文件:Linux 把目录视为一种特殊文件,用其来构成文件系统的树形结构
设备文件:Linux 把每种设备都视为一个文件(块设备和字符设备)
链接文件:




Linux 的文件系统类型如下:
普通文件 -
目录     d
符号链接 l
字符设备 c
块设备   b
套接字   s
命名管道 p


通过 ls -l /dev 命令可以查看绝大多数文件类型






系统文件


*.conf 配置文件
*.rpm  rpm 包
*.deb:deb 包
*.a    存档文件
*.lock 锁文件
*~     备份文件
.*     隐含文件




程序与脚本
*.c C 语言源程序文件
*.cpp C++语言源程序文件
*.h C 或 C++ 的头文件
*.o 程序对象文件
*.pl Perl 语言源程序文件
*.php PHP 语言源程序文件
*.python Python 语言源程序文件
*.tcl TCL 脚本文件
*.so *.lib  库文件


其他文件

类似于 windows 上的文件格式,如 mps,jpeg, html等


转载请注明出处及原文链接,拒绝盗转






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值