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#设定默认等待时间
splashimage=(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 image,并设置相应的参数
# 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/sysimage
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 被局限在 1 到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/pwunconv、grpconv/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