第五周作业
本周作业内容:
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
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
[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 /]#
没有符合的文件。