码迷,mamicode.com
首页 > 系统相关 > 详细

Linux第四周作业

时间:2016-08-25 21:53:27      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:linux 基本命令

1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。

   1.touch /etc/skel/test.txt                             # 在原目录下创建测试文件

   2.cp -r /etc/skel /home/tuser1 

   3.ll /home/tuser1                                          #验证文件

   4.chmod -R 700  /home/tuser1

     chmod -R go-rwx  /home/tuser1

   5. ll -d /home/tuser1                                    #验证文件夹权限

   6. ll   /home/tuser1                                       #验证文件权限

2、编辑/etc/group文件,添加组hadoop。

   groupadd hadoop

3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。

   1.echo "hadoop:x:509:601::/home/hadoop:/bin/bash">>/etc/passwd

   2.cat /etc/passwd                                         #验证

4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。

   1. cp /etc/skel /home/hadoop

   2. chmod 700 /home/hadoop

   3. ll -d /home/hadoop                                       #验证

5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。

   1. chown -R hadoop.hadoop /home/hadoop/  

   2. ll -d /home/hadoop                                        #验证

   3. ll /home/hadoop                                             #验证

6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;

   1. grep "^[Ss]" /proc/meminfo 

   2. sed -n ‘/^[Ss]/p‘ /proc/meminfo

   3. awk ‘/^[Ss]/‘ /proc/meminfo

7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;

   grep -v ‘/sbin/nologin$‘ /etc/passwd 

8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;

    grep ‘/bin/bash$‘ /etc/passwd

9、找出/etc/passwd文件中的一位数或两位数;

    egrep  "\<[0-9]\>|\<[0-9]{2}\>" /etc/passwd

10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;

    grep "^[[:space:]]\+" /boot/grub/grub.conf

    egrep "^[[:space:]]+" /boot/grub/grub.conf 

11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

   egrep "^#[[:space:]]+[^[:space:]]+" /etc/rc.d/rc.sysinit

12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;

   netstat -tan|egrep "LISTEN[[:space:]]+$"

13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

  1. for user in bash testbash basher nologin;do id $user &>/dev/null || useradd       $user; done;

  2. id nologin && usermod -s /sbin/nologin 

  3. egrep "^([[:alnum:]]+)\>.*\1$" /etc/passwd 


关于词首,词尾,锚定后向引用的一些体会

例子:添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息 

     正确语句:egrep "^([[:alnum:]]+)\>.*\1$" /etc/passwd 

     错误语句:egrep "^([[:alnum:]]+).*\1$" /etc/passwd 

     错误语句中 \1引用的可以是用户名字符串中任意长度的字符串,对nfsnobody来说,可以是n,nf,nfs........nfsnobody。因此该用户的shell只要是以n,nf,nfs...nfsnobody结尾都能被匹配。因此该语句得到了错误的结果。

     正确语句加了词尾锚定符\>,因此\1引用到的只会是整个用户名nfsnobody,因为


    egrep "^([[: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

    nobody:x:99:99:Nobody:/:/sbin/nologin

    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

    ntp:x:38:38::/etc/ntp:/sbin/nologin

    nginx:x:500:500::/home/nginx:/sbin/nologin

    hadoop:x:509:601::/home/hadoop:/bin/bash

    bash:x:510:510::/home/bash:/bin/bash

    basher:x:512:512::/home/basher:/bin/bash

    nologin:x:513:513::/home/nologin:/sbin/nologin

note:   后向引用仅仅引用(pattern)中匹配到的字符串,而并非模式本身

   

     


Linux第四周作业

标签:linux 基本命令

原文地址:http://dannniswu.blog.51cto.com/9846650/1842388

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!