3.GRUB与用户管理

Init进程是由linux内核引导运行的,pid=1

#runlevel:显示运行级别

初始化脚本

#chkconfig --list network

#chkconfig --level 0123456 network on

Linux的服务程序有两种:独立运行的服务程序和由xinetd管理的服务程序。

独立运行的服务程序的启动脚本都在/etc/rc.d/init.d/这个目录里

由xinetd管理的服务程序位于/etc/xinetd.d这个目录里

GRUB(Grand Unified Boot Loader)启动引导器

Linux的启动顺序:

1.载入bios的硬件信息

2.对MBR的Kernel Loader进行读取

3.由GRUB引导的Kernel就开始执行init进程并读取run-level的相关信息

4. init进程开始执行/etc/rc.d/rc.sysinit文档的内容

5.系统启动Kernel的外挂式模组(/etc/modules.conf)

6. init执行/etc/rc.d/rc.local的内容

7.就是我们最熟悉的/bin/login程序

8.登录之后开始的Shell

装载GRUB和操作系统的过程

1、装载基本的引导装载程序 

基本引导装载程序所做的唯一的事情就是装载第二引导装载程序

2、装载第二引导装载程序。

第二引导装载程序用以允许用户装载入一个特定的操作系统。在GRUB中,这步是让用户显示一个菜单或是输入命令

3、装载在一个特定分区上的操作系统,如linux内核。

一旦GRUB从它的命令行或是配置文件中接到开始操作系统的正确指令,它就寻找必要的引导文件,然后把机器的控制权移交给操作系统

GRUB的功能:

 1.GRUB提供了真正的命令行交互界面,更灵活的使用各种参数引导操作系统

 2.GRUB支持LBA(Logical Block Addressing逻辑块寻址)模式。能够从1024柱面以后的分区启动操作系统。

 3.能直接访问ext2分区,每次系统启动时GRUB访问/boot/grub/grub.conf文件,只有当/boot分区的物理位置发生变化时才需要重新安装GRUB到MBR

安装GRUB到MBR

1.建立GRUB的配置文件:/boot/grub/grub.conf并按照主机硬盘中已经安装的操作系统进行配置。

2.使用安装命令: #grub-install /dev/hda

GRUB的接口

菜单接口:在菜单接口上,按[e]键,对高亮菜单项中的命令进行编

辑。按[c]键载入一个命令行接口。 

菜单项目编辑器接口

在所有的改变都完成后,用[b]键来执行这些命令,并引导操作系统。[Esc]键来放弃这些修改,将重新入标准的菜单接口

命令行接口

命令行是GRUB最基本的接口,但它也是被授予了最大控制能力的接口。在命令行接口中,输入任何相关的GRUB命令,再回车就可以执行了。这个接口的功能有点类似于shell的功能,比如[Tab]键完成,前后文提示,输入命令时的[Ctrl]键组合,如Ctrl]-[a]移到行的开头,[Ctrl]-[e]移到行的结尾。另外,箭头键,[Home],[End],[Delete]键与bash shell中一样用法

default=0 #指定默认操作系统

timeout=10#设定默认等待时间

splashp_w_picpath=(hd0,5)/boot/grub/splash.xpm.gz #指grub界面的背景图片

# section to load linux

title linux

root (hd0,1)

kernel /vmlinuz-2.4.20-8 ro root=LABLE=/

#就是要载入的内核

initrd /boot/initrd-2.4.20-8.img#用来初始的linux p_w_picpath,并设置相应的参数

# section to load Windows 2000

title windows

rootnoverify (hd0,0)

chainloader +1

#"链式装入器"(chainloader),链式装入器从分区 (hd0,0) 的引导记录中装入 win2k 自己的引导装入器.它创建了一个从引导装入器到另一个的链。

1.grub没有显示菜单怎么办?当开机后进入grub界面但没了菜单,只剩下一个grub>提示符

grub>cat (hd0,6)/boot/grub/grub.conf (为了看参数)

grub>root (hd0,6)

grub>kernel (hd0,6)/vmlinuz-2.4.18-14 ro

root=LABEL=/

grub>initrd (hd0,6)/initrd-2.4.18-14.img

grub>boot

2.进入单用户模式.

有时不小心把root用户密码忘了,只能进入单用户模式来重新设置root密码.方法如下:

开机进入grub界面,按e进入编辑行模式.

选中 kernel/boot/vmlinuz-2.4.20-8 ro root=LABLE=/项,再次按e键,在新的界面的最后一行输入single或1,即:kernel/boot/vmlinuz-2.4.20-8 ro root=LABLE=/single(1)

GRUB丢失,怎样用安装盘修复

1.把安装盘的第一张放到光驱,然后重新启动机器,在BOIS中把系统用光驱来引导。

2.等安装界面出来后,按[F5]键,也就是linux rescue模式

然后在boot下输入linux rescue

然后就是回车一下。

sh#

操作GRUB

sh#grub

会出现这样的字符

grub>

输入

grub>root (hdX,Y)

grub>setup (hd0)

如果成功会有一个successful......这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。 setup(hd0)就是把GRUB写到硬盘的MBR上。

忘记管理员密码

Ch#chroot /mnt/sysp_w_picpath

Vim boot/grub/grub.conf

Vim etc/shadow去掉root密码

Grub配置文件丢失

Grub > root(hd0,0)

手动分区

Grub > kernel /vmlinuz-2.6.18-194.e15 ro root = /LABLE

Grub > initrd /initrd-2.6.18-194.e15.Img

Grub > boot

自动分区

Grub > kernel /vmlinuz-2.6.18-194.e15 ro root = /dev/VolGroup00/LogVol00

Grub > initrd /initrd-2.6.18-194.e15.Img

Grub > boot

GRUB的安全设置:

命令格式:

password 口令字 password mypassword

password 12345

使用MD5加密口令:

1.获得密文口令:用GRUB自带的口令

grub-md5-crypt

2.保存加密口令到配置文件

命令格式:password –md5 已生成的MD5加密口令

3.也可以使用GRUB的交互命令md5crypt生成MD5加密口令

grub>md5crypt

Password:*****

把生成的密文写到/boot/grub/grub.conf文件中。

用户管理

超级用户:root UID=0

普通用户

系统账号

这种类型的账号仅提供给 Linux 系统本身使用。在某些软件执行的时候,需要你提供一个普通用户类型的账号。为了满足这些软件而建立的账号,我们称为系统账号 (System Account)。

在 Red Hat Enterprise Linux 系统中,系统用户的 UID 被局限在 499 之间

真实用户

系统用户账号是给软件或程序使用的

真实用户账号在 Linux 系统中,被分配的 UID 范围为 500 4,294,967,295 之间。

群组账号

超级用户群组:超级用户群组的GID为 0。隶属于超级用户群组的成员,不具备系统管理的权力。

系统群组:1到499,系统本身或者软件使用

用户自定义群组:用户私有群组UPG,至于用户账号名称相同,且为用户群组。

用户账号存储于/etc/passwd文件中

USERNAME:PASSWORD:UID:GID:COMMENT:HOMEDIR:SHELL

本机群组账号存储在/etc/group

GROUPNAME:PASSWORD:GID:MEMBERS

用 id 命令查询用户账号是否存在

直接使用 echo 命令将符合 /etc/passwd 格式的vfast 账号数据附加在/etc/passwd 文件后

/etc/skel/ 就是用户主目录的模板,可直接复制为用户主目录。

添加用户帐号 useradd

修改用户帐号 usermod

删除用户帐号 userdel

useradd [-u UID [-o]] [-g GROUP] [-G GROUPS... ] [-d HOME][-s SHELL] [-c COMMENT] [-p PASSWORD] [-n][-r] [[-m] | [-M]] USERNAME

当使用 useradd 建立用户时,如果没有指定参数,useradd 就会根据/etc/login.defs 与/etc/default/useradd中的定义

usermod [-u UID] [-g GROUP] [-G GROUPS... ] [-d HOME] [-s SHELL] [-c COMMENT] [-l NEWNAME] [[-L] | [-U]] USERNAME...

usermod 与 useradd 使用的参数很多是相同的,usermod 另外还提供下列几个参数:

-l NEWNAME 修改账号的用户名

-L 锁定账号

-U 解除锁定

userdel [-r] USERNAME

userdel 命令只有一个 -r 的参数(默认是停用的)删除主目录和邮箱。

添加群组帐号 groupadd

修改群组账号 groupmod

删除群组帐号 groupdel

groupadd [-g GID] [-r] [-f] GROUPNAME

-g GID 指定群组标识符 

-r 指定添加的群组成为系统群

-f 强制执行

groupmod [-g GID] [-n NEWNAME]GROUPNAME

-g GID 修改群组标识符

-n NEWNAME 用来修改群组的名称。

groupdel GROUPNAME

密码设置

Linux 通过加密算法产生密码数据

DES:只能支持八个字符内的密码数据

MD5:其支持 255 个字符的密码

Linux 内建的 md5sum 是MD5 哈希算法的工具

passwd [-d] [-k] [-l] [-S] [-- stdin] USERNAME

-d, --delete 删除用户密码

-l, --lock root使用,锁定用户

-S, --status 用来显示密码的状况

--stdin 由标准输入读入密码的本文,再由 passwd命令加密成为密文类型

gpasswd [-r] [-R] GROUP

其中的 GROUP 就是群组名称,-r 用来删除群组的,;-R 则锁定 GROUP 的群组密码。

Shadow

把密码隐藏到不同的文件

/etc/shadow

USERNAME:PASSWORD:LAST_CHANGED:MIN_DAYS:MAX_DAYS:WARNNING:EXPIRES:DISABLED

/etc/gshadow

GROUPNAME:PASSWORD:ADMINISTRATORS:MEMBERS

权限为0400,所有者为root

功能:密码有效期限;群组管理员

启用停用shadow

Pwconv/pwunconvgrpconv/grpunconv

Authconfig

启用:在 Shell 中执行 authconfig --enableshadow

停用:在 Shell 中执行 authconfig --disableshadow

chage -l USER   查看账号与密码有效期限

chage [-m MINDAYS] 设置密码修改的最小天数

[-M MAXDAYS]两次修改密码相距的最大天数 

[-d LASTDAY] 指定密码最后修改的日期

[-IINACTIVE]设置密码过期后,锁定账号的天数

[-E EXPIREDATE] 设置账25143 .的过期日期

[-W WARNDAYS]设置密码过期前,开始警告的天数 USERS

gpasswd -A USER…GROUP 使用gpasswd 命令来指派某一个群组的群组管理员

加入删除组成员

gpasswd -a USER GROUP

gpasswd -d USER GROUP

设置文件不可改变位

Chattr +i abc

Lsattr abc

Chattr -i abc