转载来源:http://blog.itpub.net/29621173/viewspace-1150127/
[root@orser ~]# ls -l install.log
-rw-r--r--. 1 root root 48005 Apr 22 05:38 install.log 再次将上面结果分为7组分别是【-rw-r--r--.】【1】【root 】【root 】【48005 】【Apr 22 05:38】【install.log】 【第一组-rw-r--r--.】
第一个字符表示文件类型 d:文件目录 b:块 设备文件 [root@orser ~]# ls -l /dev/sda1 brw-rw----. 1 root disk 8, 1 Apr 25 19:41 /dev/sda1 c:字符设备 文件 [root@orser ~]# ls -l /dev/console crw-------. 1 root root 5, 1 Apr 25 19:41 /dev/console l:连接文件(软连接) [root@orser ~]# ls -l /dev/fd lrwxrwxrwx. 1 root root 13 Apr 25 19:41 /dev/fd -> /proc/self/fd p:管道文件:确切的说是FIFO(先进先出),也可以说是有名管道,跟管道稍有区别 s:套接字文件(不晓得为什么在帮助文档中没有提到) -:普通文件 【注1】块设备与字符设备: 其最大的区别在于是否可以被随机访问,块设备可以被随机访问,字符设备不可以被随机访问。 【注2】硬链接与软链接: 两者区别在于一个文件分别做硬链接和软链接,当删除原文件时,软链接失效而硬链接依然可用。其次软链接与原文件的inode号不同,而硬链接与原文件的inode号相同。另外硬链接不能跨设备做,而软链接可以 【注3】管道: 管道是一种特殊文件,也可以说是一种特殊的虚拟文件,因为他只是在内存中开辟了一块区域。通过对两个进程的索引节点inode进行关联,使得两个进程间传输。不过管道属于半双工,也就是数据只能流向一个方向。 测试软硬链接的区别 [root@orser orser]# touch link [root@orser orser]# ln link linkh [root@orser orser]# ln -s link links 137901 -rw-r--r--. 2 root root 11 Apr 25 23:13 link 137901 -rw-r--r--. 2 root root 11 Apr 25 23:13 linkh 138760 lrwxrwxrwx. 1 root root 4 Apr 25 23:14 links -> link 以上可以看出软链接的inode号与原文件不同,硬链接的inode号与原文件相同 [root@orser orser]# cat link kkkskdadsf [root@orser orser]# cat links kkkskdadsf [root@orser orser]# cat linkh kkkskdadsf [root@orser orser]# rm -f link [root@orser orser]# cat linkh kkkskdadsf [root@orser orser]# cat links cat: links: No such file or directory 以上可以得出当原文件被删除时,软链接不可用 ,硬连接可用。 [root@orser orser]# ln -s /home/text linkss [root@orser orser]# ls -l lrwxrwxrwx. 1 root root 10 Apr 26 15:17 linkss -> /home/text [root@orser orser]# ln /home/text linkd ln: creating hard link `linkd' => `/home/text': Invalid cross-device link 以上可以看出软链接可以跨设备,而硬链接不能跨设备 2-10权限位 2-4:所属主权限即为谁创建的文件 5-7:所属组权限 8-10:其他人权限 每一组权限都分为3个字符rwx,r为可读权限对应数字为4,w为可写权限对应数字为2,x为可执行权限对应数字为1。 rwx所在的位置是不会改变的,有该权限就会显示字符,没有该权限就变成减号(-) 修改文件权限:chmod 原文件权限 [root@orser orser]# ls -l link -rw-r--r--. 1 root root 0 Apr 26 15:18 link 为该文件添加拥有者可执行权限 [root@orser orser]# chmod u+x link [root@orser orser]# ls -l link -rwxr--r--. 1 root root 0 Apr 26 15:18 link 为该文件添加所属组可写入和可执行权限 [root@orser orser]# chmod g+wx link [root@orser orser]# ls -l link -rwxrwxr--. 1 root root 0 Apr 26 15:18 link 为该文件去除其他人可读权限 [root@orser orser]# chmod o-r link [root@orser orser]# ls -l link -rwxrwx---. 1 root root 0 Apr 26 15:18 link 也可以使用数字的方式修改权限 以原始文件为基准为该文件添加其他人可读可写可执行权限 [root@orser orser]# chmod 647 link [root@orser orser]# ls -l link -rw-r--rwx. 1 root root 0 Apr 26 15:18 link 将该文件全选还原到原始权限 [root@orser orser]chmod 644 link [root@orser orser]# ls -l link -rw-r--r--. 1 root root 0 Apr 26 15:18 link 强制位与冒险位(suid、sgid、stickty) suid 数字为4 说明:任何用户在执行拥有suid权限的命令时都会以命令用者的身份拥有 添加与去除的方法同添加去除普通选项 chmod u+s 添加suid权限(往命令上添加) chmod u-s 删除suid权限 【注】suid作用到 可执行文件上,作用到目录上没有意义 sgid 数字为2 说明: 任何用户在拥有sgid权限的目录下创建的文件都要继承该目录的组 添加与删除方法: chmod g+s 添加sgid权限 chmod g-s 删除suid权限 【注】 sgid作用到目录上,作用到文件上没有意义,cp过去的文件也会被作用 sticky t 数字为1 说明: 任何用户在拥有t权限的目录下创建的文件,只能该用户删除,其他人无权删除 添加与去除 chmod o+t 添加t权限 chmod o-t 添加t权限 【注】sticky 作用到目录上,作用在文件上没有意义 强制位与冒险位同样可以使用数字模式添加或去除 添加和去除的方法为在普通数字权限 前加上强制位与冒险位的数字权限。 例如:chmod 4777 cat umask默认权限反掩码 当我们在创建文件或者目录的时候都会有一个默认权限,那么这个默认权限是怎么来的,就是通过umask计算得来的,一般root用户的umask值为022,普通用户的umask值为002。那么系统是怎么通过umask计算出创建文件或目录的权限的呢? 1、创建目录 取得777中每一位的二进制码(111 111 111) 取得umask中每一位的二进制码(000 010 010) 对umask中每一位的二进制码取反(111 101 101) 用777中每一位的二进制码和取反后的umask中每一位的二进制码做与运算(111 101 101)即755. 如果上面的国语繁琐,可以直接使用下列步骤 777=rwxrwxrwx 022=----w--w- 两者相减就是了。 2、创建文件 和创建目录的算法相同,只不过创建文件是用666与umask做运 算。 11位 测试与SELinux的关系 [root@orser orser]# sestatus SELinux status: disabled [root@orser orser]# touch se [root@orser orser]# ls -l se -rw-r--r-- 1 root root 0 Apr 26 17:58 se [root@orser orser]# sestatus SELinux status: enabled [root@orser orser]# ls -l se -rw-r--r--. 1 root root 0 Apr 2 6 17:58 se 经过测试发现当SELinux开启 时创建文件此位会有点出现 当SELinux关闭时创建文件此位不 会出现点,但是当再次开启SELinux时该文件此位置又会出现点。 测试与ACL的关系 [root@orser orser]# touch aclt [root@orser orser]# ls -l aclt -rw-r--r--. 1 root root 0 Apr 26 18:33 aclt [root@orser orser]# setfacl -m user:oracle:--x aclt [root@orser orser]# ls -l aclt -rw-r-xr--+ 1 root root 0 Apr 26 18:33 aclt 经过测试我们发现当此文件设置了acl权限的时候这一位上变成了+号。 综上测试: 如果这一位上有点,那只能证明系统开启过SELinux并且是在,或者该文件在开启SELinux之前就已经存在;如果这一位上面是+号那么可以证明是该文件具有acl权限控制。 【第二组 1 】 文件硬链接数。 测试: [root@orser orser]# touch link [root@orser orser]# ls -l link -rw-r--r--. 1 root root 0 Apr 26 18:53 link [root@orser orser]# ln link linkh [root@orser orser]# ls -l link* -rw-r--r--. 2 root root 0 Apr 26 18:53 link -rw-r--r--. 2 root root 0 Apr 26 18:53 linkh 通过测试可以得出,当一个文件创建了硬链接的时候,此位为硬链接个数,同样做硬链接的那个文件此位和此文件相同 【第三组 root 】 该文件或目录的拥有者 即哪个用户对此文件或目录有足够的权限,只有拥有者(root除外)能够改变文件的属性,当用户被删除后该位置只显示用户id。 [root@orser orser]# useradd -u 508 -g users testuser [root@orser orser]# su - testuser [testuser@orser ~]$ id uid=508(testuser) gid=100(users) groups=100(users) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [testuser@orser ~]$ touch test [testuser@orser ~]$ ls -l test -rw-r--r--. 1 testuser users 0 Apr 26 19:57 test [root@orser ~]# userdel testuser [root@orser ~]# ls -l /home/testuser/test -rw-r--r--. 1 508 users 0 Apr 26 19:57 /home/testuser/test 508为文件只记录的用户id,由于用户被删除关联不到用户信息所以只能显示本身记录的用户id。用户组也是同样道理 【第四组 root 】 该文件或目录属于哪个用户组,道理和用户一样。 【第五组 48005 】 文件大小 【第六组 Apr 22 05:38 】 最后一次修改时间 【第七组 install.log 】 文件名 参考资料 块设备与字符设备 http://blog.itpub.net/10522540/viewspace-198228/ 软硬链接 http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html 管道、FIFO http://www.ibm.com/developerworks/cn/linux/l-ipc/part1/ http://www.ibm.com/developerworks/cn/linux/l-lpic1-v3-103-4/ http://oss.org.cn/kernel-book/ch07/7.1.1.htm ACL http://www.ibm.com/developerworks/cn/linux/l-acl/ http://linuxguest.blog.51cto.com/195664/124107