您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Linux入门引导第19章
第19章Linux文件系统管理合理的文件系统管理有助于系统的稳定性与安全性。本章将针对文件的权限设置,以及文件系统的管理进行详实的介绍。系统管理员在理解了Linux操作系统的权限机制后,能够更好地打造一个安全的系统,并且为用户合理地分配权限。19.1文件的权限分配在Linux操作系统中,访问一个文件的用户分为三种类型:文件属主(Owner),文件属组内的成员用户(Group)以及其他用户(Other)。而每种用户的访问权限有三种,它们分别是读权限、写权限以及执行权限。:~/test$ls-l总计8-rw-rw-r--1linuxlinux3904-2815:45helloworld.sh这里显示出工作目录下文件的详细信息。在一个文件的详细信息的第一个字段中,一共有10位字符组成,它们代表了文件的类型以及权限分配情况。图19.1文件的权限分配情况图19.1清楚地给出了这10个字符的含义,从第一位到第十位分别表示:文件类型属主的读权限属主的写权限属主的执行权限属组的读权限属组的写权限属组的执行权限其他用户的读权限其他用户的写权限其他用户的执行权限Linux系统下的文件类型共有7种:第18章常用插件扩展点·217·普通文件:使用“-”表示目录:使用“d”表示字符设备文件:使用“c”表示块设备文件:使用“b”表示Unix域套接口:使用“s”表示管道文件:使用“p”表示符号连接:使用“l”表示其中最为常见的就是普通文件、目录文件以及符号连接。一个文件的访问权限中的r,w,x分别对应读、写与执行。当用户没有某访问权限时,使用连字符“-”表示没有权限。每一个访问权限都有一个数值对应,r的权限数值为4,w的权限数值为2,x的权限数值为1。它们分别是2的2次方,1次方与0次方的值。用数字来代表文件权限的一大好处就是系统管理员在修改文件权限时,能够快速使用数字来指代复杂的字母输入。现在就开始介绍如何为文件分配权限。19.2为文件分配权限Linux操作系统上的任意文件都可以被系统管理员或者是文件属主修改权限甚至是文件属主。本节就重点介绍两个最为常用的权限配置工具——chmod与chown。19.2.1chmod通过使用工具chmod,系统管理员或者是文件属主能够修改指定文件的用户访问权限。chmod的语法如下:chmod[选项]...模式[,模式]...文件...chmod[选项]...八进制模式文件...chmod[选项]...--reference=参考文件文件...实例1修改文件helloworld.sh的属主访问权限::~/test$ls-l总计8-rwxrw-r--1linuxlinux3904-2815:45helloworld.sh:~/test$chmodu-xhelloworld.sh:~/test$ls-l总计8-rw-rw-r--1linuxlinux3904-2815:45helloworld.sh在这个示例中,文件属主取消了自己对该文件的执行权限。“u-x”的意思就是“属主(u)去掉(-)写(x)权限”。字母u代表user,如果要加上某一访问权限,那么需要将这里的减号改为加号::~/test$chmodu+xhelloworld.sh:~/test$ls-l总计8-rwxrw-r--1linuxlinux3904-2815:45helloworld.shEclipse从入门到精通·218·可以看到,符号“+”代表增加某一访问权限。实例2修改文件helloworld.sh的属组访问权限::~/test$chmodg-whelloworld.sh:~/test$ls-l总计8-rwxr--r--1linuxlinux3904-2815:45helloworld.sh与修改属主的方式一样,只是原来的u变为了现在的g。字母g代表group,也就是该文件的属组。而其他用户的代表字母则为o,意为other::~/test$chmodo+xhelloworld.sh:~/test$ls-l总计8-rwxr--r-x1linuxlinux3904-2815:45helloworld.sh注意不要将“o”理解为owner如果要三种访问用户的权限一起修改的话,则需要使用字母a(all)来代表所有用户::~/test$chmoda-xhelloworld.sh:~/test$ls-l总计8-rw-r--r--1linuxlinux3904-2815:45helloworld.sh可以看到,原本属主与其他用户拥有对helloworld.sh文件的执行权限,现在通过chmoda-x命令,将三种访问用户的执行权限一并去除。实例3通过8进制模式修改文件访问权限::~/test$ls-l总计8-rw-r--r--1linuxlinux3904-2815:45helloworld.sh:~/test$chmod755helloworld.sh:~/test$ls-l总计8-rwxr-xr-x1linuxlinux3904-2815:45helloworld.sh在前面的插图中,已经给出了各种访问权限的数值。在这里,文件的属主拥有“读(4)+写(2)+执行(1)=7”的访问权限,同样的,属组与其他用户拥有“读(4)+执行(1)=5”的访问权限。所以,系统管理员或者是文件属主只要计算出各种访问用户的访问权限值,就能很快地通过chmod的八进制修改模式对文件访问权限进行修改。无论是否使用八进制修改模式,用户都可以通过自己喜好的模式能高效地使用chmod工具完成文件权限修改的工作。19.2.2chownchown工具用于修改文件的属主与属组,它的语法如下:chown[选项]...[所有者][:[组]]文件...chown[选项]...--reference=参考文件文件...实例1修改文件helloworld.sh的属主第18章常用插件扩展点·219·#ls-l总计8-rwxr-xr-x1rootroot3904-2815:45helloworld.sh#chownlinuxhelloworld.sh#ls-l总计8-rwxr-xr-x1linuxroot3904-2815:45helloworld.shchown命令必须带有两个命令参数,分别是要修改的文件及其属主,这个示例中,文件helloworld.sh的属主被设置成为了linux。实例2修改文件夹的属主与属组#ls-l总计16-rwxr-xr-x1linuxroot3904-2815:45helloworld.shdrwxr-xr-x2rootroot409604-2817:32test#ls-ltest/总计4-rw-r--r--1rootroot004-2817:32text#chown-Rlinux:linuxtest/#ls-l总计16-rwxr-xr-x1linuxroot3904-2815:45helloworld.shdrwxr-xr-x2linuxlinux409604-2817:32test#ls-ltest/总计4-rw-r--r--1linuxlinux004-2817:32text在示例的一开始,文件夹test与它下面的文件text都归root用户所有。使用带有命令选项R的chown可以对一个目录递归地进行属主与属组的设置修改。可以看到,要设置一个文件的属组,需要在属主后加上冒号后跟用户组名,如果只是单纯的修改文件属组,可以省略属主的修改:#ls-l总计16-rwxr-xr-x1linuxroot3904-2815:45helloworld.shdrwxr-xr-x2linuxlinux409604-2817:32test#chown:linuxhelloworld.sh#ls-l总计16-rwxr-xr-x1linuxlinux3904-2815:45helloworld.shdrwxr-xr-x2linuxlinux409604-2817:32test19.3挂载与格式化文件系统在早期,Linux下的热插拔设备都需要进行手动挂载,或者是修改/etc/fstab信息手动设置自动挂载。虽然如今大部分Linux发行版本都默认支持了自动挂载,但是,系统管理员还是有必要学习如何进行手动挂载,以便从容地处理意外发生的问题。Eclipse从入门到精通·220·本节将介绍基本的挂载命令mount以及文件系统格式化工具mkfs。19.3.1挂载文件系统Linux下最常用的挂载命令是mount,它支持多种文件系统的挂载,其中包括了Windows操作系统常用的NTFS与FAT32两种文件系统。mount的语法如下:mount[-lhV]mount-a[-fFnrsvw][-tvfstype][-Ooptlist]mount[-fnrsvw][-ooptions[,...]]device|dirmount[-fnrsvw][-tvfstype][-ooptions]devicedir实例1查看已挂载的文件系统:#mount/dev/sda2on/typereiserfs(rw)noneon/devtyperamfs(rw)noneon/proctypeproc(rw)noneon/systypesysfs(rw)noneon/proc/bus/usbtypeusbfs(rw)noneon/dev/ptstypedevpts(rw)noneon/dev/shmtypetmpfs(rw)/dev/sda3on/hometypereiserfs(rw)不带任何命令选项或者命令参数的mount将会详细地显示当前系统上已经挂载的文件系统。实例2将Windows的分区挂载到指定文件夹:#mount-tntfs-3g/dev/sda1/mnt/c/要挂载一个文件系统,就必须使用mount工具的命令选项t后跟正确的文件系统格式,然后将分区所在的设备文件(/dev/sda1)挂载到指定文件夹(/mnt/c)下。挂载成功后,通过mount与ls命令查看:#mount/dev/sda2on/typereiserfs(rw)noneon/devtyperamfs(rw)noneon/proctypeproc(rw)noneon/systypesysfs(rw)noneon/proc/bus/usbtypeusbfs(rw)noneon/dev/ptstypedevpts(rw)noneon/dev/shmtypetmpfs(rw)/dev/sda3on/hometypereiserfs(rw)/dev/sda1on/mnt/ctypefuseblk(rw,noatime,allow_other,blksize=4096)#ls-l/mnt/c/总计2100717drwxrwxrwx1rootroot409603-2906:50Dev-Cppdrwxrwxrwx1rootroot409603-2904:10DocumentsandSettingsdrwxrwxrwx1rootroot003-2906:20Downloads第18章常用插件扩展点·221·drwxrwxrwx1rootroot819204-2608:32ProgramFilesdrwxrwxrwx1rootroot003-2904:11RECYCLERdrwxrwxrwx1rootroot4915204-2816:03WINDOWS-rwxrwxrwx1rootroot21012-2710:35boot.ini...这里挂载的是Windows操作系统下的C盘,通过ls工具就可以列出C盘下的文件了。同样,挂载移动硬盘或者是U盘的道理也是一样的。如果无法确定需要挂载的设备文件,那么可以通过dmesg工具来查看:#dmesg...usb4-1:newhighspeedUSBdeviceusingehci_hcdandaddress5usb4-1:configuration#1chosenfrom1choicescsi
本文标题:Linux入门引导第19章
链接地址:https://www.777doc.com/doc-2913402 .html