xml地图|网站地图|网站标签 [设为首页] [加入收藏]

热门直播

当前位置:美高梅游戏网站 > 热门直播 > LINUX 文件权限详解

LINUX 文件权限详解

来源:http://www.gd-chuangmei.com 作者:美高梅游戏网站 时间:2019-09-08 05:17

 

ls -l // 查看文件的权限 等价于 ll

LINUX下三个内核文件详解

文件的权限信息查看

 

-rw-rw-r-- 1 ceshi ceshi 891 Aug 8 17:28 server

在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行:ls –l。编译过RedHat Linux内核的人对其中的System.map 、vmlinuz、initrd-2.4.7-10.img印象可能比较深刻,因为编译内核过程中涉及到这些文件的建立等操作。那么这几个文件是怎么产生的?又有什么作用呢?本文对此做些介绍。

drwxrwxr-x 10 ceshi ceshi 4096 Aug 12 17:51 www.aa.com

 

开始 10个字符确定不同用户对文件的操作权限

  一、vmlinuz

第一个字符代表文件(-)、目录(d)、连接(l)

  vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。  

其余的字符每三个一组(rwx),读(r)、写(w)、执行(x)

  vmlinuz的建立有两种方式。一是编译内核时通过“make zImage”创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage /boot/vmlinuz”产生。zImage适用于小内核的情况,它的存在是为了向后的兼容性。二是内核编译时通过命令make bzImage创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz”产生。bzImage是压缩的内核映像,需要注意,bzImage不是用bzip2压缩的,bzImage中的bz容易引起误解,bz表示“big zImage”。 bzImage中的b是“big”意思。

第一组rwx:文件所有者的权限是读、写和执行

 

第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

  zImage(vmlinuz)和bzImage(vmlinuz)都是用gzip压缩的。它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip 或 gzip –dc解包vmlinuz。

第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

  内核文件中包含一个微型的gzip用于解压缩内核并引导它。两者的不同之处在于,老的zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage 或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。

也可以是数字表示 r=4,w=2,x=1

  vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。

rwx:=> 7 读、写和执行
rw-:=> 6 读、写。不能执行
r--:=> 4 只读文件
r-x:=> 5 读、执行
-w-:=> 2 写
-wx:=> 3 写、执行
--x:=> 1 执行

 

1 表示连接的文件数
ceshi 表示用户
ceshi 表示用户所在的组
891 表示文件的大小(字节)
Aug 8 17:28 表示文件的最后修改日期
server 表示文件名

  二、initrd-x.x.x.img

修改权限的命令

  initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。initrd-2.4.7- 10.img主要是用于加载ext3等文件系统及scsi设备的驱动。比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱 动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一 个能够读实际内核的initrd内核并用initrd修正scsi引导问题。initrd-2.4.7-10.img是用gzip压缩的文件。  

chmod 改变文件或者目录的权限

linuxrc这个脚本initrd实现加载一些模块和安装文件系统等。 initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。这个命令是RedHat专有的。其它 Linux发行版或许有相应的命令。这是个很方便的实用程序。具体情况请看帮助:man mkinitrd。

chmod 755 server 赋予server权限rwxr-xr-x

  www.2cto.com  

chmod u=rwx,g=rx,o=rx server u 用户权限 g 用户组权限 o 不同组的其他用户权限

  三、 System.map

chmod u-x,g+w server 去除用户执行的权限,增加用户组写的权限

  System.map是一个特定内核的内核符号表。它是你当前运行的内核的System.map的链接。

chmod a+r server 给所有的用户添加读的权限

  内核符号表是怎么创建的呢? System.map是由“nm vmlinux”产生并且不相关的符号被滤出。对于本文中的例子,编译内核时,System.map创建在/usr/src/linux-2.4/System.map。像下面这样:

改变所有者(chown)和用户组(chgrp)命令

  nm /boot/vmlinux-2.4.7-10 > System.map

chown xiaoming abc:改变abc的所有者为xiaoming

  下面几行来自/usr/src/linux-2.4/Makefile:

chgrp root abc:改变abc所属的组为root

  nm vmlinux | grep -v '(compiled)|(.o$$)|

chown root ./abc:改变abc这个目录的所有者是root

  ( [aUw] )|(..ng$$)|(LASH[RL]DI)' | sort > System.map

chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root

本文由美高梅游戏网站发布于热门直播,转载请注明出处:LINUX 文件权限详解

关键词: