RPM命令

1、rpm包名称

*.i386.rpm:适用于所有x86平台
*.noarch.rpm:没有硬件上的限制,一般就是文本文件

2、rpm安装目录

/etc
/usr/bin
/usr/lib
/usr/share/doc
/usr/share/man
/var/lib/rpm                                      #为系统安装的rpm包信息记录

3、rpm命令

安装

rpm -i                                       #install
其他参数

rpm -i *.rpm –force         #强制安装
rpm -i *.rpm –test           #只测试能否安装到电脑里

升级

rpm -U *.rpm                           #有该软件则升级,没有该软件则安装
rpm -F *.rpm                           #有该软件则升级,没有该软件则不安装

卸载

rpm -e                                       #erase

重建数据库

rpm –rebuilddb                         #重建后的信息都写在/var/lib/rpm里面

查询(很重要)                                      #查询都是在/var/lib/rpm里面查询的

rpm -q  openldap                         #query              查询有没有安装过这个rpm软件
rpm -qa                                        #all                  列出所有系统中安装的rpm软件             
rpm -qi openldap                          #information   查询rpm软件的信息
rpm -ql openldap(重要)                 #list                列出这个rpm软件安装在哪些地方,方便配置、删除等
rpm -qc openldap                         #configure      只列出rpm软件配置文件所在位置
rpm -qd openldap                         #document       查看rpm软件的帮助文档
rpm -qR openldap                         #required       列出rpm软件相关的依赖文件,如函数库等
rpm -qf  /etc/openldap/ldap.conf   #file                列出该文件属于哪个rpm软件里面的
rpm -qp[licdf]  wmx.i686.rpm         #package       查看rpm安装包的相关信息

rpm验证

rpm -V openldap                            #verify            验证该软件里的文件有没有被改动过
S.5….T  c /etc/openldap/ldap.conf

SM5DLUGT,没有改动过的话用.表示

S:size        容量是否改变
M:mode     文件类型或权限有没有被改变
5:md5     
D:device     设备名称有没有被改变过
L:link           链接文件的属性有没有被改变
U:user        u有没有被改变
G:group      g有没有被改变
T:mtime      建立时间有没有被改变

c:配置文件
d:文档
l:授权文件
r:自述文件

rpm数字签名

SRPM

srpm目录

/usr/src/redhat/SPEC                 #存放配置文件
/usr/src/redhat/SOURCE            #存放源文件
/usr/src/redhat/BUILD                #存放编译时的暂存文件,编译时就是再这个目录下进行的
/usr/src/redhat/RPMS                #编译好后,会放到这个文件夹中

相关命令

cd /usr/src/redhat/SPEC
rpmbulid -bb *.spec                    #编译成rpm文件
rpmbulid -ba *.spec                    #打包成srpm文件

扩展:dpkg

dpkg数据库:/var/lib/dpkg
安装:dpkg -i
卸载:dpkg -r
查询:
dpkg -s             相当于rpm -qi
dpkg -L             相当于rpm -ql
dpkg -l              相当于rpm -qa

函数库:

静态函数库:*.a
动态函数库:*.so

存放位置:

/lib
/usr/lib
/lib/modules/`uname -r` #这里是核心函数库

相关操作

1、ld.so.conf

/etc/ld.so.cache
/etc/ld.so.conf             #就写着要包含/etc/ld.so.conf.d下的所有.conf文件
/etc/ld.so.conf.d          #写着要加载的动态函数库目录,只能加载整个目录

2、ldconfig

ldconfig                       #将/etc/ld.so.conf.d里面包含的函数库目录全部读入内存中

ldconfig -p                   #查看当前读入到内存中的函数库

3、ldd

ldd /usr/bin/make        #查看该命令所包含的动态函数库
ldd -v /usr/bin/make    #详细查看该命令所包含的动态函数库
ldd /lib/libc.so.6           #也可以查看与某个函数库相关的函数库

4、安装

缺什么就装什么

tarball编译:C语言源码:*.c ———>目标文件*.o————->执行文件

1、configure  建立makefile文件

参数:–help

 –prefix
#查看 configure参数

2、make clean

清除*.o文件
由于make一次后,编译过的*.o在下次make时不会再编译,所以先清除好重新编译

3、make

gcc语法

gcc -c hello.c                   #编译成目标文件:hello.o
gcc -o hello  hello.o         #编译成执行文件:hello
其他参数:
gcc -O -c hello.c              #优化编译
gcc -Wall -o hello.c          #产生相信编译过程信息
gcc abc.c -lm -L/usr/lib -I/usr/include

#-l:加入某个函数库
#m:libm.so:加入这个函数库
#-L:函数库的地址
#-I:源码位置

makefile语法规则

make参数

CFLAGS=”-Wall” make    #同gcc -Wall

4、make install

其实就是把编译好的文件放到相关目录下

5、在/etc/man.config中添加man文件地址

6、升级

patch -p 0 < patch文件                #p 0 表示去掉几个/,如/home/a/b/c   p4 就是c
编译安装

7、软件的删除

将目录下的相关文件删除即可,看一下install到哪里就到哪里删除

其他命令

md5sum :算md5码

硬盘分区表结构:

主引导记录MBR

bootlader:446B
DPT:64B
magic number:2B ______ 以上共512B

stage1.5:32K

分区1
分区2
分区3
分区4

GRUB

/boot/grub里面包含

引导程序:stage1、stage2

启动设备信息:device.map

文件系统:iso9660、ufs、xfs、fat、jfs、e2fs等
启动选项:menu.lst 。menu.lst是指向grub.conf的
启动选项背景:splash.xpm.gz

grub.conf

cat grub.conf | egrep -v ‘^#|^$’
default=0                                                               #按菜单第一行启动:就是2.6…FC4smp
timeout=5                                                              #等待时间:5秒
splashimage=(hd0,0)/boot/grub/splash.xpm.gz    #背景图片
hiddenmenu                                                          #隐藏菜单
title Fedora Core (2.6.11-1.1369_FC4smp)
        root (hd0,0)                                                  
        kernel /boot/vmlinuz-2.6.11-1.1369_FC4smp ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.11-1.1369_FC4smp.img
title Fedora Core-up (2.6.11-1.1369_FC4)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.11-1.1369_FC4.img

说明:
root (hd0,0)                                                 

#这里的root表示核心在哪个位置。也就是/boot在哪个位置

kernel /boot/vmlinuz-2.6.11-1.1369_FC4smp ro root=LABEL=/ rhgb quiet

#这里的root表示/分区在哪个位置。可以用root=/dev/sda1代替

其他选项;

unhide (hd0,1)            #显示/dev/hda2
hide (hd0,4)                #隐藏/dev/hda5
rootnoverify (hd0,0)    #不检查/dev/hda1
chainloader +1            #表示打开/dev/hda2的第一个扇区

makeactive                  #设置为活动分区

grub shell

grub 进入grub shell
help查看所有命令
root (hd0,0):                 查找含有/boot的分区
find /boot/grub/stage1**+[tab]** :查找是否存在stage1文件
setup (hd0) :                 安装到MBR中
setup (hd0,0):               安装到第一个分区的第一个扇区中

模块:
模块就是一些能实现某些功能的目标文件,也就是.o文件。
模块只供内核使用。
模块不被连接成可执行文件是因为他的连接对象是正在运行的内核
模块存放位置/lib/modules
模块有很多功能,包括硬件驱动模块、加密模块、压缩算法模块、防火墙模块等

arch         #有关CPU等项目
crypto      #加密相关
drivers     #有关驱动,还有防火墙等
fs             #有关文件系统
lib            #zlib等一些函数库
net           #网络协议等
sound      #声卡驱动,音效等

模块的操作命令:lsmod、modinfo、insmod、rmmod、modprobe

lsmod:

nvidia              11259462  24
模块                占用空间   有24个其他模块用到nvidia

modinfo nvidia

查看模块信息

modprobe

找出所有跟nvidia有关的模块
modprobe -lt video | grep nvidia     

kernel/drivers/video/backlight/mbp_nvidia_bl.ko
kernel/drivers/video/nvidia/nvidiafb.ko

modprobe通过调用modules.dep文件来解决模块依赖性问题
查看模块的依赖性。
grep nvidia /lib/modules/2.6.32-44-generic/modules.dep

kernel/drivers/video/backlight/mbp_nvidia_bl.ko:
kernel/drivers/video/nvidia/nvidiafb.ko: kernel/drivers/video/fb_ddc.ko
kernel/drivers/i2c/algos/i2c-algo-bit.ko kernel/drivers/video/vgastate.ko
updates/dkms/nvidia.ko:
#:表示后面的模块要先加载,也就是依赖性
我们可以看出加载nvidiafb.ko之前要先加载:

kernel/drivers/video/fb_ddc.ko
kernel/drivers/i2c/algos/i2c-algo-bit.ko
kernel/drivers/video/vgastate.ko

模块参数设置:modprobe、/etc/modules.conf

/etc/modules.conf

options cx88_alsa index=-2    #给cx88_alsa模块一个参数:index=-2
alias eth0 pcnet32                  #pcnet32一个通用的名字:eth0

如 modprobe cx88_alsa index=-3 ,则modules.conf不起作用
modprobe设置的参数具有优先权
更改/etc/modules.conf文件后,需要使用modules-update来更新。

模块依赖性文件:modules.dep

modules.dep文件格式

kernel/drivers/video/nvidia/nvidiafb.ko: kernel/drivers/video/fb_ddc.ko  …

modules.dep建立命令:depmod

depmod -a:更新模块依赖性文件modules.dep
depmod -A:扫描出新模块才更新
depmod -n:扫描后不写入modules.dep,而是输出到屏幕上
depmod -e:显示当前加载的模块中已不能用的

我们编译好模块后,放入/lib/modules/下面,然后depmod -a,新模块就记录到modules.dep下面了

然后,加载的话:“modprobe 模块”即可。自动加载的话写入/etc/modprobe.conf
核心需要哪些模块的话也会主动去加载模块的。

内核

内核是linux中唯一能访问硬件资源的软件
由于内核用不到很多功能,所以就做成模块,用的时候再调用。

启动流程补充:

电脑开机
|
CPU,北桥运行
|
BIOS在flash memory运行
|
BIOS检测硬件
|
BIOS读取CMOS中的用户设定
|
BIOS信息整合成SMBIOS写入内存中
|
BIOS自解压到内存中
|
BIOS启动POST程序

初始化各种主板芯片组

初始化键盘控制器8042.

初始化中断向量,中断服务例程.
初始化VGA BIOS控制器
显示BIOS的版本和公司名称
扫描软驱和各种介质容量
读取CMOS的启动顺序配置,并检测启动装置是否正常

|
BIOS将所有检测到的临时设备信息写入SMBIOS___________^__以上只能通过诊断卡查看错误信息。
|
BIOS调用INT 19H的2号功能来读出硬盘MBR扇区的内容,将其读入到内存0000:7C00h,并跳转至此处执行
|
BIOS启动MBR上面的引导程序stage1
|
引导程序加载stage1.5
|
引导程序通过stage1.5识别文件系统,并加载文件系统中的stage2
|
stage2加载grub.conf配置文件
|
通过配置文件加载kernel和initrd

资料来源:

linux操作系统之奥秘

http://zhumeng8337797.blog.163.com/blog/static/1007689142011828012299/
http://blog.csdn.net/kendyhj9999/article/details/7293925

启动流程

1、开机后,BIOS读取CMOS的信息,然后BIOS里的自检程序对硬件进行自检,自检确定可启动的设备后,
      通过刚才从CMOS里获取的第一个启动设备的代号,去读第一个启动设备的MBR
2、MBR里面存有引导程序,引导程序里面记录了linux核心(vmlinuz)和initrd.img的存放地址,
      引导程序通过这个地址来加载linux核心
3、linux核心解压缩到内存中,并通过initrd.img来建立虚拟盘,虚拟盘加载驱动,并读取BIOS的硬件信息交给核心,
      linux核心检测所有硬件并从虚拟盘中加载驱动
4、linux核心加载完驱动后删除虚拟盘,并执行第一个程序/sbin/init
5、init:

程序:/sbin/init
配置:/etc/inittab

cat /etc/inittab | grep -v ^# | grep -v ^$
id:5:initdefault:                            #默认是按5来启动,initdefault:表示默认运行等级
si::sysinit:/etc/rc.d/rc.sysinit        #启动服务前先根据/etc/rc.d/rc.sysinit进行检测和设置
l0:0:wait:/etc/rc.d/rc 0                 #sysinit:表示系统初始化操作项目
l1:1:wait:/etc/rc.d/rc 1                 #wait:后面的接的项目必须执行完才能继续
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5                                 #就是按这个启动相关的服务
l6:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown -t3 -r now       #按crtl+alt+del重启
pf::powerfail:/sbin/shutdown -f -h +2 “Power Failure; System Shutting Down”
#接UPS后的设置
pr:12345:powerokwait:/sbin/shutdown -c “Power Restored; Shutdown Cancelled”
#接UPS后的设置
1:2345:respawn:/sbin/mingetty tty1            #开启6个tty终端,respawn表示不能结束终端,
2:2345:respawn:/sbin/mingetty tty2            #结束后会自动开起来
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:once:/etc/X11/prefdm -nodaemon         #按5启动的话开启X11

5.1、/etc/rc.d/rc.sysinit                                                  #rc.sysinit详解

首先/etc下面也有很多rc目录,但都是链接文件,链接到/etc/rc.d目录里面

ls -l /etc | grep rc | awk ‘{print $9 $10 $11}’ | grep -v ^$
init.d->rc.d/init.d
rc->rc.d/rc
rc0.d->rc.d/rc0.d
rc1.d->rc.d/rc1.d
rc2.d->rc.d/rc2.d
rc3.d->rc.d/rc3.d
rc4.d->rc.d/rc4.d
rc5.d->rc.d/rc5.d
rc6.d->rc.d/rc6.d
rc.d
rc.local->rc.d/rc.local
rc.sysinit->rc.d/rc.sysinit
所以实质上,所有的rc配置文件都放在/etc/rc.d目录下

这个配置文件有600多行,服务相关配置文件全部存放在/etc/sysconfig里,任务有:

设置网络
给HOSTNAME赋值
加载/proc
加载/usb驱动
加载/sys
运行/etc/init.d/functions    #functions文件详解
检测是否开启SElinux
屏幕默认字体设置
屏幕上输出:welcome to 什么什么
设置日志级别

*给cmdline赋值
开始接口设备检测:

IDE
SCSI
network
sound
其他

加载用户自定义模块:/etc/sysconfig/modules/*.modules
加载模块:/etc/rc.modules,这个模块fedora4里面没找到
挂载/dev/pts
配置核心设置值/etc/sysctl.conf
设置系统时间
设置主机名
设置ACPI
确定是否进行fsck
设置RAID
设置LVM2
卸载initrd
进行quota转换
以读写方式挂载根目录:/
*清除selinux
清除/etc/mtab
挂载信息重新写入/etc/mtab

/
/proc
/sys
/dev/pts
/proc/bus/usb

挂载所有其他文件系统,并开启quota
??
??
启动随机数
对系统进行重新设置
清除临时文件
将启动信息写入到/var/log/dmesg
告知已离开rc.sysinit

5.2、/etc/rc.d/rc5.d

该目录下的文件全部都是链接文件,全部链接到/etc/init.d下面,而/etc/init.d是链接到/etc/rc.d/init.d的
所以,该目录下所有文件都是链接到/etc/rc.d/init.d。该目录就是启动相关服务的作用。
/etc/init.d里面是脚本,而/etc/sysconfig/里面是这些脚本的设置文件
#服务详解
S:表示开机时启动,数字表示启动顺序

ls | sort
S03vmware-tools
S05kudzu               #硬件检测,硬件不经常更新建议关闭
S06cpuspeed        #动态调节cpu速度来节能
S08iptables
S09isdn                 #isdn用户用的
S09pcmcia            #支持笔记本接口
S10network
S12syslog
S13portmap
S14nfslock
S15mdmonitor        #监测RAID和lvm的信息
S18auditd               #kernel的审计
S18rpcidmapd        #用于nfs
S19rpcgssd            #用于nfs
S25bluetooth
S25netfs
S26apmd
S28autofs
S30nscd                 #为nis、ldap提供更快的验证
S33nifd
S34mDNSResponder
S44acpid
S55cups
S55sshd
S80sendmail
S85gpm                  #支持鼠标
S87iiim                    #中文输入法
S90crond
S90xfs
S95anacron
S95atd
S97messagebus       #IPC进程间通信
S97rhnsd                  #通知官方的安全信息以及为系统打补丁
S98cups-config-daemon
S98haldaemon
S99local                    #用户自定义开机启动的程序

K表示关机时关闭的服务

K01yum
K02NetworkManager
K02NetworkManagerDispatcher
K05saslauthd                     #sasl认证
K10psacct                          #监测进程
K20nfs
K24irda
K30spamassassin
K35vncserver
K35winbind
K50netdump
K69rpcsvcgssd
K73ypbind
K74ntpd
K85mdmpd
K89named
K89netplugd                       #检测网络接口
K89rdisc
K94diskdump

另外应该还会启动xinetd

里面包含验证等服务:

cvs
eklogin
gssftp
klogin
krb5-telnet
kshell
rsync

5.3、/etc/X11/prefdm            #详解

设置是否自动登录
选择界面

6、开启/bin/login

7、登录后由shell控制主机

系统本身的服务,由ps、top等查看、管理;提供外部的网络服务,由netstat等查看、管理。
二十一章是网络服务,而下面的都是系统服务。

PID:

pid是根据用户的相关uid\gid计算出来的,用户的权限就是pid决定的
ppid:父进程

作业管理:

jobs:          查看后台作业数
&:              将任务放到后台执行
fg 作业号 : 将任务从后台拿到前台来执行
ctrl+z:        将任务放到后台暂停
bg 作业号: 将后台暂停的作业执行起来

kill 删除作业

kill -1 作业号:重启作业
kill -9 作业号 :强制删除
kill -15 作业号:正常终止

进程管理

查看:ps 、top 、pstree

ps -l:查看pid详细信息

鸟哥基础第十七章 - leaf - ------坚持雅操------

S是状态:R:run 正在运行  S:sleep 睡眠状态
ADDR:    -:表示正在运行
WCHAN: -:表示正在运行

top -d 2 -p 4121

鸟哥基础第十七章 - leaf - ------坚持雅操------

最上面是总的信息,最下面一行是跟踪的进程

top -d   表示多少时间更新一次
top -p   专门查看某个进程
top -n   设置更新几次
top -b   就是把top的内容输出,保存到文件

pstree -Aup

列出当前进程树,并显示PID和所属的账户

删除:kill  

同作业管理

执行顺序:nice、renice

调整优先级用

优先级是个不断变化的值:最新优先级=原优先级+nice值
root可用范围:负20~正19

进程-文件相互查找:fuser、lsof、pidof

fuser 通过目录查正在使用该目录的进程号

fuser -k :删除进程号

lsof:通过进程找出在用的文件

lsof -u :查找某个用户名所打开的文件
lsof +d :查处某个目录下所有打开的文件

pidof:通过进程找出pid

系统资源观察

free、uname、uptime、dmesg、sar、netstat、/proc/

uname :查看系统核心等信息

-a:linux版本、CPU类型等信息
-r:linux

dmesg:查看开机启动的信息

sar:主要是查看cpu的状态

netstat:网络状况

netstat -a 所有tcp/udp连接状况、套接字状况等
netstat -t tcp
netstat -u udp
netstat -p 列出pid号
netstat -n 已端口号来显示
netstat -l  列出正在监听的服务

netstat -tulnp 查看tcp/udp的连接信息

/proc目录:前面查看系统信息多是在这个目录里面取出来的。

at

命令:               /usr/bin/at

服务atd:          /etc/init.d/atd
使用限制:        /etc/at.deny          /etc/at.allow是不存在的可以新建一个,
任务存放目录: /var/spool/at         ug都是daemon,是由守护进程inet负责处理的
相关命令:

at

at 9:10

/bin/sync

ctrl+d

#这个命令,如果时间已经过了,则下一天再运行

at 9:10 2012-09-25

/bin/sync
ctrl+d

#这个命令,强制在这个时间执行,如果设置的时间已经过了,则任务就没了
如现在9:30,如果设置9:00的话,用atq是找不到这个任务的

atq                              查看有多少任务
atrm 任务号                删除任务

crontab

命令:                /usr/bin/crontab

服务crond:      /etc/init.d/crond
使用限制:        /etc/cron.deny
任务存放目录: /var/spool/cron/             用户的任务

/etc/crontab                  系统的任务,由于不止一个,所以把任务放在目录里,直接执行目录
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

任务执行记录: /var/log/cron 下
crontab格式:

[root@localhost cron]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
#分 时 日 月 周
#run-parts:执行目录下所有脚本的意思

相关命令

crontab -e   编辑命令,一个命令一行(增删多可以)
crontab -l    查看命令
crontab -r   删除所有任务 就相当于把/var/spool/cron/账户 这个文件删除

补充:20130923

用户的cron配置:保存在/var/spool/cron
系统的cron配置:保存在/etc/crontab
run-parts:后接文件或文件夹

列子:
touch ~/test.sh
chmod 755 test.sh
vi test.sh

#!/bin/bash
/bin/touch  ~/`date +%Y%m%d%H%M`

crontab -e

*/1 * * * *  /home/leaf/test.sh

sudo /etc/init.d/crond restart
效果:

鸟哥基础第十六章 - leaf - ------坚持雅操------

首先是分区

su
fdisk -l             查看当前所有分区

鸟哥基础第十五章 - leaf - ------坚持雅操------

 由于原先没分扩展分区,所以成1、2、3了

fdisk /dev/sda
m     查看分区命令
p      和fdisk -l相同
n      新建分区

提示建主分区还是扩展分区,我选e,扩展分区,并选了全部剩余容量

n      再新建分区,选了全部剩余容量
p      再查看的时候就有新分区了

鸟哥基础第十五章 - leaf - ------坚持雅操------

 w      保存

格式化分区

mkfs.ext3 -L “quota” /dev/sda5

挂载和开机自动挂载

mkdir -m 777 /media/disk

mount -t ext3 /dev/sda5 /media/disk

cat /etc/mtab能看到记录了:/dev/sda5 /media/disk ext3 rw 0 0

自动挂载就是把这个记录写在/etc/fstab里面
LABEL=/quota            /media/disk             ext3    defaults,usrquota,grpquota 1 2

然后用remount -a测试一下,以防止写错。

如果没测试就重启,万一写错的话就会进入单用户模式,用以下命令重新加载了再修改

mount -n -o remount,rw /

重启后可用

鸟哥基础第十五章 - leaf - ------坚持雅操------

 

配额相关操作

quotacheck -avug   扫描后会建2个文件:aquota.group  aquota.user

针对分区进行磁盘配额情况的扫描

-a 扫描有配额参数的文件系统
-u 针对用户扫描的情况,建aquota.usr
-g 针对用户组扫描的情况,建aquota.group
-v  查看
-m 强制扫描

鸟哥基础第十五章 - leaf - ------坚持雅操------

 

quotaon -avug

启动配额,关闭是quotaoff -a

鸟哥基础第十五章 - leaf - ------坚持雅操------

 

建账户

groupadd qgroup
useradd -m -g qgroup quser1
useradd -m -g qgroup quser2
passwd quser1
passwd quser2

设置用户配额

edquota -u quser1                     是用vi操作的,设置配额
edquota -p quser1 quser2         -p:copy   复制权限的意思
edquota -t                                  设置宽限时间
edquota -g qgroup                      设置用户组配额

查看配额情况

quota -vu  quser1 quser2
quota -vg  qgroup
repquota -av
quota 和 repquota 都是查看命令,效果差不多

自动启动设置

配额在开机时会随系统启动,所以不用设置
但是如何设置可以看一下:

vi /etc/rc.d/rc.local
/sbin/quotaon -avug

效果

80M-100M之间

鸟哥基础第十五章 - leaf - ------坚持雅操------

超出100M

鸟哥基础第十五章 - leaf - ------坚持雅操------

 

账户的配置文件

/etc/passwd

cat /etc/passwd | grep ^root

root:        x:           0:       0:         root:             /root:            /bin/bash
用户名    已加密   UID     GID     账户介绍      账户家目录    该账户用的shell

x:表示已加密,并且存放在/etc/shadow里面
UID、GID的ID号设置:/etc/login.defs
/root:是否建家目录:/etc/login.defs

  家目录所在位置:/etc/default/useradd   对root无效

/etc/shadow

cat /etc/shadow | grep ^root
root:$1$tl3LqaXl$7CJiLfD9fbWtPjDluR1TT0:15594:0:99999:7:7:16594:

root:      $1……T0:    15594:            0:            99999:                   7:                            7:                 16594:                       空
用户名      密码       最后一次     密码不可     密码必须要      密码到期警告           密码的失效时间     账户的失效日期         保留字段
更改密码      更改的天     更改的天数     时间,到期前7天        到期后再过7天      这个是账户的失效
的时间           数                                       提示                         才失效                  时间

密码的相关限制:/etc/login.defs

/etc/group

cat /etc/group | grep ^root

root:x:0:root

第4个字段的root表示,那个用户属于root用户组
第4个字段可以添加多个账户,但是只享受用户组的权限而不是用户的权限  root,test
查看、更改、离开有效用户组的方法

查看:groups
更改:newgrp  test
离开有效用户组:exit

切换用户组的条件:

用户组必须有密码
root必须在这个用户组里面

/etc/default/useradd

# useradd defaults file
GROUP=100                    #默认的用户组
HOME=/home                   #家目录默认存放位置
INACTIVE=-1                    #密码失效时间
EXPIRE=                           #账户的失效时间
SHELL=/bin/bash              #默认的shell
SKEL=/etc/skel                 #给新账户预先设置的内容

/etc/login.defs

cat /etc/login.defs | grep -v ^# | grep -v ^$
MAIL_DIR        /var/spool/mail              #邮箱默认存放路径
PASS_MAX_DAYS   99999                       #密码必须更改的天数
PASS_MIN_DAYS   0                                #密码不可更改的天数
PASS_MIN_LEN    5                                 #密码最小长度
PASS_WARN_AGE   7                               #密码快到期之前7天警告
UID_MIN                   500
UID_MAX                 60000
GID_MIN                   500
GID_MAX                 60000
CREATE_HOME     yes                             #默认建家目录

/etc/skel/*

skel是目录,目录下放的所有文件,都会放到新用户的家目录里面

其他

/var/log/messages:所有操作记录
/var/log/secure:      权限的操作记录

账户操作的相关命令

useradd:

useradd -m name     建账户时建家目录
useradd -M name     建账户时不建家目录
useradd -d /tmp/home/name  name     建账户时指定家目录

usermod:

usermod -L name     冻结账户
usermod -U name     解锁账户
usermod -d /tmp/home/name -m name    新建家目录

passwd:

passwd -l name         冻结账户
passwd -u name        解锁账户
passwd -

userdel:

userdel -r name     账户连同该账户的家目录一起删除

pwck:

检查/etc/passwd /etc/shadow有没有语法错误

chpasswd:

echo “name:password” | chpasswd -m 
以前面的格式读入,并以md5码加密明文密码,并存入/etc/shadow中

chage:

修改账户密码的时效

groupadd、groupmod、 groupdel、gpasswd、groups、newgrp
id:

id name :查看uid、gid等信息

su、sudo:

su:要输入root密码
sudo:输入本账户密码即可

在/etc/group里面加入账户,这个账户只有相关用户组的权限
而在/etc/sudoers里面加入账户后,能获取相应的权限,如能运行/sbin里面的命令等

/etc/sudoers

# User privilege specification
root    ALL=(ALL) ALL              #拥有所有的权限

# Uncomment to allow people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL      #用户组拥有所有的权限 

#%wheel 表示用户组

# Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL    #不用输入密码直接拥有所有的权限
# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now

用户对话等命令

mesg、wall、talk、wrtie、mail

pam模块

pam模块都存放在/lib/security目录中

鸟哥基础第十四章 - leaf - ------坚持雅操------

 
pam配置都存放在/etc/pam.d目录中

鸟哥基础第十四章 - leaf - ------坚持雅操------

 
pam模块的相关说明都存放在/usr/share/doc/pam*的五个目录中

鸟哥基础第十四章 - leaf - ------坚持雅操------

 
pam的验证类别和验证步骤过后的操作

验证类别:

auth:          用于用户密码验证
account:    用于用户使用权限的验证
session:    主要是记录相关操作

password:主要是提供修改密码的验证

验证后的操作:

required:验证成不成功,后面的模块照样运行
requisite:验证不成功,   后面的模块就不再运行
sufficient:验证成功,      后面的模块就不再运行
optional:主要是记录信息用

/etc/pam.d/login的配置

鸟哥基础第十四章 - leaf - ------坚持雅操------

 
pam_securetty.so:用于预防不安全的登录

该模块会读取:/etc/securetty 

里面设置的终端都是安全的,不在里面的都算不安全的
里面设置的终端能用root登录,里面没有的终端则不能用root登录

pam_nologin.so:也是控制用户的登录,但对root没有效果

其他pam相关的设置文件放在/etc/security/目录下

转自:http://baike.baidu.com/view/1300613.htm
如果我们根本不想用它的话,打开注册表编辑器,
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion \AeDebug],然后将“AUTO”键值设置为0。
 接着进入到系统的“DrWatson文件夹”中(该文件夹位于“Documents and Settings/All Users/Shared Documents中),
将其中的User.dmp、Drwtsn32.log删除掉就可以了。