UNIX 重要知识点总结.docx
《UNIX 重要知识点总结.docx》由会员分享,可在线阅读,更多相关《UNIX 重要知识点总结.docx(72页珍藏版)》请在冰点文库上搜索。
UNIX重要知识点总结
Solaris10重要知识点总结
作者:
vi编辑器的使用
vi介绍先用fsck-Fufs-y/dev/rdsk/c1t0d0s0加载一下
vi编辑器是一个用于创建和修改文本文件的交互式编辑器。
使用vi编辑器时所有的文本编辑都放在一个缓冲区中,可以把所作的修改写到磁盘也可以放弃所做的修改。
对于那些有志于成为系统管理员的人而言,掌握如何使用vi编辑器是非常重要的。
你必须知道如何使用vi编辑器,特别是在窗口环境不可用的时候。
Vi编辑器的工作模式
Vi编辑器是一个命令行编辑器,有三种基本的操作模式:
命令模式
文本输入模式(编辑模式)
最后行模式
命令模式:
vi的默认模式,在命令模式下,你可以键入命令来删除、更改、移动文本;定位光标;搜索文本字符串、退出vi编辑器。
文本输入模式(编辑模式):
在编辑模式下,你可以往文件中输入文本。
要使vi编辑器进入编辑模式下,可以采用以下三种不同的命令:
i插入
o打开
a添加
最后行模式:
当处于命令模式下时,通过键入:
你可以执行更先进的编辑命令,键入:
后,将使你处于屏幕的最后一行,这就称为最后行模式。
然而,所有的命令都是由命令模式发起的。
模式间的切换:
通过键入I、o、a命令,vi编辑器将离开默认的命令模式,进入编辑模式。
在编辑模式下,你所键入的所有文本都不会被翻译成命令,这时,所有键入的文本都会被保存到文件中。
当你完成了文本的输入后,按Esc键vi将回到命令模式下,一旦回到命令模式,你可以保存文件,退出vi编辑器,例如:
1、键入vifilename来创建一个文件;
2、键入i命令来插入文本;
3、按Esc键回到命令模式;
4、键入:
wq来保存到文件,退出vi编辑器。
调用vi编辑器
要创建一个新文件,调用带新文件名称的vi编辑器。
也可以键入命令来创建、编辑、查看一个文件。
命令格式
vioptionsfilename
viewfilename
输入命令
要插入或者添加文本,使用下面的选项:
命令含义
a在光标右侧输入文本
A在光标所在行的末尾输入文本
i在光标左侧输入文本
I在光标所在行的开头输入文本
o在光标所在行的下一行开始新行
O在光标所在行的上一行开始新行
备注:
vi编辑器是大小写敏感的,因此,使用命令时注意正确的大小写。
定位命令
下面列出的是控制光标的移动键功能
h,左箭头,退格键光标左移一个空格
j,下箭头光标下移一行
k,上箭头光标上移一行
l,右箭头,空格键光标右移一个空格
w光标右移,到下一个字开头
b光标左移,到前一个字开头
e光标右移,到下一个字末尾
$光标右移到行结尾
0,^光标左移到行开头
回车键光标移到下一行开头
control-f下翻一屏
control-d下滚半屏
control-b上翻一屏
control-u上滚半屏
control-L刷新屏幕
编辑命令
以下部分讲解vi编辑器中的编辑命令
删除文本
要删除文本,使用下面选项:
vi编辑器中的文本删除命令
命令功能
x删除光标所在处的一个字符
dw删除字(或者删除字的一部分,从光标所在处到字结尾)
dd删除光标所在行
D删除光标光标所在处之右的行
:
510d删除5-10行
备注:
命令3dw删除光标所在处开始的三个字,同样,3dd删除光标所在行开始的3行。
撤销、重复、修改文本命令
要修改文本、撤销修改或者是重复编辑命令,使用下面的编辑命令,许多命令是vi编辑器进入编辑模式,要返回命令模式,按Esc键即可:
命令功能
cw修改字(部分字,从光标所在处开始到一个字的结尾)
R从当前光标所在处位置开始替换字符(注:
vi将进入编辑模式)
C从光标坐在处开始修改,到行末尾结束
s用字符替换字符串
r替换当前光标所在的字符
J合并当前行以及下面行
Xp转置光标所在处字符与另一字符
~更改光标所在处字符大小写
u放弃最近的修改
U放弃对当前行所作的修改
:
u放弃上一个最后行命令(用于最后行模式)
:
rfilename在当前光标所在处读入文件文本
查找和替换文本,使用以下选项:
命令功能
/string向下查找字符串string
?
string向上查找字符串string
n查找字符串string的下一个出现
N查找字符串string的上一个出现
:
%s/old/new/g全局查找和替换
拷贝和粘贴文本
拷贝命令把需要拷贝的文本放入一个临时缓冲区,粘贴命令从临时缓冲区中读取文本,并把文本写道当前文档的指定位置。
拷贝和粘贴使用的选项如下:
命令功能
yy(小写)复制一行文本,并将他们放入到临时缓冲区
p(小写)将临时缓冲区中的内容放置到光标后面的位置
P(大写)将临时缓冲区中的内容放置到光标前面的位置
:
l,3co5拷贝1-3行的文本,并把它放置在第5行后面
:
4,6m8移动4-6行到第8行,第6行称为第8行,第5行称为第7行,第4行称为第6行
保存和退出文件
要保存和退出文件,使用如下选项:
命令功能
:
w保存文件,不退出vi
:
wnew_filename保存到文件new_filename中
:
wq保存修改退出vi
:
x保存修改并退出vi
ZZ保存修改
Solaris支持的Shell类型
/usr/bin/shBourneshell
/usr/bin/bashBourneagainshell
/usr/bin/kshKornshell
/usr/bin/cshCShell
用户账户管理
1.创建用户账户
#useradd
–o-u101\#定义UID,-o忽略uid冲突
-gusers\#设定用户主组
-Gclass,training\#设定用户附属组
-c“studentuser”\#添加注释信息
–m–d/export/home/user1\#设定登录主目录
–s/usr/bin/sh\#定义默认shell6种kshtcshbashbshzshcsh
user1#定义用户名
2.更改用户的信息
#passwduser1#指定用户口令
#passwd–fuser1#强制首次登录更改口令
#passwd–luser1#锁定(禁用)user1
#passwd–uuser1#解除锁定的用户
#usermod–luser01user1#更改用户名
#usermod–o-u101user01#更改用户UID
#usermod-gusersuser01#更改用户所属主组
#usermod-Gclass,traininguser01#更改用户所属附属组
#usermod-c“student”user01#更改注释信息
#usermod–m-d/home/user01user01#更改用户登录主目录
#usermod–s/usr/bin/kshuser01#更改用户默认shell
#usermod–f7–e8/29/2011user1#更改用户7天不登录禁用,帐号有效期到2011.8.29
3.删除用户账户
#userdeluser1//仅删除用户帐号
#userdel–ruser1//连同用户登录主目录一起删除
v清理和需要被删除的用户相关的所有文件及目录
#find/-useruser1–typef–execrm–i{}\;
#find/-useruser1–typed–execrm-r{}\;
#find/-useruser1–exexchownuser2{}\;
4.添加新组
#groupadd-g200accts
5.更改组名称
#groupmod–ngroupnewgroupname
6.删除组
#groupdelaccounts
7.更改用户所属组
#usermod–gusersuser1
#usermod–Gclass,traininguser1
8.查看用户所属组信息
#groupsuser1
9.定义用户帐号的位置文件
/etc/passwd
user1:
x:
1001:
20:
111-1111:
/home/user1:
/usr/bin/sh
user2:
x:
1002:
20:
222-2222:
/home/user2:
/usr/bin/sh
user3:
x:
1003:
20:
333-3333:
/home/user3:
/usr/bin/sh
/etc/shadow
user1:
btp2SLRCK70es:
1001:
:
:
:
:
:
user2:
btp2SLRCK70es:
1002:
:
:
:
:
:
user3:
btp2SLRCK70es:
1003:
:
:
:
:
:
/etc/group
users:
:
20:
accts:
:
1001:
user1,user2
sales:
:
1002:
user1,user2,user3,user4,user5,user6
SolarisRBAC(Solaris基于角色访问控制)
刚接触到RBAC时,第一感觉就是很复杂。
经过了最近几天的研究对这个有了基本的了解,那我就把我了解的写下来了。
RBAC的作用:
通过把一定权限赋予给特定的角色,然后把角色关联到用户,让用户可以有一定权限的操作(如管理用户),从而减轻管理员的负担和提高系统的安全性
实例:
假设公司有十个部门,每一个部门都会有人事变动,每个部门来了新人或离开的员工,都要通知
系统管理员去修改帐号信息,这个工程量是很大的,而且很繁琐,怎样把管理帐号的权
下发个部门的一个人,而又不让他有很高的权限呢!
(通过RBAC)
一、三个概念
1、角色:
其实是一个用户,只是他具有执行某项任务的权利。
2、权限配置文件:
用来授权一个或多个命令
3、授权:
为某个特定的用户分配特定的权限。
二、四个配置文件
1、/etc/user_attr:
用来关联用户与角色的授权和配置文件(用户和角色的对应关系)
2、/etc/security/prof_attr:
用来定义可以执行一个或多个命令的配置文件名,存储名称、说明、帮助文件的位置以及制定给权限配置文件的授权
3、/etc/security/auth_attr:
为某个角色分配特定的权力。
(权限数据库)
4、/etc/security/exec_attr:
详细列出可执行属性与配置文件的关联。
(命令数据库)
看到这里可能很糊涂了,下面我们通过实例来理解。
一般步骤
(1)创建用户
Useradd–m–d/export/home/user–s/usr/sbin/bash–c“thisiduser”user
(2)创建角色
Roleadd–m–d/export/home/jiaosejiaose
(3)查看proc_attr里面是否有命令,没的要从auth_attr中拷贝,auth_attr中没有的,要从exec_attr中拷贝!
!
Grep命令/etc/security/proc_attr
Grep命令/etc/security/exec_attr
Grep命令/etc/security/auth_attr
Echo“具体命令”>>/etc/security/proc_attr
Echo“具体命令”>>/etc/security/exec_attr
(注释:
如果exec_attr中没有可用的命令,那就需要手工的添加命令到proc_attr中,要注意的是另外也要添加到exec_attr中。
注意exec_attr中的格式,与proc_attr不同!
)
(4)添加命令到proc_attr中
(5)给角色授权
(6)角色和用户绑定
(7)先登录用户,再转向角色登录
二、RBAC的示例。
用smc(solaris管理控制台配置RBAC)
1.用smc创建一个普通用户
打开smc界面
第一次运行smc时间有点长,依次展开管理工具—本计算机—系统配置—用户
按照下图步骤,新建用户tom
点完成,我们的tom用户就创建好了
2.创建一个角色,在创建的时候赋予角色权限
这里我们赋予角色管理用户的权限(usermanagement)
把角色和用户进行关联,不关联用户不能切换到角色
3.测试RBAC,测试之前先用命令看看普通用户是不进行用户管理的,提示权限拒绝
切换到roletest角色
我们可以看到/etc/passwd里面有user001的信息,我们还可以用usermoduserdel
等命令。
这里就不一一演示
三.用命令行来管理RBAC
演示①:
让普通用户能更改系统时间
1.添加一个新的用户
2.测试一下普通用户能修改系统时间不
3.新建一个角色
4.把用户和角色关联起来
5.现在在角色没有赋予任何权限的时候看看能否更改系统时间
6.在命令权限数据库中查找date命令的权限配置文件名称
7.把date的权限配置文件MaintenanceandRepair赋予给用户
8.再来看看角色是否能够修改系统时间
后记:
通过时间,我们知道,通过把权限赋予给角色,把角色和用户关联起来,普通用户是可以通过角色来管理一些被授权的操作的
给user添加Ifconfig命令
1.添加用户,使其获得某项授权,或加入某个角色
#useradd-m-d/export/home/user-s/usr/bin/bash–c“thisisuser”user
2.添加角色并设置密码
#roleadd-m-d/export/home/jiaosejiaose
#passwdjiaose
3.查看proc里面是否用ifconfig相关的命令
#grepifconfig/etc/security/proc_attr(里面没有的)
#grepifconfig/etc/security/auth_attr(里面也没有的)
#grepifconfig/etc/security/exec_attr(有)
NetworkManagement:
solaris:
cmd:
:
:
/sbin/ifconfig:
uid=0
NetworkManagement:
suer:
:
cmd:
:
:
/usr/sbin/ifconfig:
uid=0
4.添加exec_attr中的命令到proc_attr中
Echo“NetworkManagement”>>/etc/security/proc_attr
5.给角色授权
#rolemod–P“MaintenanceandRepair”ifconfig
6.角色和用户绑定
#Usermod–Rifconfiguser
7.先登录用户,再转向角色登录
#suuser
$suifconfig
8.验证实验
#ifconfige1000g0192.168.1.3network255.255.255.0
给user添加Shutdown命令
1.添加用户,使其获得某项授权,或加入某个角色
#useradd-m-d/export/home/user-s/usr/bin/bash–c“thisisuser”user
2.添加角色并设置密码
#roleadd-m-d/export/home/shutdownshutdown
#passwdshutdown
3.手工添加
(Shutdown是管理员的命令,系统的命令我们不能用的,我们要手工添加)
4.手工添加命令到proc_attr和exec_attr中
Echo“SystemShutdown:
:
:
shutdownthesystem”>>/etc/security/proc_attr
Echo“SystemShutdown:
suser:
cmd:
:
:
/usr/sbin/shutdown:
uid=0”>>/etc/security/exec_attr
5.给角色授权
#rolemod–P“SystemShutdown”shutdown
6.角色和用户绑定
#Usermod–Rshutdownuser
7.先登录用户,再转向角色登录
#suuser
$sushutdown
8.验证实验
$shutdown
后续:
通过命令行来查看用户的角色,即相应角色的权限
1、查看某个用户的角色
#rolesjim
pkguser
2、查看该角色的权限
#profilesjiaose
echo"SystemShutdown:
:
:
profiletoshutdown:
">>/etc/security/prof_attr
echo"SystemShutdown:
suser:
cmd:
:
:
/usr/sbin/shutdown:
uid=0">>/etc/security/exec_attr
创建文件系统(UFS)
前言:
我们对一个新添加的硬盘,默认情况下用format命令是查看不到的!
首先用命令devfsadm激活,我们再来查来就有了!
步骤一:
我们要创建分区!
步骤二:
用命令newfs创建ufs文件系统
分区自动挂载
一般手动挂载,重启之后就没有了!
命令如下:
开机自动挂载!
需要添加挂载信息到/etc/vfstab配置文件中去!
磁盘配额的配置
前言
配置磁盘配额之前要有正常的分区!
步骤一:
创建磁盘限制列表文件且挂载设备
步骤二:
设置磁盘配额为开机自动挂载
步骤三:
设置用户的磁盘限额和时间限额
步骤四:
开启磁盘限额服务
步骤五:
给其用户写的权限且验证实验
对UFS文件系统的备份
方法一:
ufsdump0uf-/mnt/1|(cd/mnt/3;ufsrestore-rf-)
将/mnt/3的文件备份到/mnt/1中(要备份的文件必须挂载)
方法二:
ddif=/dev/dsk/c#d#t#s#of=/dev/dsk/c#d#t#s#bs=1024000
将后者的文件备份到前者中(要备份的文件不能挂载)
进入单用户模式
方法一:
Inits
方法二:
开机的时候选择“solarisfailsafe”
挂载光盘文件系统
查看光驱设备名称
ls-l/dev/sro
挂载和卸载光盘系统
方法一:
volrmmount-i挂载
volrmmount-e卸载
方法二:
mount-Fhsfs/udfs-oro/dev/dsk/c#t#d#s#/cdrom挂载CD/DCD
mount/cdrom卸载CD/DCD
(此挂载之前必须停止/etc/init.d/volmgt服务!
命令:
/etc/init.d/volmgtstop)
出现乱码情况处理方法
方法一:
重新挂载
方法二:
用以下命令处理
mount-Fhsfs-ocdcase/dev/dsk/c#t#d#s#/cdrom
挂载psfs文件系统
查看可移动设备
rmformat
挂载和卸载psfs文件系统
mount-Fpcfs/dev/diskette/cdrom挂载
mount/cdrom卸载
更改目录为小写的方法(默认挂载之后目录将变为大写)
用以下命令处理
mount-Fpcfs-ofoldcase/dev/diskette/cdrom
ZFS文件系统
ZFS硬件和软件要求
vSPARC或x86架构,操作系统运行的是Solaris106/06发行版或更高版本
v最小磁盘空间为128MB。
用于存储池所需的最小磁盘空间量约为64MB
v建议用于安装Solaris系统的最小内存量为512MB,但为了获得更好的ZFS性能,建议至少使用1GB或更多内存
v如果创建镜像磁盘配置,建议使用多个控制器
部署ZFS硬件环境
1.系统自动识别硬件的添加
touch/reconfigure
2.format检查新磁盘的状况
ZFS组件的命名规则
v不允许空组件
v每个组件只能包含字母数字字符以及以下四个特殊字符:
v下划线(_)
v连字符(-)
v冒号(:
)
v句点(.)
v池名称必须以字母开头,但不允许使用起始序列c[0-9]。
此外,不允许使用以mirror、raidz或spare开头的池名称,因为这些名称是保留的
ZFS文件系统的基本使用
1.创建基本的存储池
语法:
#zpoolcreate-m宿主目录路径池的名称磁盘1磁盘2…
示例:
zpoolcreate–m/software/zfspoolzfspool/del/dsk/c0t0d0/dev/dsk/c0t1d0
2.将硬盘添加到池
语法:
#zpooladd池号磁盘
示例:
#zpooladdzfspool/del/dsk/c0t3d0
3.使用mkfile测试文件系统
示例:
#mkfile100m/software/abc
4.查看池的列表
示例:
#zpoollist
5.创建ZFS文件系统分层结构
(1).创建ZFS文件系统
示例:
#zfscreatezfspool/fs
(2).查看系统设置的属性
示例:
#zfssethelp
(3).获得文件系统的属性值和属性源的当前状态
示例:
#zfsgetallzfspool/fs
(4).对文件系统的属性设置(有继承性)
语法:
#zfsset属性=on/off文件系统
示例1:
更改zfspool/fs的宿主目录为/mnt/123
#zfssetmountport=/mnt/123zfspool/fs
示例2:
设置文件系统zfspool/fs的sharenfs状态为开启
#zfssetsharenfs=onzfspool/fs\
(5).常用的属性
mountport控制文件系统的挂载点
sharenfs控制文件系统是否用于NFS中以及使用的选项
quota限制数据集及其代可占用空间量
checksum控制验证数据的完整性的校验和
compressratio只读属性,用于标识针对数据集实现的压缩比例
6.销毁文件系统
语法:
#zfsdestroy文件系统
示例:
销毁zfspool/fs文件系统
#zfsdestroyzfspool/fs
7.