分类: 系统运维
2011-07-26 09:34:44
Solaris系统管理之常用命令
一、用户管理
1、useradd
useradd [-u uid | -g group] | -d dir | -s shell | -c comment | -m [-k skel_dir] ] login
说明:
u 指定用户ID号,默认新建用户从100开始
g 制定所在组,默认新建组从100开始
d 指定用户目录
s 制定用户SHELL
c 用户的注释
m 建立用户目录
login 用户的登录名
实例:useradd -u 101 -d /export/home/fawang -s /bin/bash -m fawang
2、userdel
userdel [-r] login
-r 删除用户登入目录以及目录中所有文件。
实例:userdel -r fawang
3、passwd
passwd [-l] [name]
-l:锁定已经命名的账户名称,直到为其设置密码。
实例:#passwd –n 30 test 强迫test账号每隔30天修改一次口令
#passwd –f test 强迫test账号在下次登录的时候修改口令
#passwd –l test 封锁test账号,禁止登录#passwd test 修改用户密码
修改口令策略
/etc/default/passwd文件
MAXWEEKS=4 口令至少每隔4星期更改一次
MINWEEKS=1 口令至多每隔1星期更改一次
WARNWEEKS=3 修改口令后第三个星期会收到快要修改口令的信息
PASSLENGTH=6 用户口令长度不少于6个字符
4、groupaddgroupadd [-g gid [-o]] group
实例:groupadd -g 101 fawang
5、groupsdel
groupdel group
实例:groupdel fawang
6、groups
groups [ user ... ]
user 查看用户所在组,不带参数显示所有组
7、su
su [-] [user] 切换用户,参数是使用用户环境设置。
su的纪录
/etc/default/su文件
SULOG=/var/adm/sulog
SYSLOG=YES
CONSOLE=/dev/console
PATH=/usr/bin:
SUPATH=/usr/sbin:/usr/bin8、相关配置文件
/etc/passwd
/etc/shadow
/etc/group
/etc/default/login
CONSOLE=/dev/console root不能登陆
/etc/ftpusers
增加用户(如:root),ftp用户将不能登陆
9、相关命令
who am i 查看在线用户
finger -l 显示登录用户信息
w 查看在线用户
last 查看登陆日志
id -a 查看当前用户信息
二、软件包管理
1、pkgadd
pkgadd[-d[device|pathname]]pkg_name
-d device :指定软件包的绝对路径。device-name 可以是设备、目录或假脱机目录的路径。如果未指定软件包所在的路径,pkgadd 命令将检查缺省的假脱机目录 (/var/spool/pkg)。如果软件包不在缺省的假脱机目录中,软件包的安装将失败。
实例:
pkgadd -d . 从当前文件夹安装软件包
pkgadd -d /export/home/oss-solaris-v4.1-1052-sparc.pkg
pkinfo -d /export/home/wangfb/cdrom/Solaris_8/Produc/Product SUNWpl5u
2、pkginfo
pkginfo [ -d [ device | pathname ] ] [ -l ] pkg_name
不带参数显示安装的所有软件包。
参数:
-d 软件包所在的设备路径
-l 软件包的详细描述实例:pkginfo -d ./oss-solaris-v4.1-1052-sparc.pkg
pkginfo -l SUNWluxl
3、pkgrm
pkgrm package_name 删除软件包
4、pkgparam
实例:pkgparam -v SUNWluxl 显示软件包参数
5、相关文件
/var/sadm 包含系统记录文件和管理文件的目录
/opt/pkgname 安装未随操作系统一起提供的名为pkgname的软件包的推荐目录.
/opt/pkgname/bin 未随操作系统一起提供的名为pkgname的执行文件的推荐目录.
/opt/bin 未随操作系统一起提供的名为pkgname的执行文件的推荐目录.
/var/opt/pkgname
/etc/opt/pkgname 未随操作系统一起提供的、名为pkgname的记录文件的推荐目录.
/var/sadm/install/contents 整个系统的软件包映象.
/var/spool/pkg/ 假脱机目录6、patchadd
实例:patchadd 112077-02 安装补丁
patchadd -d 112077-02 安装补丁,但补丁不能删除
7、patchrm
实例:patchrm 112077-02 删除补丁,但当补丁有依赖性时不能删除
8、showrev
实例:showrev -p 查看所有补丁
9、相关目录
/var/sadm/patch目录
在/var/sadm/patch目录下,记录了已安装的补丁。
如: # ls /var/sadm/patch
107558-05 107594-04 107630-01 107663-01 107683-01
107696-01 107817-01 107582-01 107612-06 107640-03
建议不要对此目录做任何修改,此目录被破坏后将不能安装或删除任何补丁。
三、网络管理
1、ip地址的显示和设置
1)ip地址的显示
ifconfig -a
2) ip地址的修改
#ifconfig eri0 down
#ifconfig eri0 192.168.1.1 netmask 255.255.255.0 up
或
#ifconfig eri0 192.168.1.1/24 up 此方法重启后丢失
永久生效,配置以下文件:
/etc/hosts 修改ip地址
/etc/hostname.eri0 修改主机名(尽量不要改)
/etc/netmasks 修改网络掩码
如重新增加网卡,先让系统检测新硬件:
#touch /reconfigure 重启
#grep network /etc/inst_to_path
#ifconfig hme1 plumb
#ifconfig hme1 192.168.1.2/24 up
2、网络服务
inetd是Internet服务后台进程,监听多个TCP/IP端口。inetd允许在需要时启动某个服务,节省系统资源。
inetd的配置文件为/etc/inet/inetd.conf,如果对/etc/inet/inet.conf做了改变,必须让inetd进程重读配置文件:
#pkill -HUP inetd
网络服务端口的对应在/etc/services文件中配置。
3、路由和网关
1)默认网关的配置
#more /etc/defaultrouter
192.168.1.1
该文件默认不存在,用户自己创建。
2)多条路由配置
#route add net 1.1.1.1 192.168.1.1
#route add host 1.1.1.1 192.168.1.1
#route delete net 1.1.1.1 192.168.1.1
也可以创建文件/etc/rc2.d/S97route:
route add net 1.1.1.1 192.168.1.1
route add host 1.1.1.1 192.168.1.1
查看路由:
#netstat -rn
4、DNS客户端配置
创建/etc/resolv.conf
#vi /etc/resolv.conf
nameserver 202.38.64.1
nameserver 202.102.192.68
nameserver 202.102.199.68 最多三个
修改/etc/nsswitch.conf,用于设定名字搜索路径
bash-2.03# more nsswitch.conf
#
# /etc/nsswitch.files:
#
# An example file that could be copied over to /etc/nsswitch.conf; it
# does not use any naming service.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.passwd: files
group: files
hosts: files dns #添加即可
ipnodes: files
networks: files
protocols: files
rpc: files
ethers: files
netmasks: files
bootparams: files
publickey: files
# At present there isn't a 'files' backend for netgroup; the system will
# figure it out pretty quickly, and won't use netgroups at all.
netgroup: files
automount: files
aliases: files
services: files
sendmailvars: files
printers: user filesauth_attr: files
prof_attr: files
project: files可以使用nslookup测试。
5、检测网络包
在windows中可以使用sniffer、ethereal,在Linux中可以使用tcpdump,在Solaris中使用snoop。
#snoop
常用的选项:
-P 不使用混杂模式,只能获取广播包和到本地主机的数据包
-c [maxCount] 记录最大包数,超过则自动停止
-d [dev] 接受包的设备名(网络接口)
-i [filename] 从文件输入(从一个以前的记录文件而不是网络设备中输入)
-p first[,last] 当从文件输入时,只显示从first指定到last的包
-o [filename] 保存所有数据包输出到文件,格式为RFC 1761-compliant
-q 当记录到文件时,使用安静模式,不回显数据
-N 解析IP地址到主机名(默认使用/etc/hosts作为解析列表)
-r 不解析主机名
-n 指定解析主机名所用的列表文件
-v 冗余模式,显示详细的数据包信息
除了命令选项以外,snoop还允许通过filter expression过滤模式来对数据包进行析取:
地址
host [hostname] 指定主机名,snoop将只获取此主机(源和目标)的数据包
from 或 src 指定源地址,后面必须跟host或ipaddr指令,将只获取以此地址为源的数据
to 或 dst 指定目标地址,后面必须跟host或ipaddr指令,将只获取以此地址为目的的数据
ipaddr 指定IP地址,功能同host
atalkaddr 指定appletalk地址,适用于appletalk协议
etheraddr 指定以太网MAC地址,适用于Ethernet协议
net [net] 指定网络地址,将抓取指定目标网络的数据
port [port] 指定TCP|UDP端口号,将只抓取指定端口的数据,适用于TCP|UDP协议
也可以根据/etc/services文件中指定的协议名字使用字符串
gateway [hostname|IP] 指定网关地址,将只抓取发送到指定网关的数据协议
inet 指定抓取IPV4协议
inet6 指定抓取IPV6协议
ethertype 抓取指定的Ethernet协议
ip, ip6, arp, rarp, pppoed, pppoes
udp, tcp, icmp, icmp6, ah, esp
分别指定以上类型的协议
pppoe PPPOE协议
broadcast 广播协议
multicast 多播协议
bootp, dhcp bootp和dhcp协议
apple applenet协议
decnet decnet协议
rpc prog [ , vers [ , proc ] ] 对应类型的RPC协议数据
ldap ldap协议
slp slp协议
sctp sctp协议
ospf ospf协议
类型
nofrag 不抓取分片数据包
此外,ether,ip,udp等协议关键字,都可以通过指定对应标志位的方式进行更详细的控制,例如
使用ip[0]指定某一个位的标志。
操作符
在snoop过滤表达式中同样可以使用逻辑表达式来进行控制,对应的功能则与c,perl等语言中的类似。
and 与
or 或 , 或
not or ! 非
实例:#snoop ipaddr 10.1.1.1 and port 23 抓取10.0.0.1:23的数据
#snoop not ipaddr 192.168.0.2 不抓取192.168.0.2的数据
#snoop -d pcn0 dst host Katty and tcp port 23
#snoop -a dhcp
#snoop -o filename 输出到filename文件中
#snoop -i /tem/snoop.log 显示在filename中先前捕获的包
#snoop broadcast 监控广播包
6、强制网卡的工作模式
1)查看网卡支持的参数(默认网卡工作在自动协商模式)
#ndd /dev/eri
name to get/set ? ?
? (read only)
transceiver_inuse (read only)
link_status (read only)
link_speed (read only)
link_mode (read only)
ipg1 (read and write)
ipg2 (read and write)
use_int_xcvr (read and write)
pace_size (read and write)
adv_autoneg_cap (read and write)
adv_100T4_cap (read and write)
adv_100fdx_cap (read and write)
adv_100hdx_cap (read and write)
adv_10fdx_cap (read and write)
adv_10hdx_cap (read and write)
autoneg_cap (read only)
100T4_cap (read only)
100fdx_cap (read only)
100hdx_cap (read only)
10fdx_cap (read only)
10hdx_cap (read only)
lp_autoneg_cap (read only)
lp_100T4_cap (read only)
lp_100fdx_cap (read only)
lp_100hdx_cap (read only)
lp_10fdx_cap (read only)
lp_10hdx_cap (read only)
instance (read and write)
lance_mode (read and write)
ipg0 (read and write)
intr_blank_time (read and write)
intr_blank_packets (read and write)
name to get/set ? 按ctrl+c结束查看:
#ndd -set /dev/eri instance 0 选择查看网卡为eri0
#ndd -get /dev/eri link_status 返回值0代表link down,1代表link up
#ndd -get /dev/eri link_speed 返回值0代表10M,1代表100M
#ndd -get /dev/eri link_mode 返回值0代表half duplex,1代表full duplex
2)查看驱动程序版本
#modinfo |grep -i eri
3)设置网卡工作模式
#ndd -set /dev/eri instance 0 选择查看网卡为eri0
#ndd -set /dev/eri adv_100T4_cap 0 设置100mb
#ndd -set /dev/eri adv_100fdx_cap 1 设置full duplex
4)让网卡模式永久生效,设置下例文件:
/etc/rc2.d/S99hme 添加上述命令
/etc/system 重启生效
#vi /etc/system
set eri:adv_autoeng_cap=0
set eri:adv_100T4_cap=0
set eri:adv_100fdx_cap=1
set eri:adv_100hdx_cap=0
set eri:adv_10fdx_cap=0
set eri:adv_10hdx_cap=0
7、信任主机的设置
涉及以下3个文件:
/etc/passwd
$HOME/.rhosts
/etc/hosts.equiv
四、进程管理
1、ps
实例:ps -ef 查看所有进程
2、prstat
五、磁盘管理
1、df
实例:df -k 查看分区情况
2、du
实例:du -sk /export/home/wangfb 查看目录大小
3、devfsadm
实例:#devfsadm 检查新硬件,在系统不重启时,加载新硬件。该命令执行重新设置进程并且更新/etc/path_to_inst文件和/dev以及/devices目录。在ok时,可以 boot -r 或 reboot --r 加载新硬件。
4、disks 连接磁盘到系统
5、format 分区命令,类似Linux中的fdisk命令,在Solaris10中可以用#smc &图形界面分区
磁盘分区:
0 / 系统文件根目录
1 swap 交换区
2 整个磁盘
3 /var 各种日志、记录文件
5 /opt 任选软件
6 /usr 存放系统库文件和二进制文件
7 /export/home 用户文件和目录
实例:
#format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0d0
/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
1. c0d1
/pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0
2. c2t0d0
/pci@0,0/pci1000,30@10/sd@0,0
Specify disk (enter its number): 2选择2
selecting c2t0d0
[disk formatted]
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
fdisk - run the fdisk program 只有x86的solaris才有这个命令
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
volname - set 8-character volume name
!- execute , then return
quit
format> fdisk输入fdisk
format> fdisk
No fdisk table exists. The default partition for the disk is:a 100% "SOLARIS System" partition
Type "y" to accept the default partition, otherwise type "n" to edit the
partition table.
y
format>p输入p
PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table 当想重新分区时使用
name - name the current table
print - display the current table
label - write partition map and label to the disk
!- execute , then return
quit
partition> 0输入0
Part Tag Flag Cylinders Size Blocks
0 unassigned wm 0 0 (0/0/0) 0Enter partition id tag[unassigned]: root 有多种类型,?查看
Enter partition permission flags[wm]: 可写可挂载
Enter new starting cyl[1]: 开始柱面号
Enter partition size[0b, 0c, 1e, 0.00mb, 0.00gb]: $ 定义大小,$表示剩余的全部分配输入参数,退出
partition> label
输入label
Ready to label disk, continue? y
partition> name
输入name
Enter table name (remember quotes): soft
partition> quit
输入quit
format> save
输入save
Saving new disk and partition definitions
Enter file name["./format.dat"]: /etc/format.dat
format> quit完成分区。查看分区情况
bash-3.00# prtvtoc -h /dev/rdsk/c2t0d0s0
0 2 00 2048 1038336 1040383
2 5 01 0 1040384 1040383
8 1 01 0 2048 2047查看柱面、磁道、扇区比例关系
bash-2.03# prtvtoc /dev/rdsk/c0t0d0s0
* /dev/rdsk/c0t0d0s0 partition map
*
* Dimensions:
* 512 bytes/sector
* 63 sectors/track
* 16 tracks/cylinder
* 1008 sectors/cylinder
* 33416 cylinders
* 33414 accessible cylinders
*
* Flags:
* 1: unmountable
* 10: read-only
*
* First Sector Last
* Partition Tag Flags Sector Count Sector Mount Directory
0 2 00 0 4750704 4750703 /
1 3 01 4750704 303408 5054111
2 5 00 0 33681312 33681311
7 8 00 5054112 28627200 33681311 /export/home创建文件系统
bash-3.00# newfs /dev/rdsk/c2t0d0s0
newfs: 建构新的文件系统 /dev/rdsk/c2t0d0s0: (y/n)? y
/dev/rdsk/c2t0d0s0: 在 507 磁道上,64 扇区的 32 柱面的 1038336 扇区
507.0MB 在 32 柱面群组 (16 c/g, 16.00MB/g, 7680 i/g)
超块 (fsck -F ufs -o b=#) 备份在:
32, 32832, 65632, 98432, 131232, 164032, 196832, 229632, 262432, 295232,
721632, 754432, 787232, 820032, 852832, 885632, 918432, 951232, 984032,
1016832bash-3.00#mkdir /wangfb
bash-3.00# mount /dev/dsk/c2t0d0s0 /wangfb
至此,新加硬盘即可使用。
6、newfs
用法:newfs [ -v ] [ mkfs 选项 ] 原始设备
mkfs-options 为:
-N 不创建文件系统,仅打印出参数
-T 配置文件系统,使之恒久增长,以致超过千兆字节
-s 文件系统大小 (扇区)
-b 文件系统逻辑块大小,以字节为单位。默认8192。
-f 碎块大小
-t 磁道/柱面
-c 柱面/组
-m 最小可用空间 %
-o 最佳化个人首选 ('space' 或 'time')
-r 旋转数/分钟
-i 每个 inode 的字节数
-a 每个柱面的替换数目 默认0
-C maxcontig
-d 旋转延迟
-n 旋转位置数
-S 将已计算超级块的文本版本输出到 stdout
-B 将已计算超级块的二进制版本转储到 stdout实例:# newfs -Nv /dev/rdsk/c0t0d0s0 详细显示了裸设备c0t0d0s0的参数,但是实际上没有创建一个新文件系统
#newfs /dev/rdsk/c0t0d0s0 创建新的文件系统,默认为ufs
7、mount
mount –F FStype [-o rw | ro] /dev/dsk/
: mount-point -F nfs 远程系统共享
-F hsfs CD-ROM文件系统,是只读的
-F pcfs dos/win,在soloris是pcfs,在linux是vfat
# mount -F pcfs /dev/dsk/c0t0d0p0:2 /mnt
-F ufs UNIX文件系统。是Solaris缺省的文件系统solaris 和linux 的mount类型区别
solaris linux
类型参数 -F -t
unix分区类型 ufs ext2,ext3
dos/windows类型 pcfs vfat
cdrom hsfs iso9660
缺省类型 ufs vfat
注意:soloris没有linux ext2类型,linux没有ufs, 即solaris和linux分区无法互访
但solaris 和linux在远程,则可以通过nfs互访。实例:
1)lofiadm -a /export/home/wangfb/sol-8-u7-sparc-v1.iso
mount -F hsfs /dev/lofi/1 /export/home/wangfb/cdrom mount iso文件
2)# mountall 不带任何参数,安装所有列在/etc/vfstab文件中mount at boot中为yes的资源
# mountall -r 只安装vfstab中的远程NFS文件
# mountall -l 只安装vfstab中的本地文件
3)#mount -F hsfs -o ro /dev/dsk/c0t6d0s0 /cdrom
# mount -F pcfs /dev/diskette /pcfs
4)加载u盘
solaris8中:
需要注意的是,现在支持的硬盘文件系统格式只有:ufs,hsfs(用于光盘),pcfs(就是DOS,Windows用的FAT32)和udfs。如果你用的USB设备是FAT或者NTFS,现在还不能使用。
bash-2.03# format -e
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1f,0/ide@d/dad@0,0
1. c1t0d0
/pci@1f,0/usb@c,3/storage@3/disk@0,0
Specify disk (enter its number): 按ctrl+d结束bash-2.03# mount -F pcfs /dev/dsk/c1t0d0s0:c /wangfb
没报错即成功,c1t0d0s0:c中的c指设备c1t0d0s0的第一个分区,你也可以使用c1t0d0s0:1来挂,效果是完全一样的。
solaris10:
在Solaris10中应该可以自动识别,如不能可以使用下列命令,
将U盘插入USB口,再重新启动vold,vold会自动mount usb设备:
# /etc/init.d/volmgt stop
# /etc/init.d/volmgt start#rmformat 查看设备,再mount上即可。
# mount -F pcfs /dev/dsk/c1t0d0s0:c /wangfb
5)/etc/vfstab文件列出所有文件系统(共7列),并且在系统启动时挂接,除了/etc/mnttab和/var/run文件系统。
/etc/mnttab文件是真正的mntfs文件系统,它直接提供了从内核读取关于在本地挂接文件系统的只读信息。
每次文 件系统被挂接,mount命令会增加条目到这个文件,当该条目被删除,文件系统被卸载。
/var/run文件系统是一个tmpfs挂接文件系统,是一个临时操作系统文件库。
/temp 文件系统是一个tmpfs挂接文件系统,是临时用户和软件文件库。
Mount –o ro /dev/dsk/c0t0d0s6 /usr 只读;
Mount –o ro,nosuid /dev/dsk/c0t0d0s7 /export/home 执行setuid程序
Mount –o ro,notime /dev/dsk/c0t0d0s7 /export/home 限制对节点最后一次访问修改。
Mount –o nolargefiles /dev/dsk/c0t0d0s7 /export/home 阻止大文件的挂接。
Mount –o logging /dev/dsk/c0t0d0s7 /export/home
在系统启动时,/usr/sbin/mountall命令读取/etc/vfstab文件。
Mountall:挂接仅仅在/etc/vfstab文件中列出的本地文件系统。
6)Umountall:卸载所有在/etc/mnttab文件上列出的文件系统;
Umountall -l :卸载在/etc/mnttab文件上列出的本地文件系统;
Fuser:列出访问文件系统的所有进程。
Umount -f :强制卸载文件系统。
Fuser –cu mount_point:显示文件系统当前活动进程。
Fuser –ck mount_piont:杀掉访问文件系统的进程。
Fuser –c mount_piont :检查文件系统有没有进程访问
8、prtconf 可以查看硬件信息,不管是否接在系统上。
9、iostat
实例:#iostat -E 查看硬盘的verdor、RPM、capacity、sn信息
10、相关文件
/etc/vfstab 文件对应FS type (默认的挂接类型),块设备文件,raw设备文件或者直接挂接点目录;
/etc/default/fs 对应本地文件系统类型;(如果不能通过/etc/vfstab文件检查出文件类型,就用指定的默认文件
系统类型在/etc/default/fs,或者/etc/dfs/fstype)。
/etc/dfs/fstypes 文件对应远程文件系统类型。
/etc/mnttab mountall调用文件
/etc/format.dat 存储的是分区表
/etc/path_to_inst 文件记录了物理名和实例名,系统仅仅在启动的时候读取。
/etc/acct: 帐号系统配置信息。
/etc/cron.d cron系统配置信息。
/etc/default 各种程序的默认设置信息。
/etc/inet 网络服务的配置文件。
/etc/init.d 启动和停止服务的脚本,在改变系统运行级别时用到。
/etc/lib 动态链接库所需要的,当/usr文件系统不可用的时候。
/etc/lp 为打印机子系统配置信息。
/etc/mail 邮件子系统配置信息。
/etc/nfs nfs服务器日志配置文件。
/etc/opt 可选包配置信息。
/etc/rc#.d 当进入或离开特定运行级别的脚本。
/etc/skel 为新的用户帐号的默认shell初始化文件。
六、卷管理
====