第五周作业


本周作业内容:

1、显示当前系统上root、fedora或user1用户的默认shell;

[root@SeaFile linux]# grep -E "^root|^fedora|^user1" /etc/passwd

root:x:0:0:root:/root:/bin/bash

user1:x:3010:3010::/home/user1:/bin/bash

fedora:x:3011:3011::/home/fedora:/bin/bash

[root@SeaFile linux]#


2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();

[root@SeaFile bin]# cat /etc/rc.d/init.d/functions  | grep [[:alnum:]]*\(\)

systemctl_redirect () {

checkpid() {

__pids_var_run() {

__pids_pidof() {

daemon() {

killproc() {

pidfileofproc() {

pidofproc() {

status() {

echo_success() {

echo_failure() {

echo_passed() {

echo_warning() {

update_boot_stage() {

success() {

failure() {

passed() {

warning() {

action() {

strstr() {

is_ignored_file() {

is_true() {

is_false() {

apply_sysctl() {

[root@SeaFile bin]#


3、使用echo命令输出一个绝对路径,使用grep取出其基名;


[root@SeaFile bin]# echo "/etc/passwd" | grep -Eo "[^/]+/?$"

passwd

[root@SeaFile bin]#


    扩展:取出其路径名

[root@SeaFile bin]# echo "/etc/rc.d/rc3.d/init.config" | grep -Eo "/.*/"

/etc/rc.d/rc3.d/

[root@SeaFile bin]#


4、找出ifconfig命令结果中的1-255之间数字;

[root@SeaFile bin]# ifconfig|egrep "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"

        inet 172.16.15.205  netmask 255.255.255.0  broadcast 172.16.15.255

        inet6 fe80::20c:29ff:fe29:994b  prefixlen 64  scopeid 0x20

        ether 00:0c:29:29:99:4b  txqueuelen 1000  (Ethernet)

        RX packets 120978  bytes 16648497 (15.8 MiB)

        TX packets 33095  bytes 5116555 (4.8 MiB)

lo: flags=73  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10

        RX packets 851  bytes 90184 (88.0 KiB)

        TX packets 851  bytes 90184 (88.0 KiB)

        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

        ether 52:54:00:b3:57:af  txqueuelen 0  (Ethernet)

[root@SeaFile bin]#




5、挑战题:写一个模式,能匹配合理的IP地址;

[[root@SeaFile bin]# ifconfig|grep -Eo "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>"

172.16.15.205

127.0.0.1

192.168.122.1

[root@SeaFile bin]#



6、挑战题:写一个模式,能匹配出所有的邮件地址;

[root@SeaFile tmp]# grep -E  "[[:alnum:]]\@[[:alnum:]]+(.com.cn|.com|.cn)$" mail.txt

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[root@SeaFile tmp]#

 不能匹配出vip.qq.com 这样的邮箱地址。还需要继续完善



7、查找/var目录下属主为root,且属组为mail的所有文件或目录;

[root@SeaFile linux]# find /var/ -user root -group mail  -ls

33557597    4 drwxrwxr-x   2 root     mail         4096 9月  4 21:11 /var/spool/mail

[root@SeaFile linux]#


8、查找当前系统上没有属主或属组的文件;

[root@SeaFile /]# find / -type f -nouser -nogroup

find: ‘/proc/82816/task/82816/fdinfo/6’: 没有那个文件或目录

find: ‘/proc/82816/fdinfo/6’: 没有那个文件或目录

/tmp/tan/test.txt

/home/tan/.bash_logout

/home/tan/.bash_profile

/home/tan/.bashrc

/home/tan/.cache/abrt/lastnotification

/home/tan/.bash_history

[root@SeaFile /]#


     进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;


   

[root@SeaFile /]# find / -type f -nouser -nogroup -atime -3

find: ‘/proc/82818/task/82818/fdinfo/6’: 没有那个文件或目录

find: ‘/proc/82818/fdinfo/6’: 没有那个文件或目录

/tmp/tan/test.txt

/home/tan/.bash_logout

/home/tan/.bash_profile

/home/tan/.bashrc

/home/tan/.cache/abrt/lastnotification

/home/tan/.bash_history

[root@SeaFile /]#


9、查找/etc目录下所有用户都有写权限的文件;

[root@SeaFile /]# find /etc/ -perm /o+w -ls

33554564    0 lrwxrwxrwx   1 root     root           17 5月 18  2015 /etc/mtab -> /proc/self/mounts


10、查找/etc目录下大于1M,且类型为普通文件的所有文件;

[root@SeaFile /]# find /etc/ -type f -size +1M -exec du -h '{}' \;

6.1M    /etc/udev/hwdb.bin

3.7M    /etc/selinux/targeted/policy/policy.29

1.4M    /etc/gconf/schemas/ekiga.schemas

1.4M    /etc/brltty/zh-tw.ctb

[root@SeaFile /]#



11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;


[root@SeaFile /]# ll /etc/init.d/

总用量 44

-rw-r--r--. 1 root  root  13430 1月  15 2015 functions

-rwxr-xr-x. 1 mysql mysql 10917 5月  30 2015 mysqld_3306

-rwxr-xr-x. 1 root  root   2989 1月  15 2015 netconsole

-rwxr-xr-x. 1 root  root   6470 1月  15 2015 network

-rw-r--r--. 1 root  root   1160 3月   6 2015 README

[root@SeaFile /]# find /etc/init.d/ -type f  -perm -a+x -perm /o+w  -ls

[root@SeaFile /]#

该目录下没有文件符合题目所要求。


12、查找/usr目录下不属于root、bin或hadoop的文件;


39903873    4 -rw-r--r--   1 mysql    mysql         567 3月 26  2015 /usr/local/mysql-5.6.24/mysql-test/extra/binlog_tests/implicit.test

39903874    8 -rw-r--r--   1 mysql    mysql        5994 3月 26  2015 /usr/local/mysql-5.6.24/mysql-test/extra/binlog_tests/blackhole.test

[root@SeaFile /]# find  /usr/ ! -user root ! -user hadoop ! -user bin -ls


13、查找/etc/目录下至少有一类用户没有写权限的文件;


3097963    8 -rwxr-xr-x   1 root     root         5767 6月 10  2014 /etc/smartmontools/smartd_warning.sh

73426251    0 drwxr-xr-x   2 root     root           67 5月 18  2015 /etc/tuned

73426330    4 -rw-r--r--   1 root     root           14 9月  3 20:45 /etc/tuned/active_profile

73426254    4 -rw-r--r--   1 root     root          779 10月 17  2014 /etc/tuned/bootcmdline

73426255    4 -rw-r--r--   1 root     root          387 3月  6  2015 /etc/tuned/tuned-main.conf

36938140    0 drwxr-x---   2 root     root            6 3月  6  2015 /etc/sudoers.d

[root@SeaFile /]# find /etc/ -perm /u-w,g-w,o-w  -ls

14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;

[root@SeaFile /]# find /etc/ -ctime -7   ! -user root ! -user hadoop   -ls

[root@SeaFile /]#

没有符合的文件。