首页 文章 精选 留言 我的

精选列表

搜索[运维安全中心(堡垒机)],共10000篇文章
优秀的个人博客,低调大师

马哥运维学习作业(四)

1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 1 2 3 4 5 6 7 8 9 10 11 12 [root@c6-1~] #cp-r/etc/skel//home/tuser1#使用cp-r递归复制文件夹内容到/home/tuser1下 [root@c6-1~] #ls-ld/home/tuser1/#查看/home下已有tuser1文件夹并看到默认权限为755 drwxr-xr-x.2rootroot4096Aug2517:47 /home/tuser1/ [root@c6-1~] #chmod-R700/home/tuser1/#使用chmod-R参数把/home/tuser1及其内部文件的权限都改为700。不使用-R递归参数,则只能改tuser1的权限 [root@c6-1~] #ll-d/home/tuser1/&&ll-a/home/tuser1/#同时验证tuser1和其内部文件权限都已改为属组和其它用户没有任何访问权限 drwx------.2rootroot4096Aug2517:47 /home/tuser1/ #文件夹权限 total20 drwx------.2rootroot4096Aug2517:47. drwxr-xr-x.5rootroot4096Aug2517:47.. -rwx------.1rootroot18Aug2517:47.bash_logout #下面是其内部文件的权限 -rwx------.1rootroot176Aug2517:47.bash_profile -rwx------.1rootroot124Aug2517:47.bashrc 图示: 2、编辑/etc/group文件,添加组hadoop。 方法一:手动vim编辑 1 2 3 4 5 [root@c6-1~] #vim/etc/group#使用vim编辑器打开/etc/group后,在末尾插入如下内容 ..........以上显示略 hadoop:x:2016: [root@c6-1~] #tail-1/etc/group#查看/etc/group最后一行已插入hadoop:x:2016: hadoop:x:2016: 注:使用vim编辑器打开/etc/group文件,按G(跳到行尾)-按yy(复制该行)-按p(粘帖该行到下一行)-按i(进入编辑状态),最后把第1,3列内容改为hadoop:x:2016: 注:也可直接打开vim编辑器到末尾输入hadoop:x:2016:保存退出,上面的操作是个人习惯,替换字符可减少错误的概率。 图示: 方法二:非交互式插入 1 2 3 [root@c6-2~] #echo"hadoop:x:2018">>/etc/group#非交互式插入内容 [root@c6-2~] #tail-1/etc/group#查看/etc/group最后一行已插入 hadoop:x:2018 图示: 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 1 2 3 4 5 [root@c6-1~] #vim/etc/passwd#按第2题的操作方法插入如下内容 ........以上显示略 hadoop:x:2016:2016:: /home/hadoop : /bin/bash [root@c6-1~] #idhadoop#idhadoop查看用户信息 uid=2016(hadoop)gid=2016(hadoop) groups =2016(hadoop) 图示: 4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。 1 2 3 4 5 6 7 8 9 10 [root@c6-2~] #cp-r/etc/skel/home/hadoop#复制/etc/skel目录为/home/hadoop [root@c6-2~] #ll/home/#已复制完成,hadoop默认权限为755 total8 drwxr-xr-x.2rootroot4096Aug2421:06hadoop drwx------.4zdwzdw4096Jul2023:33zdw [root@c6-2~] #chmod700/home/hadoop/#按要求把hadoop目录改为属组和其它用户没有任何访问权限 [root@c6-2~] #ll/home/#再次查看,hadoop权限已设置好 total8 drwx------.2rootroot4096Aug2421:06hadoop drwx------.4zdwzdw4096Jul2023:33zdw 图示: 5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。 1 2 3 4 5 [root@c6-2~] #chown-Rhadoop:hadoop/home/hadoop#使用chown-R命令把/home/hadoop目录及其内部所有文件属主、属组改为hadoop [root@c6-2~] #ll/home/#属主、属组已从原来的root,改为hadoop total8 drwx------.2hadoophadoop4096Aug2421:06hadoop drwx------.4zdwzdw4096Jul2023:33zdw 图示: 6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式; 方法一: 1 2 3 4 5 6 7 8 [root@C7-1~] #grep^[sS]/proc/meminfo#^匹配以sS开头,[]设置范围 SwapCached:0kB SwapTotal:2097148kB SwapFree:2097148kB Shmem:8628kB Slab:55796kB SReclaimable:23544kB SUnreclaim:32252kB 方法二: 1 2 3 4 5 6 7 8 [root@C7-1~] #grep-i'^s'/proc/meminfo#使用-i参数忽略大小写 SwapCached:0kB SwapTotal:2097148kB SwapFree:2097148kB Shmem:8628kB Slab:55796kB SReclaimable:23544kB SUnreclaim:32252kB 图示: 7、显示/etc/passw d文件中其默认shell为非/sbin/nologin的用户; 1 [root@C7-1~] #grep-v"/sbin/nologin"/etc/passwd|cut-d:-f1 注:使用-v参数反向查找,cut -d: -f1指定分隔符为冒号,显示第一列用户名列 图示: 8、显示/etc/passw d文件中其默认shell为/bin/bash的用户; 方法一: 1 2 3 4 [root@C7-1~] #grep"/bin/bash$"/etc/passwd|cut-d:-f1 root zdw hadoop 注:$代表以/bin/bash结尾,适用于要搜索末尾的关键字后面有空格的,/bin/bash后面没有空格,直接使用下面的方法二即可。 方法二: 1 2 3 4 [root@C7-1~] #grep"/bin/bash"/etc/passwd|cut-d:-f1 root zdw hadoop 注:接上,cut -d: -f1指定分隔符为冒号,显示第一列用户名列,如果要看得更清楚,使用-f1,7把bash也显示出来 图示: 9、找出/etc/passwd文件中的一位数或两位数; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [root@C7-1~] #grep"\<[0-9]\{1,2\}\>"/etc/passwd root:x:0:0:root: /root : /bin/bash bin:x:1:1:bin: /bin : /sbin/nologin daemon:x:2:2:daemon: /sbin : /sbin/nologin adm:x:3:4:adm: /var/adm : /sbin/nologin lp:x:4:7:lp: /var/spool/lpd : /sbin/nologin sync :x:5:0: sync : /sbin : /bin/sync shutdown :x:6:0: shutdown : /sbin : /sbin/shutdown halt:x:7:0:halt: /sbin : /sbin/halt mail:x:8:12:mail: /var/spool/mail : /sbin/nologin operator:x:11:0:operator: /root : /sbin/nologin games:x:12:100:games: /usr/games : /sbin/nologin ftp :x:14:50:FTPUser: /var/ftp : /sbin/nologin nobody:x:99:99:Nobody:/: /sbin/nologin dbus:x:81:81:Systemmessagebus:/: /sbin/nologin tss:x:59:59:Accountusedbythetrouserspackagetosandboxthetcsddaemon: /dev/null : /sbin/nologin postfix:x:89:89:: /var/spool/postfix : /sbin/nologin sshd:x:74:74:Privilege-separatedSSH: /var/empty/sshd : /sbin/nologin 注:\<[0-9]\{1,2\}\>指的是第一位是数字,\{1,2\}前面的数字出现至少1次,最多2次,\<,\>是词首和词尾锚定,限定了数字只能是1位数或二位数,就不会出现3位或4位的数字。如果不加上锚定,就会把3位、4位数字也显示出来。注:[0-9]和[[:digit:]]代表的意思一样。 图示: 10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; 方法一: 1 2 3 4 [root@c6-1~] #grep"^[[:space:]]\{1,\}"/boot/grub/grub.conf#\{1,\}是代表前面的字符至少出现一次 root(hd0,0) kernel /vmlinuz-2 .6.32-431.el6.x86_64roroot= /dev/mapper/VolGroup-lv_root rd_NO_LUKSLANG=en_US.UTF-8rd_NO_MDrd_LVM_LV=VolGroup /lv_swap SYSFONT=latarcyrheb-sun16crashkernel=autord_LVM_LV=VolGroup /lv_root KEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquiet initrd /initramfs-2 .6.32-431.el6.x86_64.img 方法二: 1 2 3 4 [root@c6-1~] #grep-E"^[[:space:]]+"/boot/grub/grub.conf#\+也是代表前面的字符至少出现一次,所以二个显示出的结果都一样 root(hd0,0) kernel /vmlinuz-2 .6.32-431.el6.x86_64roroot= /dev/mapper/VolGroup-lv_root rd_NO_LUKSLANG=en_US.UTF-8rd_NO_MDrd_LVM_LV=VolGroup /lv_swap SYSFONT=latarcyrheb-sun16crashkernel=autord_LVM_LV=VolGroup /lv_root KEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquiet initrd /initramfs-2 .6.32-431.el6.x86_64.img 图示: 11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; 方法一: 1 2 3 4 5 6 7 [root@ cat ~] #grep"^#[[:space:]]\+[^[:space:]]\+"/etc/rc.d/rc.sysinit #/etc/rc.d/rc.sysinit-runonceatboottime #TakeninpartfromMiquelvanSmoorenburg'sbcheckrc. #CheckSELinuxstatus #Printatextbanner. #Onlyreadthisonce. ....以下显示略 注:[[:space:]]+表示至少一个空白字符,[^[:space:]]+表示至少一个非空白字符 方法二: 1 2 3 4 5 6 7 8 [root@ cat ~] #grep-E^#[[:space:]]\{1\}[^[:space:]]\{1\}/etc/rc.d/rc.sysinit #/etc/rc.d/rc.sysinit-runonceatboottime #TakeninpartfromMiquelvanSmoorenburg'sbcheckrc. #CheckSELinuxstatus #Printatextbanner. #Onlyreadthisonce. #Initializehardware ....以下显示略 注:使用-E支持扩展的正则表达式,[[:space:]]\{1\}表示至少一个空白字符,[^[:space:]]\{1\}表示至少一个非空白字符 图示: 12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行; 方法一: 1 2 3 4 5 [root@C7-1~] #netstat-tan|grep'LISTEN[[:space:]]*$'#*$以空白字符任意次为结尾 tcp000.0.0.0:220.0.0.0:*LISTEN tcp00127.0.0.1:250.0.0.0:*LISTEN tcp600:::22:::*LISTEN tcp600::1:25:::*LISTEN 方法二: 1 2 3 4 5 [root@C7-1~] #netstat-tan|grep"\<LISTEN\>[[:space:]]*$"#\<LISTEN\>表示词首词尾锚定 tcp000.0.0.0:220.0.0.0:*LISTEN tcp00127.0.0.1:250.0.0.0:*LISTEN tcp600:::22:::*LISTEN tcp600::1:25:::*LISTEN 方法三: 1 2 3 4 5 [root@C7-1~] #netstat-tan|grep'LISTEN[[:space:]]\+$'#\+$以空白字符至少1次为结尾 tcp000.0.0.0:220.0.0.0:*LISTEN tcp00127.0.0.1:250.0.0.0:*LISTEN tcp600:::22:::*LISTEN tcp600::1:25:::*LISTEN 图示: 13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息; 1 2 3 4 5 6 7 8 9 10 [root@c6-1~] #useraddbash#新建用户bash [root@c6-1~] #useraddtestbash#新建用户testbash [root@c6-1~] #useraddbasher#新建用户basher [root@c6-1~] #useradd-s/sbin/nologinnologin#新建用户nologin使用-s指定其shell为/sbin/nologin [root@c6-1~] #grep"^\([[:alnum:]]\+\>\).*\1$"/etc/passwd#注释在最后有详细说明 sync :x:5:0: sync : /sbin : /bin/sync shutdown :x:6:0: shutdown : /sbin : /sbin/shutdown halt:x:7:0:halt: /sbin : /sbin/halt bash :x:2017:2017:: /home/bash : /bin/bash nologin:x:2020:2020:: /home/nologin : /sbin/nologin 注:"^\([[:alnum:]]\+\>\).*\1$"的意思是做分组中间可出现任意内容,结尾匹配行首。 详细解答:\(和\)把里面的多个字符分成一组,当作一个整体进行处理,[[:alnum:]]\+代表以一个数字或字母开头后面可以跟任意位数的字符,\>表示这个字符的结束。.*表示中间可出现任意长度字符。\1$表示结尾匹配行首。 图示: 本文转自cix123 51CTO博客,原文链接:http://blog.51cto.com/zhaodongwei/1841892,如需转载请自行联系原作者

优秀的个人博客,低调大师

马哥运维学习作业(三)

1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 1 2 3 4 5 6 7 8 [root@c6-1~] #who rootpts /0 2016-08-2201:40(10.3.20.100) zdwpts /1 2016-08-2201:45(10.3.20.100) zdwpts /2 2016-08-2201:45(10.3.20.100) rootpts /3 2016-08-2201:46(10.3.20.100) [root@c6-1~] #who|cut-d''-f1|sort-u root zdw 2、取出最后登录到当前系统的用户的相关信息。 1 2 [root@c6-1~] #last|head-1 rootpts /3 10.3.20.100MonAug2201:46stilllogged in 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 1 2 [root@c6-1~] #cat/etc/passwd|cut-d:-f7|sort|uniq-c|sort-n|tail-1 15 /sbin/nologin 4、将/etc/passwd 中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。 1 2 3 4 5 6 7 8 9 10 11 12 [root@c6-1~] #sort-t:-k3-n/etc/passwd|tail-10|tr"a-z""A-Z">/tmp/maxusers.txt [root@c6-1~] #cat/tmp/maxusers.txt OPERATOR:X:11:0:OPERATOR: /ROOT : /SBIN/NOLOGIN GAMES:X:12:100:GAMES: /USR/GAMES : /SBIN/NOLOGIN GOPHER:X:13:30:GOPHER: /VAR/GOPHER : /SBIN/NOLOGIN FTP:X:14:50:FTPUSER: /VAR/FTP : /SBIN/NOLOGIN VCSA:X:69:69:VIRTUALCONSOLEMEMORYOWNER: /DEV : /SBIN/NOLOGIN SSHD:X:74:74:PRIVILEGE-SEPARATEDSSH: /VAR/EMPTY/SSHD : /SBIN/NOLOGIN POSTFIX:X:89:89:: /VAR/SPOOL/POSTFIX : /SBIN/NOLOGIN NOBODY:X:99:99:NOBODY:/: /SBIN/NOLOGIN SASLAUTH:X:499:76: "SASLAUTHDUSER" : /VAR/EMPTY/SASLAUTH : /SBIN/NOLOGIN ZDW:X:500:500:: /HOME/ZDW : /BIN/BASH 5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。 1 2 [root@c6-1~] #ifconfig|grepinet|cut-d:-f2|cut-d''-f1|head-1 10.3.20.80 6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [root@c6-1~] #ls/etc/*.conf|tr"a-z""A-Z">/tmp/etc.conf [root@c6-1~] #cat/tmp/etc.conf /ETC/DRACUT .CONF /ETC/GAI .CONF /ETC/GRUB .CONF /ETC/HOST .CONF /ETC/KRB5 .CONF /ETC/LD .SO.CONF /ETC/LIBAUDIT .CONF /ETC/LIBUSER .CONF /ETC/LOGROTATE .CONF /ETC/MKE2FS .CONF /ETC/NSSWITCH .CONF /ETC/RESOLV .CONF /ETC/RSYSLOG .CONF /ETC/SESTATUS .CONF /ETC/SUDO .CONF /ETC/SUDO-LDAP .CONF /ETC/SYSCTL .CONF /ETC/YUM .CONF 7、显示/var目录下一级子目录或文件的总个数。 1 2 [root@c6-1~] #ls/var/|wc-l 16 8、取出/etc/group文件中第三个字段数值最小的10个组的名字。 1 2 3 4 5 6 7 8 9 10 11 [root@c6-1~] #sort-t:-k3-n/etc/group|head-10|cut-d:-f1 root bin daemon sys adm tty disk lp mem kmem 9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [root@c6-1~] #cat/etc/{fstab,issue}>/tmp/etc.test [root@c6-1~] #cat/tmp/etc.test # #/etc/fstab #CreatedbyanacondaonMonFeb2901:31:342016 # #Accessiblefilesystems,byreference,aremaintainedunder'/dev/disk' #Seemanpagesfstab(5),findfs(8),mount(8)and/orblkid(8)formoreinfo # /dev/mapper/VolGroup-lv_root /ext4defaults11 UUID=e880d9c0-5a7e-4e59-a49b-06488a6e4208 /boot ext4defaults12 /dev/mapper/VolGroup-lv_swap swapswapdefaults00 tmpfs /dev/shm tmpfsdefaults00 devpts /dev/pts devptsgid=5,mode=62000 sysfs /sys sysfsdefaults00 proc /proc procdefaults00 CentOSrelease6.5(Final) Kernel\ronan\m 10、请总结描述用户和组管理类命令的使用方法并完成以下练习: (1)、创建组distro,其GID为2016; 1 2 3 [root@c6-1~] #groupadd-g2016distro [root@c6-1~] #tail-1/etc/group distro:x:2016: (2)、创建用户mandriva, 其ID号为1005;基本组为distro; 1 2 3 [root@c6-1~] #useradd-u1005-gdistromandriva [root@c6-1~] #idmandriva uid=1005(mandriva)gid=2016(distro) groups =2016(distro) (3)、创建用户mageia,其ID号为1100,家目录为/home/linux; 1 2 3 [root@c6-1~] #useradd-u1100-d/home/linuxmageia [root@c6-1~] #tail-1/etc/passwd mageia:x:1100:1100:: /home/linux : /bin/bash (4)、给用户mageia添加密码,密码为mageedu; 1 2 3 [root@c6-1~] #echo"password"|passwd--stdinmageia Changingpassword for usermageia. passwd :allauthenticationtokensupdatedsuccessfully. (5)、删除mandriva,但保留其家目录; 1 2 3 4 5 [root@c6-1~] #userdelmandriva [root@c6-1~] #ls/home/ linuxmandrivazdw [root@c6-1~] #idmandriva id :mandriva:Nosuchuser (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin; 1 2 3 4 [root@c6-1~] #groupaddpeguin [root@c6-1~] #useradd-u2002-gdistro-Gpeguinslackware [root@c6-1~] #idslackware uid=2002(slackware)gid=2016(distro) groups =2016(distro),2017(peguin) (7)、修改slackware的默认shell为/bin/tcsh; 1 2 3 [root@c6-1~] #usermod-s/bin/tcshslackware [root@c6-1~] #grep'slackware'/etc/passwd slackware:x:2002:2016:: /home/slackware : /bin/tcsh (8)、为用户slackware新增附加组admins; 1 2 3 4 [root@c6-1~] #groupaddadmins [root@c6-1~] #usermod-a-Gadminsslackware [root@c6-1~] #idslackware uid=2002(slackware)gid=2016(distro) groups =2016(distro),2017(peguin),2018(admins) (9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@c6-1~] #echo"123456"|passwd--stdinslackware Changingpassword for userslackware. passwd :allauthenticationtokensupdatedsuccessfully. [root@c6-1~] #passwd-n3-x180-w3slackware Adjustingagingdata for userslackware. passwd :Success [root@c6-1~] #chage-lslackware Lastpasswordchange:Aug21,2016 Passwordexpires:Feb17,2017 Passwordinactive:never Accountexpires:never Minimumnumberofdaysbetweenpasswordchange:3 Maximumnumberofdaysbetweenpasswordchange:180 Numberofdaysofwarningbeforepasswordexpires:3 (10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova; 1 2 3 4 5 [root@c6-1~] #groupaddclouds [root@c6-1~] #groupaddnova [root@c6-1~] #useradd-u3003-gclouds-Gpeguin,novaopenstack [root@c6-1~] #idopenstack uid=3003(openstack)gid=2019(clouds) groups =2019(clouds),2017(peguin),2020(nova) (11)、添加系统用户mysql,要求其shell为/sbin/nologin; 1 2 3 [root@c6-1~] #useradd-s/sbin/nologinmysql [root@c6-1~] #grep'mysql'/etc/passwd mysql:x:3004:3004:: /home/mysql : /sbin/nologin (12)、使用echo命令,非交互式为openstack添加密码。 1 2 3 [root@c6-1~] #echo"password"|passwd--stdinopenstack Changingpassword for useropenstack. passwd :allauthenticationtokensupdatedsuccessfully. 本文转自cix123 51CTO博客,原文链接:http://blog.51cto.com/zhaodongwei/1840876,如需转载请自行联系原作者

优秀的个人博客,低调大师

马哥运维学习作业(五)

1、显示当前系统上root、fedora或user1用户的默认shell; 1 2 3 4 5 6 [root@C7-1~] #useraddfedora#新建用户fedora [root@C7-1~] #useradduser1#新建用户user1 [root@C7-1~] #egrep'^(root|fedora|user1)\>'/etc/passwd|cut-d:-f1,7#由于(root|fedora|user1)是扩展表达式,所以要使用egrep或grep-E root: /bin/bash fedora: /bin/bash user1: /bin/bash 注:^(root|fedora|user1)\>表示以这三个用户开头的行。cut -d: -f1,7表示以:为分隔符,取第1和第7字段,这二个字段是用户名和shell的。 图示: 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(); 1 2 3 4 [root@C7-1~] #egrep-o"^[_[:alpha:]]+\(\)"/etc/rc.d/init.d/functions checkpid() __pids_var_run() ....略 注:根据题目要求,文件中__pids_var_run()也是符合要求的,^[_[:alpha:]]+中,_不能省掉,代表以_或大小写字母开头,+表示前面字符可以出现一次或多次,\(\)是使用转义符来代表小括号() 图示: 3、使用echo命令输出一个绝对路径,使用grep取出其基名; 1 2 3 4 5 6 [root@ cat ~] #echo"/mnt/sdc"|grep-E"[^/]+$"#行尾的字符串[^/]除了/斜线的任意内容,+代表这个/至少出现1次 /mnt/sdc [root@ cat ~] #echo"/mnt/sdc/"|grep-E"[^/]+/?$"#如果sdc后还带一个/,就用/?表示可以出现1次或不出现 /mnt/sdc/ [root@ cat ~] #echo"/mnt/sdc"|grep-E-o"[^/]+/?$"|cut-d"/"-f1#-o只显示匹配的,以/作为分隔符,取第1字段,取出sdc sdc 扩展:取出其路径名 1 2 [root@ cat ~] #echo"/mnt/sdc/test"|grep-o"/.*/"#取出路径名,"/.*/"表示以/开头后面可出现任意长度任意字符,以/结尾,这样就符合路径名的规则。 /mnt/sdc/ 图示: 4、找出ifconfig命令结果中的1-255之间数字; 1 2 3 4 5 6 [root@C7-1~] #ifconfig|grep-E-o"\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>" 192 168 2 127 ...略 图示: 5、挑战题:写一个模式,能匹配合理的IP地址; 1 2 3 4 5 6 7 8 [root@ cat ~] #catip#手动写了几个IP地址,有对有错,用下面的条件来筛选 980.168.88.66 192.168.88.255 253.252.251.0 192.168.2.60 255.0.0.690 [root@ cat ~] #grep-E"\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-3][0-9])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])\>"ip 192.168.2.60 6、挑战题:写一个模式,能匹配出所有的邮件地址; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@note1~] #cat/tmp/mail#编写了6个邮箱地址,其中4、5不符合邮箱命名规范 [root@c7-1~] #catmail 342076957@qq.com zhaodongwei@zhaodongwei.cn dongwei_zhao@cmdmedia.cn _dongwei@cmd.cn liupeng@_dfdfd.com zjj.d@baidu.com [root@c7-1~] #egrep-o"[[:alnum:]]+[[:punct:]]*[[:alnum:]]*@[[:alnum:]]+.[[:alnum:]]*.?[[:alnum:]]*"mail 342076957@qq.com zhaodongwei@zhaodongwei.cn dongwei_zhao@cmdmedia.cn dongwei@cmd.cn zjj.d@baidu.com 注:首先,咱们要了解邮箱地址的构成,简单来说,是由:用户名@域名 构成。用户名命名要求:可使用字母、数字、下划线,开头可以使用数字或字母(QQ邮箱就是数字开头)域名命名要求:可使用字母、数字、下划线组成,不能使用特殊字母开头等详细的介绍请看下图:分别是新浪、163邮箱命令介绍。阿里域名的命名介绍 图示: 7、查找/var目录下属主为root,且属组为mail的所有文件或目录; 1 2 3 4 [root@c7-1~] #find/var-userroot-groupmail /var/spool/mail [root@c7-1~] #find/var-userroot-groupmail-ls#-ls是将查找到的文件显示出来 1343212080drwxrwxr-x2rootmail167月3105:06 /var/spool/mail 图示: 8、查找当前系统上没有属主或属组的文件; 1 2 3 4 5 [root@C7-1~] #find/-nouser-o-nogroup-ls#用-nouser-o-nogroup表示没有属 find :‘ /proc/16897/task/16897/fd/6 ’:没有那个文件或目录 find :‘ /proc/16897/task/16897/fdinfo/6 ’:没有那个文件或目录 find :‘ /proc/16897/fd/6 ’:没有那个文件或目录 find :‘ /proc/16897/fdinfo/6 ’:没有那个文件或目录 进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 为了方便演示,创建了一个user1的用户,并用user1创建了一个文件,然后删除user1 [user1@C7-1~]$ touch /tmp/b #在user1用户下创建/tmp/b文件 [user1@C7-1~]$ll /tmp/b #查看属主和属组,属于user1 -rw-rw-r--.1user1user109月521:24 /tmp/b [user1@C7-1~]$登出 [root@C7-1~] #登出 [root@C7-1 test ] #登出 [root@C7-1~] #登出 Lastlogin:MonSep521:23:452016 [root@C7-1~] #userdeluser1#退出后,删除user1用户 [root@C7-1~] #iduser1#user1用户已删除 id :user1:nosuchuser [root@C7-1~] #ls-l/tmp/#b文件属主和属组已变为数字 总用量4 -rw-r--r--.1rootroot289月201:2712 -rw-rw-r--.12023202309月521:24b 方法一: [root@note1~] #find/-nouser-a-nogroup-a-atime-3#-atime-3表示3天没有访问过的文件,查找到了b和user1用户下的文件 find :‘ /proc/16901/task/16901/fd/6 ’:没有那个文件或目录 find :‘ /proc/16901/task/16901/fdinfo/6 ’:没有那个文件或目录 find :‘ /proc/16901/fd/6 ’:没有那个文件或目录 find :‘ /proc/16901/fdinfo/6 ’:没有那个文件或目录 /tmp/b /home/tom /home/user1 /home/user1/ .bash_logout /home/user1/ .bash_profile /home/user1/ .bashrc /home/user1/ .bash_history 方法二: [root@C7-1~] #find/\(-nouser-o-nogroup\)-a-atime-3#也可以这样用 find :‘ /proc/16901/task/16901/fd/6 ’:没有那个文件或目录 find :‘ /proc/16901/task/16901/fdinfo/6 ’:没有那个文件或目录 find :‘ /proc/16901/fd/6 ’:没有那个文件或目录 find :‘ /proc/16901/fdinfo/6 ’:没有那个文件或目录 /tmp/b /home/tom /home/user1 /home/user1/ .bash_logout /home/user1/ .bash_profile /home/user1/ .bashrc /home/user1/ .bash_history 图示: 9、查找/etc目录下所有用户都有写权限的文件; 1 2 3 4 5 [root@c7-1~] #find/etc-perm-222-ls#所有用户都有写权限用-perm-222表示 335545640lrwxrwxrwx1rootroot179月500:00 /etc/mtab -> /proc/self/mounts 336897120lrwxrwxrwx1rootroot499月500:01 /etc/pki/tls/certs/ca-bundle .crt-> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle .pem 336897130lrwxrwxrwx1rootroot559月500:01 /etc/pki/tls/certs/ca-bundle .trust.crt-> /etc/pki/ca-trust/extracted/openssl/ca-bundle .trust.crt ...略 10、查找/etc目录下大于1M,且类型为普通文件的所有文件; 1 2 3 [root@c7-1~] #find/etc-size+1M-typef-ls#大于1MB用-size+1M表示 342884416824-r--r--r--1rootroot69848329月500:05 /etc/udev/hwdb .bin 677968023772-rw-r--r--1rootroot385892411月212015 /etc/selinux/targeted/policy/policy .29 11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件; 1 2 [root@c7-1~] #find/etc/init.d-perm-113-ls#用户都有执行,其它用户有写权限用-perm-113表示 336884510lrwxrwxrwx1rootroot119月500:01 /etc/init .d->rc.d /init .d 12、查找/usr目录下不属于root、bin或hadoop的文件; 1 2 3 4 [root@c7-1~] #find/usr-not\(-userroot-o-userbin-o-userhadoop\)-ls#-not放在()外面,对里面的内容,即不也不又不,做条件 674247010drwx------2polkitdroot66月102014 /usr/share/polkit-1/rules .d [root@c7-1~] #find/usr!\(-userroot-o-userbin-o-userhadoop\)-ls#-not和!是同样的意思 674247010drwx------2polkitdroot66月102014 /usr/share/polkit-1/rules .d 13、查找/etc/目录下至少有一类用户没有写权限的文件; 1 2 3 4 [root@c7-1~] #find/etc-not-perm-222-ls#至少一类用户没有写权限用-perm-222表示 3355456112drwxr-xr-x76rootroot81929月504:04 /etc 335545624-rw-r--r--1rootroot4659月500:00 /etc/fstab ....略 14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件; 1 2 3 4 5 6 7 8 9 10 [root@note1~] #ll/etc/test123#默认没有满足条件的文件,所以先在/etc下创建一个test123的文件,查看其属主和属组都是root -rw-r--r--1rootroot0Sep116:00 /etc/test123 [root@note1~] #useraddtest#创建一个test用户,用来把上面文件属主属组都改为test [root@note1~] #chowntest.test/etc/test123#把/etc下的test123改为属主属组root [root@note1~] #ll/etc/test123#已改为root -rw-r--r--1 test test 0Sep116:00 /etc/test123 [root@note1~] #find/etc-mtime-7-a-not-userroot-not-userhadoop#根据题目要求查看,-mtime-7表示7天没修改过 /etc/test123 [root@note1~] #find/etc-mtime-7-not\(-userroot-o-userhadoop\)-ls#-not放外面对里面来做判断,不属于root和hadoop。注意-not放外面要把()里的-a换成-o 3974950-rw-r--r--1 test test 0Sep116:00 /etc/test123 图示: 本文转自cix123 51CTO博客,原文链接:http://blog.51cto.com/zhaodongwei/1845603,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册