本文介绍linux下如何进行文件系统的管理,供大家学习参考。
这是第二部分内容,第一部分内容在这里:http://www./LINUXjishu/2759.html。
关于/etc/fstab文件
下来学习/etc/fstab这个文件的所有参数,这个文件是非常重要的。这个文件是配置文件系统的体系,创建的所有分区,都必须写在这个文件里面,否则下次启动的时候你的分区是挂不起来的。
首先学习一个mount –a 这个命令
这个命令会重启读取/etc/fstab这个文件,可以使用mount –a命令挂载/etc/fstab中所有的文件系统。做一个小实验,来验证一下
首先吧/dev/sda7给卸载掉
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 4061572 2589456 1262468 68% /
/dev/sda6 505604 10545 468955 3% /home
/dev/sda2 4061572 1799208 2052716 47% /var
/dev/sda1 101086 13588 82279 15% /boot
tmpfs 192132 0 192132 0% /dev/shm
[root@localhost ~]#
/dev/sda7这个分区被成功卸载了
然后再/etc/fstab这个文件里面手动的添加这样一行
/dev/sda7 /mnt ext3 defaults 0 0
最后在使用mount -a 这个命令
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 3.9G 2.5G 1.3G 68% /
/dev/sda6 494M 11M 458M 3% /home
/dev/sda2 3.9G 1.8G 2.0G 47% /var
/dev/sda1 99M 14M 81M 15% /boot
tmpfs 188M 0 188M 0% /dev/shm
/dev/sda7 471M 18M 405M 5% /mnt
[root@localhost ~]#
/dev/sda7又被重新的挂载到/mnt下面了
下面是/etc/fstab这个文件中每个参数的含义
来学习一下/etc/fstab这个文件的每个参数是什么意思
LABEL=/ / ext3 defaults 1 1
LABEL=/home /home ext3 defaults 1 2
LABEL=/var /var ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda5 swap swap defaults 0 0
/dev/sda7 /mnt ext3 defaults 0 0
参数的解释
LBAEL=/ 是指用卷标的方式来表示,也可以用设备名。如/dev/sda7
/ 这个是指挂载点
Ext3,swap 这些都是文件系统的类型
Default 这个是最重要,这个default里面包含五个参数。
1 1 后面的1代表最先扫描,最先起来
1 2 后面的2代表优先级低一点,最后起来
0 0 后面的0代表忽略启动,计算机启动时不会读这个文件系统
可以看到根分区的是1,是因为系统启动的时候,根分区是肯定要起来的,如果根分区不起来,其他分区起来是没有意义的。而后面的0,忽略启动时因为后面的分区起不起来也没有太大关系,不会影响计算机的启动,如果将后面的分区也设为1,那么一旦后面分区坏了,或者被删除了,系统就起不来了。所以我们的普通分区一般设置为0.
关于ext3的默认选项
也就是刚才在/etc/fstab那个default里面包含的五个参数
rw suid dev exec sync
default其实里面就包含了这五个参数。
下面就来解释一下这五个参数是什么意思和他们对应的是那些参数,
Rw ro
可读可写 只读
Suid nosuid
suid功能 没有suid功能
Dev nodev
挂载设备文件 不可以挂载设备文件
Sync nosync
acl功能 没有acl功能
Exec noexec
执行功能 不可以执行
这些default里面参数的对应关系,而default默认就有前面的那五个参数了,如果想改变这些参数,就需要到/etc/fstab这个文件里面的default后面加上你要改变的参数
现在针对这五个参数来做实验,具体的了解一下这五个参数的含义
第一个参数是rw 将它改成ro
先看一下的文件系统是不是可读可写(这个是默认的)
[root@localhost mnt]# mkdir file
[root@localhost mnt]# ls
file
[root@localhost mnt]#
可以看到,文件系统是可读可写的。下面将文件系统改为ro
在/etc/fstab文件中添加这样一行,
/dev/sda7 /mnt ext3 defaults,ro 0 0
文件系统改为ro了,但是并不能够立即生效,必须等到下次重启的时候才会生效,可以敲一条命令,让其立即生效
[root@localhost ~]# mount –o remount /dev/sda7
这条命令可以让刚才做的操作立即生效。
在使用mount命令来查询一下/dev/sda7是否变成只读了。
[root@localhost ~]# mount | grep /dev/sda7
/dev/sda7 on /mnt type ext3 (ro)
[root@localhost ~]#
已经看到了/dev/sda7已经变成ro了
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# mkdir file1
mkdir: cannot create directory `file1': Read-only file system
[root@localhost mnt]#
可以看到,当再次进入/mnt下面建立目录的时候,他就提示这是一个只读的文件。
第二个参数suid 将它改成no suid
在正常情况下面,普通用户是可以改变自己的密码的。我们试一下
[user1@localhost ~]$ passwd
Changing password for user user1.
Changing password for user1
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[user1@localhost ~]$
普通用户的确是可以改变自己的密码的,接下来,在/etc/fstab这个文件里面添加一行内容。
LABEL=/ / ext3 defaults,nosuid 1 1
同样的,使用命令将其立即生效。
[root@localhost ~]# mount |grep /dev/sda3
/dev/sda3 on / type ext3 (rw,nosuid)
[root@localhost ~]#
可以看到,的根文件系统已经有了一个nosuid的参数了
同样的,在切换到普通用户,修改自己的密码
[user1@localhost ~]$ passwd
Changing password for user user1.
Changing password for user1
(current) UNIX password:
passwd: Authentication token manipulation error
[user1@localhost ~]$
看到了,没有suid,一个普通用户是无法改变自己的密码嘚。因为根文件系统没有suid的功能,普通用户没有办法写到/etc/shadaw里面去
第三个参数是exec,将它换成noexec
默认情况下,在linux系统,的脚本只要有执行权限,都是可以被执行的,
[root@localhost mnt]# ls
shell
[root@localhost mnt]# ./shell
shell is A
shell is B
shell is C
[root@localhost mnt]#
看到这个脚本是可以被执行的,
现在我给/mnt加上一个noexec的参数
看下在/mnt里面的脚本还可不可以被执行。
在/etc/fstab这个文件里面加入这样的一行,
/dev/sda7 /mnt ext3 defaults,noexec 0 0
还是要使用mount –o remount /mnt来让刚才的操作立即生效。
[root@localhost ~]#
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# ls
shell
[root@localhost mnt]# ./shell
bash: ./shell: /bin/sh: bad interpreter: Permission denied
[root@localhost mnt]#
看到了,脚本将不能够运行,这个因为文件系统没有了执行功能,所以我脚本就不能运行了。
第四个参数dev,将它改成nodev
在linux系统中,默认情况下,光盘是可以通过计算机的光驱的,但是如果加入了nodev 光盘就将挂不起来。
下面在来学习一下怎么在linux下面怎么挂载一个iso文件系统
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 4061572 2598728 1253196 68% /
/dev/sda6 505604 10565 468935 3% /home
/dev/sda2 4061572 1936516 1915408 51% /var
/dev/sda1 101086 13588 82279 15% /boot
tmpfs 192132 0 192132 0% /dev/shm
/dev/sda7 482214 19600 412816 5% /mnt
df: `/media/RHEL_5.4 i386 DVD': No such file or directory
/root/boot.iso 9028 9028 0 100% /media
[root@localhost ~]# cd /media/
[root@localhost media]# ls
isolinux TRANS.TBL
[root@localhost media]# cd isolinux/
[root@localhost isolinux]# ls
boot.cat initrd.img memtest rescue.msg vmlinuz
boot.msg isolinux.bin options.msg splash.lss
general.msg isolinux.cfg param.msg TRANS.TBL
[root@localhost isolinux]#
这样,iso文件就被挂载到了/media这个目录里面。
下面在来学习一下在挂载的时候指定一个拥有人和拥有组的
这个参数只适合fat32的格式文件系统(dosfstools-2.11-7.el5)
首先将/dev/sda7格式化成fat32
mkfs.vfat 2.11 (12 Mar 2005)
[root@localhost ~]#
已经吧/dev/sda7格式化成了fat32
uid=500(user1) gid=500(user1) groups=500(user1)
[root@localhost ~]# mount -o uid=500,gid=500 /dev/sda7 /mnt/
[root@localhost ~]# mount |grep /dev/sda7
/dev/sda7 on /mnt type vfat (rw,uid=500,gid=500)
[root@localhost ~]#
直接在挂载的时候加了一个uid gid 的参数
如果是正常情况,在系统中,以root的身份把一个文件从一个目录复制到另外一个目录,拥有人和拥有组都是root。现在呢
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# ll
total 8
-rwxr-xr-x 1 user1 user1 760 Feb 20 01:47 fstab
[root@localhost mnt]#
可以看到,复制过来的文件的拥有人和拥有组已经变成user1了,这个是因为刚才在挂载的时候已经指定了他文件系统的uid和gid
扩展swap分区
先来查询一下系统的swap
total used free shared buffers cached
Mem: 375 369 6 0 7 83
-/+ buffers/cache: 278 97
Swap: 1027 128 899
[root@localhost ~]#
现在系统中swap是1024M
扩展是swap分区有两种方法,
(1)、利用磁盘的剩余空间来扩展swap
首先分区并改变分区的类型
[root@localhost ~]# fdisk /dev/sda
The number of cylinders for this disk is set to 1958.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
First cylinder (1316-1958, default 1316):
Using default value 1316
Last cylinder or +size or +sizeM or +sizeK (1316-1958, default 1958): +500M
Command (m for help): t
Partition number (1-8): 8
Hex code (type L to list codes): 82
Changed system type of partition 8 to 82 (Linux swap / Solaris)
Command (m for help): wq
格式化swap
Setting up swapspace version 1, size = 509927 kB
[root@localhost ~]#
启动swap
[root@localhost ~]#
现在我在查询一下swap的大小
total used free shared buffers cached
Mem: 375 369 6 0 7 82
-/+ buffers/cache: 278 96
Swap: 1513 128 1385
[root@localhost ~]#
可以看到的swap分区已经增大了500M
最后,要想下次系统重启生效,必须写在/etc/fstab文件中
/dev/sda8 swap swap defaults 0 0
(2)、利用分区的剩余空间来扩展swap
首先我一样要查询一下系统中swap分区的大小
total used free shared buffers cached
Mem: 375 368 7 0 7 81
-/+ buffers/cache: 278 96
Swap: 1513 128 1385
[root@localhost ~]#
然后利用dd工具来创建一个swap文件
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.632534 seconds, 166 MB/s
[root@localhost ~]#
格式化swap
Setting up swapspace version 1, size = 104853 kB
[root@localhost ~]#
把这个文件当做一个分区来对待
启动swap
[root@localhost ~]#
现在来查询一下swap分区的大小
total used free shared buffers cached
Mem: 375 368 6 0 1 90
-/+ buffers/cache: 276 98
Swap: 1613 128 1485
[root@localhost ~]#
可以看到系统的swap分区已经扩大100M
最后,要想下次系统重启生效,必须写在/etc/fstab文件中
/swapfile swap swap defaults 0 0
以上的两种方法就是用来扩展swap分区的
还可以使用swapon -a 激活交换分区,(该命令可以读取/etc/fstab文件,并开启它列出所有的交换条目
还可以利用swapon -s 来查询交换分区的状态
Filename Type Size Used Priority
/dev/sda5 partition 1052216 131640 -1
/dev/sda8 partition 497972 0 -2
/root/swapfile file 102392 0 -3
[root@localhost ~]#
在这里,可以看到swap是有哪些文件组成的,还有优先级,数字越大,优先级越高。可以在/etc/fstab文件中default后面加上pri=X(X为优先级)
在linux系统当中,怎么去挂载一个NFS的网络文件系统呢
可以通过showmount -e 来查看对方计算机有哪些文件夹被共享了
Export list for 192.168.0.254:
/var/ftp/pub 192.168.0.0/24
[root@localhost ~]#
下面来挂载nfs网络资源
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 4061572 2309084 1542840 60% /
/dev/sda6 505604 10565 468935 3% /home
/dev/sda2 4061572 1857588 1994336 49% /var
/dev/sda1 101086 13588 82279 15% /boot
tmpfs 192132 0 192132 0% /dev/shm
/dev/hdc 2935370 2935370 0 100% /media/RHEL_5.4 i386 DVD
192.168.0.254:/var/ftp/pub/
4061600 1857600 1994336 49% /mnt
[root@localhost ~]#
Nfs网络资源就被成功挂载到本地了。
如果要每次启动的时候都要生效,就必须写在/etc/fstab文件里面
192.168.0.254:/var/ftp/pub /mnt nfs defaults 0 0
至此,关于linux文件系统管理的内容就介绍完了,希望对大家有所帮助。
关掉Linux shell提示音的方法,供大家学习参考。
1.在控制台下用下面命令,可以临时关掉提示音!
#setterm -blength 0
2.在X11下(GNOME,KDE···)
#xset b off
3.在一个控制台下,通过修改/etc/inputrc,永久关掉它!但只对当前控制台生效。
#vim /etc/inputrc
添加一行:set bell-style none
SSH服务监听多个端口的配置方法,感兴趣的朋友可以参考下。
配置sshd监听多个端口,编辑sshd_config,增加ListenAddress选项 – 指定监听的网络地址,默认监听所有地址。
可以使用下面的格式:
ListenAddress host|IPv4_addr|IPv6_addr
ListenAddress host|IPv4_addr:port
ListenAddress [host|IPv6_addr]:port
如果未指定 port ,那么将使用 Port 指令的值。可以使用多个 ListenAddress 指令监听多个地址。
vi /etc/ssh/sshd_config
增加
ListenAddress 0.0.0.0:181
ListenAddress 0.0.0.0:183
即监听22, 181, 183 (Port选项的端口也要加上)
/etc/init.d/ssh restart
重启生效。