第一章、linux的介绍和安装
1.1 linux操作系统介绍
linux的创始人Linus torvalds。 linux与GNU和minix linux与windows linux与unix(POSIX标准) linux的版本号 linux的优点
1.2 linux操作系统的安装
1.2.1 linux的常见发行版本
redhat:advanced standard 5 ; Enterprise standard 5 ;workstation standard fedora: fedora 10 Ubuntu:ubuntu 8.10 OpenSUSE:opensuse 11.0 redflag:redflag 7 asianux: asianux 3.0
1.2.2 linux的安装过程
1、两种安装模式,以及读取信息文件
2、在时间选项中强调UTC时间和GMT时间
3、root等同administrator
4、定制安装包组,以及简述包之间的依赖关系
5、安装完成之后的gnome和KDE界面
1.3 linux操作系统的简单应用
1.3.1 linux的文本模式介绍
[ [email protected] ~ ]
第一列root代表当前用户第二列localhost代表主机名第三列~代表当前所在的目录 ~家目录home目录
linux的命令可以补全 可以不全目录和文件名,如果不能补全双击tab键可以显示出要选择的命令
1.3.2 linux的登陆与登出
login 登入系统 logout 登出系统 exit 注销当前用户 clear 清屏命令
1.3.3 linux的关机
shutdown 关机命令 shutdown now 立即进入维护模式 halt
直接关机 shutdown -h now 立即关机 shutdown -r now 立即重新启动计算机 shutdown -h 20:00& 20:00 关闭计算机 shutdown -r 20:00& 20:00 重新启动计算机
shutdown -k 3 warning:system will shutdown! 只是发送消息给所以用户3分钟后进入维护模式 shutdown +3 "system will shutdown after 3 minutes!" 发送消息给所以用户3分钟后进入系统维
护模式
1.3.4 linux的Init进程
Init是Linux操作系统中不可缺少的程序之一。init进程是Linux内核引导运行的,是系统中的第一
个进程,其进程号(PID)永远为1。
#0 停机(千万不能把initdefault 设置为0)
#1 单用户模式
#2 多用户,没有 NFS(和级别3相似,会停止部分服务)
#3 完全多用户模式
#4 没有用到
#5 x11(Xwindow)
#6 重新启动(千万不要把initdefault 设置为6)
1.3.5 查看linux系统信息 hostname
显示主机名 hostname
eduask 修改主机名为eduask uname 显示系统及版本信息 -a 显示系统及版本的所有信息
-s 显示内核名称
-n 显示网络节点名称(完整的计算机名称)
-r 显示内核发行版本
-v 显示内核版本信息
-m 显示计算机类型
-o 显示操作系统的类型
--version 显示系统发行版本信息
--help 系统命令的帮助信息和参数含义
1.3.6 linux下查看用户信息
whoami 显示当前用户 who 当前系统所登陆的用户,以及所登录的控制台 w 当前系统所登陆的用户,以及所登录的控制台的详细信息
第二章、linux的常用命令
2.1.1改变目录 cd
目录的表达方法 /根目录
.当前目录
.. 上一级目录 ~家目录
#cd / 进入到系统根目录
#cd . 进入当前目录
#cd .. 进入当前目录的父目录,返回上层目录
#cd /tmp 进入指定目录/tmp
#cd ~ 进入当前用户的家目录
#cd 进入当前用户的家目录 #cd - 回到刚才所在的目录
2.1.2 显示当前所在目录
pwd pwd 显示当前所在目录的路径
2.1.3 显示文件或目录的属性 ls (dir)
#dir 显示当前目录的内容(无颜色)
#ls 显示当前目录的内容(有颜色)
#ls /tmp 显示指定目录/tmp的内容
#ls -l 列出文件和文件夹的基本属性和详细信息
#ll 列出文件和文件夹的基本属性和详细信息
#ls -a 列出当前目录的全部内容,包括隐藏文件(在文件和文件夹前面加“.”隐藏)
#ls -l -a 列出当前目录的全部文件和文件夹的基本属性和详细信息
#ls -la 列出当前目录的全部文件和文件夹的基本属性和详细信息
#ll -a 列出当前目录的全部文件和文件夹的基本属性和详细信息
#ls -A 列出当前目录的全部内容,包括隐藏文件,不显示“.”和“..”
#ls --help 列出ls命令的帮助内容
#ls a2* 列出以a2开头的文件和文件夹
#ls -l a2* 列出以a2开头的文件和文件夹的基本属性和详细信息
文件和文件夹(蓝色代表目录, 白色代表文件,黄色代表设备文件,红色代表压缩文件,绿色代表可执行文件,浅蓝色代表链接文件)linux是以属性来控制文件是否能执行。
2.1.4 创建目录 mkdir
mkdir dir1 在当前目录下创建dir子目录 mkdir /tmp/dir2 在指定目录/tmp下创建dir2子目录 mkdir -p dir3/dir4 在当前目录下创建2级目录dir3和其子目录dir4 mkdir -p /dir5/dir6 在根目录下创建2级目录dir5和其子目录dir6 mkdir dir7 dir8 dir9 在当前目录下创建3个目录dir7 dir8 dir9,以空格隔开
2.1.5 创建空文本文件 touch
#touch file1 在当前目录下创建file1文件
#touch /tmp/file2 在指定目录/tmp下创建file2文件
2.1.6 复制文件命令 cp
#cp file2 /tmp 复制file2文件到/tmp目录下
#cp /tmp/file2 /home 复制/tmp/file2文件到/home目录下
#cp /home/file2 /tmp/file3 复制/home/file2到/tmp目录下并改名为file3
#cp -p /tmp/file3 /home 复制/tmp/file3到/home目录下并复制文件属性 #cp -r /dir5 /tmp 复制/dir5目录到/tmp下
2.1.7 移动文件或目录命令 mv
#mv file4 /tmp 移动file4文件到/tmp目录下
#mv /home/file3 /tmp 移动/home/file3文件到/tmp目录下
#mv /home/file3 /tmp/file5 移动/home/file3文件到/tmp目录下并改名为file5
#mv file3 file4 将file3改名为file4
#mv dir10 /tmp 移动目录到/tmp下
#mv dir10 dir11 讲dir10目录改名为dir11
2.1.8 删除文件命令 rm
#rm file1 删除文件file1
#rm -f file1 不用确认直接删除file1
#rm -f file1 file2 file3 不用确认同时删除多个文件
#rm /tmp/file1 删除指定目录/tmp下的文件file1
#rm fi* 删除以fi开头的文件
#rmdir 删除空目录
#rm -r dir 递归的方式删除非空目录dir
#rm -rf dir 不用确认直接删除非空目录dir
2.1.9 查看文件内容命令 cat
#cat /etc/passwd 查看/etc/passwd文件
#cat /etc/passwd |more 分屏查看文件内容
#cat /etc/passwd |less 分屏查看文件内容,可以上下翻页,“q”退出
2.1.10 查找文件命令 find
#find pass* 在当前目录下查找以pass开头的文件
#find /etc/pass* 在/etc目录中查找以pass开头的文件
#find /etc/pass* -print 在/etc目录中查找以pass开头的文件,并显示出来
2.1.11 在文件内容中查找关键字 grep
#grep “rpm” /etc/passwd 在/etc/passwd文件中查找关键字rpm
2.2 vi文本编辑器
2.2.1 vi的两种模式
1、命令模式 vi的默认进入状态(不可以输入字符,但可以对字符进行操作,复制,移动、删除等操作) 2、输入模式 输入字符状态(只可以输入和使用del和退格backspace键删除文字)
2.2.2 vi的启动和退出
#vi file 编辑file文件
#vi /tmp/file1 编辑指定目录/tem下的file1文件
:w 保存修改
:q 退出vi
:wq 保存并退出
:q! 强行退出vi,不保存修改
2.2.3 vi命令模式下的操作
:set nu 设置行号
:set nonu 取消设置行号
删除字符
x键或del键
7x 删掉光标后面的7个字符 dw 删除一个词(剪切)
dd 删除行(剪切)
4dd 删除4行(剪切)
复制操作
yw 复制一个词
yy 复制光标所在的行
4yy 复制光标所在行的下面4行
粘贴操作
p 粘贴在光标所在的下一行(如果粘贴词的话,粘贴在光标字符的后面)
撤销操作
u 撤销,可以撤销到最近的一次保存的状态:e! 恢复到文档的初始状态
光标快速定位
G 光标到达行末
7G 快速找到第7行
/adm 简单搜索,快速定位光标到光标后的第一个adm单词的位置,当到行末没有的话,返回从头开始查找(类似于word的查找)
技巧让行号永久生效
进入该用户的家目录,在目录下创建1个文件,“.vimrc”
内容 : set nu
替换内容
:7,12 s/:/? 把第7-12行中每一行的第一个:改成? :7,12 s/:/?/g 把第7-12行中的:全部改成?
2.2.4 进入和退出输入模式
i 在光标之前输入文字
ESC 退出
a 在光标之后输入文字 A 在行尾插入文字 o 光标下面插入1行空行 O 在光标上面插入1行空行
第三章 linux的文件系统
3.1 文件系统
文件系统(file system)是指数据在计算机的硬盘中存放的格式,针对不同的操作系统,文件存储格式和存取的方式各不相同,所以文件系统也不尽相同。
3.1.1 windows的文件系统
1、FAT16 file allocation table 文件分配表
2、FAT32
3、NTFS new technology file system 新技术文件系统
3.2 linux文件系统介绍
1、Ext2 标准的linux文件系统
2、Ext3 Ext2的升级版,增加日志功能,并有根据日志中断重整功能。
3、linux swap linux的交换分区
4、VFAT 长文件名系统,与windows共同支持的文件系统。其他支持的:fat、ISO9660、cramfs
3.3 linux下的目录和文件类型
在查看文件的基本属性的时候,每一行的第一位,也就是权限位之前的那一位表示文件的类型:
- 代表普通文件 d 代表目录文件 l 代表链接文件 p 代表管道文件以及其他的s、b、c等特殊文件
文件的扩展名(后缀)
文件的后缀名主要是方便用户和系统识别,例如:“.jpg”“.mp3”用户看到可以知道.jpg是图片文件,
而.mp3是音频文件;系统读取的时候可以用来识别与哪些程序关联。以方便双击打开。对系统内部来说,扩展名没有太大的意义。
3.4 linux文件系统和windows文件系统的对比
LINUX:存储设备在文件系统层次结构中,以目录表示;用正斜杠/分割目录;文件名不需要后缀;每个文件/目录都有与之相关的权限和所有权
WINDOWS:驱动器以字母表示;用反斜杠\分割目录;文件名的后缀有特殊含义;安全特性各不相同
3.5 linux系统下的默认目录
/bin
/boot
/dev
/etc
/home
/media
/root
/sbin
/tmp
/usr
/var
3.6 linux的目录与文件的权限
3.6.1权限的类型 r
读权限 数值表示4 w 写权限 数值表示2 x 执行权限 数值表示1 1代表执行,2代表写,3代表1+2,4代表读,5代表1+4,6代表2+4,7代表1+2+4
3.6.2 三组、九位权限位
u 属主 前三位 文件的主人(文件的所有者) g 属组 中间三位 文件主人所在的组(文件所有者所在的组) o 其他用户 后三位 除了u和g以外的用户
3.6.3 更改目录、文件的权限值
chmod 命令
1、数值表示法 chmod 数值 文件名/目录名
chmod 766 dir1 将目录dir1的权限更改为4+2+1 4+2 4+2 chmod 777 file1 将文件file1的权限更改为 4+2+1 4+2+1 4+2+1
2、字母描述法 chmod?? 属主(或属组或其他人或所有的)=(或者+或者-)权限 文件名/目录名
chmod u=r file1 给文件的属组赋予读取权限 chmod u=wx file1 给文件的属组赋予写和执行权限 chmod g+rw file1 给文件的属组增加读写权限 chmod g-rw file1 给文件的属组去掉读写权限 chmod o=rw file1 给文件的其他用户的权限改为读写 chmod a+rwx file1 给所有用户增加读写和执行权限
3.6.4 系统的umask值
umask值可以计算,当创建目录或文件时系统默认分配的权限。创建文件的默认权限是666减掉权限
位数值,目录的默认权限是777减掉权限位的数值。
[ [email protected] ~]umask
0022
查看系统默认的umask值为0022,第一位0代表粘贴位,第2-4位代表权限位这样系统默认创建文件的权限为666-022为644为属主读写,属组读,其他读系统默认创建文件夹的权限位777-022为属主读写执行,属组读执行,其他读执行
3.6.5
粘贴位:(sticky)当一个目录被设置为"粘着位"(用chmod a+t),则每个用户可以以完整的权限来使用
和执行文件或目录,但是该目录下的文件只能由:一、超级管理员删除二、该目录的所有者删除三、该文件的所有者删除
setUID 用户特殊权限位
当设置用户特殊权限位时,用户在执行这个文件时便拥有是属主的权限,便可以使用属主用户所能使用的所有系统资源。
setGID 组的特殊权限位
当设置组的特殊权限位的时候,用户在执行这个文件时便拥有文件属组的权限,便可以使用文件属组所能使用的系统资源。用户在无特殊要求时,一般情况下,出于安全考虑,不要开启这些权限。
Suid对应数值为4 Sgid对应数值为2 t对应数值为1
特殊权限位在设置过程中占用x权限位,如果同时开启x权限,则用小写来表示,如果关闭x权限则用大写来表示。设置举例:
chmod 1666 dir1
drw-rw-rwT root root 4096 dec 17 19:05 dir 1
更改dir1的权限,增加粘贴位权限,属主为读写,属组为读写,其他用户为读写 chmod 2666 dir1
drw-rwSrw- root root 4096 dec 17 19:05 dir 1
更改dir1的权限,增加组位特殊权限,属主为读写,属组为读写,其他用户为读写
chmod 7777 dir1
drwsrwsrwt root root 4096 dec 17 19:05 dir 1
更改dir1的权限,增加粘贴位权限,用户和组位特殊权限,属主为读写执行,属组为读写执行,其他用户为读写执行
3.6.6
更改目录或是文件的属主或属组必须由文件或目录的属主或超级用户才能修改!!! chown 命令更改目录或文件的属主和属组
chown u1 dir1 将当前目录下的dir1目录的属主改为u1 chown u2.g1 dir1 将当前目录下的dir2目录的属主改为u2属组改为g1
-R 递归式改变指定目录及目录下所有文件和子目录
-v 显示chown命令所做的工作
可以以空格分开,同时更改多个目录或文件,并且支持通配符来修改多个文件或目录,支持用户和组的 ID来修改
chgrp 命令更改目录或文件所属的组
chgrp g1 dir2 将dir2的属组更改为g2
以空格分开,同时更改多个目录,并且支持通配符来修改多个目录和文件,支持用户和组的ID来修改
-R 递归式改变指定目录及目录下所有文件和子目录
第四章.linux的硬件管理
4.1.1 计算机的硬件管理
在linux下,计算机所有设备是以文件的形势存在的。
在linux下查看硬件信息
1、lspci 列出所有的PCI设备
2、fdisk -l 查看存储设备信息
3、查看/proc目录下相应的文件来查看一些设备信息
cat /proc/cpuinfo 查看CPU的信息
4.1.2 kudzu 配置硬件
kudzu 命令相当于windows的检查新硬件。
4.2 磁盘管理
4.2.1 在linux下的硬盘的编号和分区的编号
1、IDE硬盘,在linux下以hd加编号组成,由于计算机通常1个IDE通道可以连接2块硬盘,所以在 linux的编号如下:第一通道上的第一块为 hda 第一通道上的第二块为 hdb 第二通道上的第一块为 hdc 第二通道上的第二块为 hdd 其他的依次类推,常见pc机上的IDE通道为2个
2、sata硬盘和scsi硬盘在linux下以sd加编号组成,1个scsi通道可以连接15块硬盘(其中1个连接
SCSI卡)
第一通道上的第一块为 sda 第一通道上的第二块为 sab
其他依次类推,sata硬盘常应用于PC机,类似与IDE
3、分区编号
在硬盘编号后面加上数字编号来表示第几块硬盘上的第几个分区
1—4为主分区(扩展分区的编号) 5以后为逻辑磁盘的编号
4.2.2
fdisk 磁盘管理命令 fdisk -l 显示磁盘分区信息
对新硬盘进行分区
fdisk /dev/sdb 对第二块scsi硬盘进行分区操作(在命令后加硬盘设备文件的名称)如果fdisk命令不能工作可以给fdisk命令加上完整路径来执行/sbin/fdisk
fdisk实用工具中的命令:
a 设置和清除引导标志(相比与windows的设置为活动的分区)
d 删除分区 n 创建分区 p 显示当前分区表 q 不保存退出fdisk实用程序 w 保存并退出fdisk实用程序
4.2.3 磁盘分区的格式化
mkfs命令对磁盘进行文件系统的格式化
mkfs -t ext2 /dev/sdb1 将第二块scsi硬盘的第一个分区格式化为ext2文件系统 mkfs.ext3 /dev/sdb1 将第二块scsi硬盘的第一个分区格式化为ext3文件系统 mkfs.vfat /dev/sdb2 将第二块scsi硬盘的第二个分区格式化为vfat文件系统
4.2.4 磁盘分区的挂载
mount命令挂载磁盘分区文件系统
mount -t ext3 /dev/sdb1 /media/test 将ext3文件系统的第二块scsi的第一个分区挂载到/media/test目录下 mount /dev/sdb2 /media/dir 将第二块scsi的第二个分区挂载到/media/dir目录下
-t 参数指定文件系统类型
umount 卸载命令
umount /media/test 将挂载在/media/test目录下的文件系统卸载
df命令查看磁盘(挂载)信息命令 df 不加任何参数,显示磁盘使用情况 * -i 显示文件系统的使用情况, 不是磁盘的使用情况
-h 以用户识别的方式显示磁盘信息,以1K=1024计算
-H 同-h,但是计算单位以1K=1000
-l 只显示本地文件系统
-t 加文件系统类型,只显示指定文件系统类型
-x 加文件系统类型,只显示指定文件类型意外的系统类型
4.2.4.1自动挂载和按需挂载
1、开机自动挂载
vi /etc/fstab 文件
增加一行
/dev/sda1 /mnt/data ext3 defaults 0 0
要挂载的设备 挂载的目录 文件系统 操作模式 reboot 重启查看效果。
2、按需挂载
编辑2个文件/etc/auto.master(起控制作用)和/etc/auto.misc(指定挂载的虚拟目录和要挂载的设备) vi /etc/auto.master
增加一行
/media/jake /etc/auto.misc --timeout=10
要挂载的真实目录 10分钟无动作自动卸载
vi /etc/auto.misc
增加一行
rose -fstype=ext3 :/dev/sda1
挂载的虚拟目录 挂载的文件系统类型 要挂载的设备
service autofs restart 重启挂载服务
4.2.5 swap交换分区的调整
free 显示内存信息命令,包含物理内存,交换分区和内核缓冲区文件。
-m 以M为单位显示内存信息
1、使用虚拟设备生成空文件(将交换分区增加100M)
dd if=/dev/zero of=/tmp/swp1(要创建的交换分区目录) bs=10M(每个区块的大小) count=10(区块数量)
2、生成交换分区文件
mkswap /tmp/swp1
3、激活交换分区
swapon /tmp/swp1
4、使交换分区永久生效,修改配置文件
vi /etc/rc.local 最后添加一行 swapon /tmp/swp1
4.2.6 创建RAID磁盘阵列
mdadm 命令
mdadm -C /dev/md0 -l5 -n3 /dev/sdb1 /dev/sdb2 /dev/sdb3
RAID设备名 RAID级别 分区数量 分区设备名称
more /proc/mdstat 查看RAID状态 mkfs.ext3 /dev/md0 格式化
mount /dev/md0 /media/raid 挂载到/media/raid目录 mdadm /dev/md0 -f /dev/sdb1(损坏的设备名称) 标记损坏设备 mdadm /dev/md0 -a /dev/sdc1(新设备名称) 添加新设备 mdadm /dev/md0 -r /dev/sdb1(损坏的设备名称) 移除损坏的设备
4.2.7 挂载使用光驱
mount /dev/cdrom /media/cd(挂载目录)
制作ISO文件
dd if=/dev/cdrom of=/tmp/rsing.iso(iso文件名称和存放的位置)
直接使用ISO文件
mount -o loop /tmp/rsing.iso(iso文件名称和存放的位置) /media/iso(挂载的目录)
第五章.linux下的用户和组的管理
5.1 linux系统下用户角色
在linux系统下用户的角色不同,权限和所能完成的任务也不同,用户角色是通过UID来识别的,
注意:在linux下要注意root用户的UID的唯一性。
1、Root
系统管理员超级用户,系统唯一,可以登陆系统,可以操作任何文件和命令,拥有最高权限,UID值为0 2、虚拟用户
与真实的用户分开来,这类用户不能登陆系统,但是在使用某些服务的时候使用,这类用户是系统默认添加的。 3、普通真实用户
这类用户可以登陆系统,但是只能操作自己家目录的内容,受限账户,这类用户都是管理员自行添加的。
5.1.2 用户相关文件介绍
在windows当中可以使用计算机管理工具中的用户和组的管理工具来对用户进行管理,在linux下是
通过对用户配置文件(区别与windows中的用户配置文件)的管理来实现对用户和组的管理
1、/etc/passwd 用户账号文件,记录所有用户记录每行表示一个用户信息,7个字段都有各自的含义
root : x : 0 : 0 : root : /root : /bin/bash
用户名 密码 UserID GroupID 用户相关说明 用户家目录路径 用户的登陆shell
2、/etc/shadow 用户账户的影子文件,包含用户的加密密码和其他信息,两个文件互补来记录用户
信息,这个文件只有root可以读取和操作每行包含8个字段,各项说明如下:第1个字段 用户名第2个字段 加密口令
第3个字段 上次口令改变时间,从1970年1月1日算起的天数第4个字段 多少天内不能改变口令第5个字段 多少天内必须改变口令第6个字段 口令到期前多少天会出现警告第7个字段 如果口令到期后几天不使用账号,则无法登陆
第8个字段 如果到这个日期不用账号则无法登陆,可以以YYYY-MM-DD格式,也可以用1970年1月1日起的天数
3、/etc/login.defs
打开这个文件对文件内容进行解释,如果修改,修改哪些位置有哪些作用。
MAIL_DIR 邮件存放目录
PASS_MAX_DAYS 密码有效期最长时间
PASS_MIN_DAYS 密码有效期最短时间
PASS_MIN_LEN 密码最小长度
PASS_WARN_AGE 密码到期提示时间
UID_MIN UID最小值
UID_MAX UID最大值
GID_MIN GID最小值
GID_MAX GID最大值
CREATE_HOME 是否创建家目录
UMASK UMASK值
USERGROUPS_ENAB 当删除用户后,同名组中不在存在用户的时候,是否删除该组
4、/etc/skel
存放用户启动文件的目录,类似与windows的用户配置文件目录,为用户提供用户环境,该目录下的文件全部为隐藏文件。在添加用户时会从该目录下复制文件到用户的家目录下,相当与统一的登陆模板。
开启和关闭投影密码命令
开启用户的投影密码,使得密码得到更好的保护,不容易被别的用户得到。 该选项是一个安全选项,执行命令可以把用户名和密码分别存放在两个文件当中,影子文件就是密码文件。
pwconv 开启投影密码命令 pwunconv 关闭投影密码命令
5.1.2 用户管理
1、useradd 创建用户命令
useradd jake 创建名为jake的用户
-d 指定用户的家目录
-g 指定用户组
-G 指定用户的附加组
-u 指定用户的UID值 -p 创建密码
useradd -d /rose -g group -G root -u 505 rose 创建rose用户,指定家目录在/rose下,加入到 group组,同时附加到root组,并设置UID号为505 users 查看所有登陆的用户(who) 2、tail 命令查看指定文件的末行
tail -n 3 /etc/passwd 查看passwd文件的最后三行 tail -1 /etc/passwd 查看passwd文件的最后一行
3、passwd 设置密码命令
注意:没有设置密码的用户不能使用
passwd rose 给用户rose设置密码
-d 删除密码
-f 强制执行下次登陆时更改密码
-l停止账号使用
-u启用已经停止的账号
-S显示密码信息
4、userdel 删除账号命令
userdel rose 删除rose账号
userdel -r rose 删除用户登陆目录及目录下的文件(类似于windows的删除用户选择是否删除用户的文档)
5、usermod 修改账号命令
usermod -l newname oldname
-d -g -G -u 等参数与useradd命令参数使用方法一样
usermod -d /home/rose -g group0 -G group1 -u 600 rose
将rose用户的家目录,主组和附加组以及UID值更改
用户的锁定与解锁
usermod -L rose 锁定rose用户 usermod -U rose 解除rose用户的锁定
6、gpasswd用户添加到其他组的命令注意:只有root和组管理员能够改变组成员
gpasswd -a u1 g1 将u1加入到g1组 gpasswd -d u1 g1 将u1退出g1组
gpasswd -A u1 g1 将g1组的管理员指派给u1
7、id查看ID信息命令 id rose 查看rose用户的ID信息
5.1.3 root单用户
如果希望计算机除了root账号外其他账号不能登陆,在/etc目录中执行touch nologin,创建1个名称为nologin的文件。如果系统只有一个人使用,可以考虑修改/etc/inittab文件,将默认启动值改为
2。
5.2 组的管理
5.2.1 组相关文件介绍
1、/etc/group
用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去,
/etc/group 内容具体分析
/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户
组一条记录;格式如下: group_name:passwd:GID:user_list
在/etc/group 中的每条记录分四个字段: 第1字段:用户组名称; 第2字段:用户组密码; 第3字段:GID
第4字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;
root : x : 0 :root,rose
root组 x是密码段 GID是0 root用户组下包括root、rose以及GID为0的其它用户(可以通过 / etc/passwd查看)
2、/etc/gshadow
/etc/gshadow是/etc/group的密码文件,用户组(Group)管理密码就是存放在这个文件 。
/etc/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。比如我们不想让一些非用户组成员永久拥有用户组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码;
/etc/gshadow 格式如下,每个用户组独占一行; groupname:password:admin,admin,...:member,member,...
第1字段:用户组
第2字段:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;第3字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;第4字段:组成员,如果有多个成员,用,号分割;
jake:!::rose rose:oUS/q7NH75RhQ:: rose
第一字段:这个例子中,有两个用户组jake用rose 第二字段:用户组的密码,jake用户组无密码;rose用户组有已经,已经加密;
第三字段:用户组管理者,两者都为空;
第四字段:jake用户组所拥有的成员是rose,rose用户组有成员rose
5.2.2 组的管理
1、groupadd 添加用户组
-g 指定GID
-o 一般和g选项同时使用,可以与已有组的GID相同
groupadd -go 501 g1 创建组g1其GID可以与已有的组重复
2、gpasswd设置用户组的密码 一般的情况下,没有必要设置用户组的密码;
gpasswd rose 修改rose 组的密码 3、groupdel删除用户组
groupdel g1 删除g1组(没有用户的空组)
4、groupmod 修改组属性
-g 指定新的GID
-o 与-g配合使用同groupadd的- o
-n 修改组名
groupmod -g 601 g1修改g1的GID为601 groupmod -n g11 g1 将g1组改名为g11 5、newgrp 切换用户组 newgrp root 切换到root组
5.3 普通用户权限提升
1、su 切换用户命令 su 直接默认切换到root用户 su - root 更改环境变量为root用户的 su -m root 保留环境变量不变
su -c “/usr/sbin/useradd u1” root 以root的身份执行useradd命令,-c代表执行一个命令后就结
束。其中命令需要输入命令文件的绝对路径。
2、sudo 命令
由于su 对转换到root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。假如用su 来转换到root来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参和管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成和其相关的工作,这时我们就有必要用到 sudo。 通过sudo,我们能把某些root有针对性的下放,并且无需普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授
权许可的,所以也被称为授权许可的su;
sudo 执行命令的流程是当前用户转换到root(或其他指定转换到的用户),然后以root(或其他指定的转换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文档/etc/sudoers来进行授权; visudo来增加一行
u1 ALL=(root) NOPASSWD:/bin/cat u1用户可以转换到root下不需要输入密码执行/bin/cat命令
u1 ALL=(root)/bin/cat,/user/bin/passwd,!/user/bin/passwd root
u1 用户可以转换到root下需要输入密码执行/bin/cat,/user/bin/passwd,但不能执
行/user/bin/passwd root来修改用户密码。
执行sudo命令
sudo -l 列出用户在主机上可用的和被禁止的命令
sudo 命令(命令为绝对路径)来执行命令
sudo /bin/cat /etc/shadow
5.4 磁盘配额
windows不能对组进行配额设置,而linux可以对组进行配额限制。
1、vi /etc/fstab文件
将要设置配额的分区设置开机自动挂载在添加行在defaults后面加上,usrquota(grpquota)表示要建立用户或组的磁盘配额 2、重新挂载文件系统
之前重启看效果,可以使用umount -a 卸载所有文件挂载,然后使用mount -a挂载所有文件系统
3、在挂载目录下创建aquota.user文件在挂载目录下执行touch aquota.user
通常要对该文件配置权限,防止用户随便访问。
4、进行配额检查
执行quotacheck -avu(g)(g是启用组配额)
5、设置用户磁盘配额
执行edquota -u rose
默认使用vi编辑rose用户的配额文件
filesystem blocks soft hard inodes soft hard /dev/sdb1 4 0 0 1 0 0
4个数据块和1个inodes
软极限和硬极限讲解(结合windows中的配额提醒来讲)
如果设置宽限时间,可以让用户在规定的时间内可以超过软极限,但必须在硬极限之内。
6、设置宽限时间
edquota -t 编辑时间。
7、启用配额
quotaon /qt(配额目录)
8、进行配额测试
创建文件,占用磁盘空间,然后超过软极限,看提醒,然后再超过硬极限,看效果
如果要对其他用户设置相同的配额,可以复制配额
edquota -up rose u1 u2 u3
如果要使配额每次启动生效,可以将配额检查和激活命令放在默认/etc/rc.d/rc.sysinit启动脚本中。第六章.linux下软件的安装与管理