e2fsck

e2fsck命令用于检查第二扩展文件系统的完整性,通过适当的选项可以尝试修复出现的错误。

e2fsck执行后的传回值及代表意义如下:

  • 0 没有任何错误发生。
  • 1 文件系统发生错误,并且已经修正。
  • 2 文件系统发生错误,并且已经修正。
  • 4 文件系统发生错误,但没有修正。
  • 8 运作时发生错误。
  • 16 使用的语法发生错误。
  • 128 共享的函数库发生错误。

语法

e2fsck(选项)(参数)

选项

-a:不询问使用者意见,便自动修复文件系统;
-b<superblock>:指定superblock,而不使用预设的superblock;
-B<区块大小>:指定区块的大小,单位为字节;
-c:一并执行badblocks,以标示损坏的区块;
-C:将检查过程的信息完整记录在file descriptor中,使得整个检查过程都能完整监控;
-d:显示排错信息;
-f:即使文件系统没有错误迹象,仍强制地检查正确性;
-F:执行前先清除设备的缓冲区;
-l<文件>:将文件中指定的区块加到损坏区块列表;
-L<文件>:先清除损坏区块列表,再将文件中指定的区块加到损坏区块列表。因此损坏区块列表的区块跟文件中指定的区块是一样的;
-n:以只读模式开启文件系统,并采取非互动方式执行,所有的问题对话均设置以"no"回答;
-p:不询问使用者意见,便自动修复文件系统;
-r:此参数只为了兼容性而存在,并无实际作用;
-s:如果文件系统的字节顺序不适当,就交换字节顺序,否则不做任何动作;
-S:不管文件系统的字节顺序,一律交换字节顺序;
-t:显示时间信息;
-v:执行时显示详细的信息;
-V:显示版本信息;
-y:采取非互动方式执行,所有的问题均设置以"yes"回答。

参数

文件系统或者分区:指定文件系统或者分区所对应的设备文件名。

实例

检查/dev/sda1是否有问题,如发现问题便自动修复:

e2fsck -a -y /dev/sda1

执行e2fsck或fsck前请先umount partition,否则有机会令档案系统毁损。如果需要对根目录/进行检查及修复,便需要进入singal user mode执行。

umount

umount命令用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。

语法

umount(选项)(参数)

选项

-a:卸除/etc/mtab中记录的所有文件系统;
-h:显示帮助;
-n:卸除时不要将信息存入/etc/mtab文件中;
-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统;
-t<文件系统类型>:仅卸除选项中所指定的文件系统;
-v:执行时显示详细的信息;
-V:显示版本信息。

参数

文件系统:指定要卸载的文件系统或者其对应的设备文件名。

实例

下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息:

通过设备名卸载

umount -v /dev/sda1
/dev/sda1 umounted

通过挂载点卸载

umount -v /mnt/mymount/
/tmp/diskboot.img umounted

如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录:

umount -v /mnt/mymount/
umount: /mnt/mymount: device is busy
umount: /mnt/mymount: device is busy

有时,导致设备忙的原因并不好找。碰到这种情况时,可以用lsof列出已打开文件,然后搜索列表查找待卸载的挂载点:

lsof | grep mymount         查找mymount分区里打开的文件
bash   9341  francois  cwd   DIR   8,1   1024    2 /mnt/mymount

从上面的输出可知,mymount分区无法卸载的原因在于,francois运行的PID为9341的bash进程。

对付系统文件正忙的另一种方法是执行延迟卸载:

umount -vl /mnt/mymount/     执行延迟卸载

延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源。卸载可移动存储介质还可以用eject命令。下面这条命令会卸载cd并弹出CD:

eject /dev/cdrom      卸载并弹出CD 

halt

halt命令用来关闭正在运行的Linux操作系统。halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。

语法

halt(选项)

选项

-d:不要在wtmp中记录;
-f:不论目前的runlevel为何,不调用shutdown即强制关闭系统;
-i:在halt之前,关闭全部的网络界面;
-n:halt前,不用先执行sync;
-p:halt之后,执行poweroff;
-w:仅在wtmp中记录,而不实际结束系统。

实例

halt -p     //关闭系统后关闭电源。
halt -d     //关闭系统,但不留下纪录。

mountpoint

mountpoint命令用来判断指定的目录是否是加载点,如果是挂载点返回0,如果不是就返回非0。设备总是挂载在某个指定的目录下,所以就可以使用mountpoint这条命令来确认某个目录是否”临时性“的被文件系统占用。

语法

mountpoint(选项)(参数)

选项

-q:不打印任何信息;
-d:打印文件系统的主设备号和次设备号;
-x:打印块数设备的主设备号和次设备号。

参数

目录:指定要判断的目录。

实例

查看/mnt目录是不是挂载点:

mountpoint /mnt
/mnt is a mountpoint

这里,我在/mnt目录下面挂载了一些东西。

查看/usr/local是不是挂载点: 

mountpoint /usr/local
/usr/local is not a mountpoint

这里,我没有把任何分区挂载到/usr/local目录上面。 

查看挂载的/mnt的主/次设备号码: 

mountpoint -d /mnt
8:5 

看一个设备的主/次设备号:

mountpoint -x /dev/sda9
8:9

nologin

nologin命令可以实现礼貌地拒绝用户登录系统,同时给出信息。如果尝试以这类用户登录,就在log里添加记录,然后在终端输出This account is currently not available信息,就是这样。一般设置这样的帐号是给启动服务的账号所用的,这只是让服务启动起来,但是不能登录系统。

语法

nologin

实例

Linux禁止用户登录:

禁止用户登录后,用户不能登录系统,但可以登录ftp、SAMBA等。我们在Linux下做系统维护的时候,希望个别用户或者所有用户不能登录系统,保证系统在维护期间正常运行。这个时候我们就要禁止用户登录。  

1、禁止个别用户登录,比如禁止lynn用户登录。

passwd -l lynn

这就话的意思是锁定lynn用户,这样该用户就不能登录了。  

passwd -u lynn

上面是对锁定的用户lynn进行解锁,用户可登录了。    

2、我们通过修改/etc/passwd文件中用户登录的shell

vi /etc/passwd

更改为:

lynn:x:500:500::/home/lynn:/sbin/nologin

该用户就无法登录了。  

3、禁止所有用户登录。

touch /etc/nologin

除root以外的用户不能登录了。

mkfs

mkfs命令用于在设备上(通常为硬盘)创建Linux文件系统。mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。

语法

mkfs(选项)(参数)

选项

fs:指定建立文件系统时的参数;
-t<文件系统类型>:指定要建立何种文件系统;
-v:显示版本信息与详细的使用方法;
-V:显示简要的使用方法;
-c:在制做档案系统前,检查该partition是否有坏轨。

参数

  • 文件系统:指定要创建的文件系统对应的设备文件名;
  • 块数:指定文件系统的磁盘块数。

实例

/dev/hda5上建一个msdos的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来:

mkfs -V -t msdos -c /dev/hda5

mkfs -t ext3 /dev/sda6     //将sda6分区格式化为ext3格式
mkfs -t ext2 /dev/sda7     //将sda7分区格式化为ext2格式

pwconv

pwconv命令用来开启用户的投影密码。Linux系统里的用户和群组密码,分别存放在名称为passwd和group的文件中, 这两个文件位于/etc目录下。因系统运作所需,任何人都得以读取它们,造成安全上的破绽。投影密码将文件内的密码改存在/etc目录下的shadow和gshadow文件内,只允许系统管理者读取,同时把原密码置换为"x"字符,有效的强化了系统的安全性。

语法

pwconv

实例

cat /etc/passwd | grep test
test:x:3001:3001::/home/test:/bin/sh

此时可以发现密码段是x

cat /etc/shadow | grep test
test:$6$nYOEWamm$bz07nlv/.RgJufb3FAqJJeULfwybzgxmrWqbk7O4vI0KsT6N.ujrh6dDIUcAJdfjksyuyAFDPIngZeD3cgcf.0:15022:0:99999:7:::

pwunconv

pwunconv命令pwconv功能相反,用来关闭用户的投影密码。它会把密码从shadow文件内,重回存到passwd文件里。

语法

pwunconv

实例

pwunconv     //关闭影子密码
cat /etc/passwd | grep test     //发现密码已经在passwd文件中了
test:$6$nYOEWamm$bz07nlv/.RgJufb3FAqJJeULfwybzgxmrWqbk7O4vI0KsT6N.ujrh6dDIUcAJdfjksyuyAFDPIngZeD3cgcf.0:3001:3001::/home/test:/bin/sh

ls /etc/shadow     //查看影子文件,提示没有这个文件或目录
ls: cannot access /etc/shadow: No such file or directory

grpconv

grpconv命令用来开启群组的投影密码。Linux系统里的用户和群组密码,分别存放在/etc目录下的passwd和group文件中。因系统运作所需,任何人都得以读取它们,造成安全上的破绽。投影密码将文件内的密码改存在/etc目录下的shadow和gshadow文件内,只允许系统管理者读取,同时把原密码置换为"x"字符。投影密码的功能可随时开启或关闭,您只需执行grpconv指令就能开启群组投影密码。

语法

grpconv

实例

设置cdy组密码

groupmod --password 123456 cdy
cat /etc/group | grep cdy
cdy:123456:1000:     //看出密码是123456

启动影子系统

grpconv
cat /etc/group |  grep cdy
cdy:x:1000:      //看出密码段已经被x替代

cat /etc/gshadow | grep cdy
cdy:123456::      //已经移到影子文件了

注:gshadow, shadow只有root权限才可以查看。

quotaoff

quotaoff命令用于关闭Linux内核中指定文件系统的磁盘配额功能。

语法

quotaoff(选项)(参数)

选项

-a:关闭在/etc/fstab文件里,有加入quota设置的分区的空间限制;
-g:关闭群组的磁盘空间限制;
-u:关闭用户的磁盘空间限制;
-v:显示指令执行过程。

参数

文件系统:指定要关闭磁盘配额功能的文件系统。