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

Linux的权限管理:

 文件的权限主要针对三类对象进行管理:

    owner:属主 u

group:属组 g

other:其它 o

  每个文件针对每类访问者都定义了三种权限:

    r:Readable

    w:writable

x:eXcutable

  文件:

r:可使用文件查看类工具获取其内容

w:可修改其内容

x:可以把此文件提请内核启动为一个进程

  目录:

r:可以使用ls查看此目录中文件列表

w:可在此目录中创建文件,也可删除此目录中的文件

x:可以使用ls -l 查看此目录中文件列表,可以cd进入此目录

  用八进制表示权限的方式:

    --- 000 0

     --x 001 1

     -w- 010 2

     -wx 011 3

     r-- 100 4

     r-x 101 5

     rw- 110 6

     rwx 111 7

chmod命令:更改文件权限

  用法: chmod [OPTION]... MODE[,MODE]... FILE...    

  or:  chmod [OPTION]... OCTAL-MODE FILE...    //通过八进制更改文件权限

  or:  chmod [OPTION]... --reference=RFILE FILE...    

  mode: 权限设定字串,格式如下 : [ugoa...][[+-=][rwx]...][,...],其中

    u:属主

    g:属组

    o:其它

    a:所有用户

    +:添加权限

    -:删除权限

    =:赋值权限

  常用选项:

    -c,--changes

    只输出被改变文件的信息

    -f,--silent,--quiet

    当chmod不能改变文件模式时,不通知文件的用户

    --help

    输出帮助信息。

    -R,--recursive

    可递归遍历子目录,把修改应到目录下所有文件和子目录

    --reference=filename

    参照filename的权限来设置权限

    -v,--verbose

    无论修改是否成功,输出每个文件的信息

[root@localhost home]# cp -r /etc/skel/ ./tuser1/    //-r复制目录
[root@localhost home]# chmod -R go= tuser1/       
[root@localhost tuser1]# ll -a
total 16
drwx------. 3 root root   74 Aug 26 23:01 .
drwx------. 9 root root 4096 Aug 26 23:01 ..
-rw-------. 1 root root   18 Aug 26 23:01 .bash_logout
-rw-------. 1 root root  193 Aug 26 23:01 .bash_profile
-rw-------. 1 root root  231 Aug 26 23:01 .bashrc
drwx------. 4 root root   37 Aug 26 23:01 .mozilla

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

hadoop:x:3005:

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

hadoop:x:3005:3005::/home/hadoop:/bin/bash

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

[root@localhost home]# chmod -R go= hadoop
[root@localhost home]# ll 
total 8
drwx------.  3 root      root       74 Aug 27 02:10 hadoop
drwx------.  3 hadoop        3006   74 Aug 27 02:06 june
drwx------. 15 jun_shao  jun_shao 4096 Aug 26 21:26 jun_shao
drwx------.  3 mageia    mageia     74 Aug 20 08:06 linux
drwx------.  3      1005 distro     74 Aug 20 08:05 mandriva
drwx------.  5 openstack clouds   4096 Aug 21 00:56 openstack
drwx------.  3 slackware distro     74 Aug 20 08:25 slackware
drwx------.  3 root      root       74 Aug 26 23:01 tuser1
drwx------.  3 user1     user1      74 Aug 21 10:36 user1

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

chown命令:更改文件的属主属组

用法:chown [OPTION]... [OWNER][:[GROUP]] FILE...

   chown [OPTION]... --reference=RFILE FILE...

选项:

    -c 显示更改的部分的信息

    -f 忽略错误信息

    -h 修复符号链接

    -R 处理指定目录以及其子目录下的所有文件

    -v 显示详细的处理信息

    -deference 作用于符号链接的指向,而不是链接文件本身

[root@localhost home]# chown -R hadoop hadoop/

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

[root@localhost home]# cat /proc/meminfo | grep '^[s|S]'    //[]匹配括号中的单个字符,^括号外面表示以某个字符开头,|表示或
SwapCached:           72 kB
SwapTotal:       2097148 kB
SwapFree:        2094544 kB
Shmem:              5952 kB
Slab:              83580 kB
SReclaimable:      31844 kB
SUnreclaim:        51736 kB

[root@localhost home]# cat /proc/meminfo | grep '\<[S|s]'    //\<锚定字符串的开始
SwapCached:           64 kB
SwapTotal:       2097148 kB
SwapFree:        2094552 kB
Shmem:              5960 kB
Slab:              83580 kB
SReclaimable:      31844 kB
SUnreclaim:        51736 kB

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

[root@localhost home]# cat /etc/passwd | grep -v '/sbin/nologin\>'  //-v取反  \>锚定字符串的结束
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash
jun_shao:x:1000:1000:jun_shao:/home/jun_shao:/bin/bash
mageia:x:1100:1100::/home/linux:/bin/bash
slackware:x:2002:2016::/home/slackware:/bin/tcsh
openstack:x:3003:2019::/home/openstack:/bin/bash
user1:x:3004:3004::/home/user1:/bin/bash
hadoop:x:3005:3005::/home/hadoop:/bin/bash
[root@localhost home]# cat /etc/passwd | grep -v '/sbin/nologin\>' | cut -d: -f1
root
sync
shutdown
halt
amandabackup
jun_shao
mageia
slackware
openstack
user1
hadoop

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

[root@localhost home]# grep '/bin/bash\>' /etc/passwd | cut -d: -f1
root
amandabackup
jun_shao
mageia
openstack
user1
hadoop

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

[root@localhost ~]# grep -o '\<[0-9]\{1,2\}' /etc/passwd     //-o显示匹配的内容,{}表示区间,匹配[0-9]两次
0
0
1
1
2
2
3
4
4
7
5
0
6
0
7
0
8
12
11
0
12
10
14
50
99
99
17
17
99
99
99
99
81
81
99
99
17
17
59
59
99
99
11
11
99
99
33
6
99
76
99
99
99
98
32
32
99
98
17
17
38
38
10
10
29
29
65
65
75
75
99
98
98
98
17
17
42
42
98
98
70
70
89
89
74
74
72
72
10
10
11
11
20
20
30
20
98
98
30
30
30
30
30
30
30
30
30
30
30
30

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

[root@localhost home]# grep '^[[:space:]]\+' /boot/grub2/grub.cfg     //[:space:]表示空白字符,+表示匹配0次或多次
  load_env
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
   set default="${saved_entry}"
  menuentry_id_option="--id"
  menuentry_id_option=""
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
  set timeout_style=menu
  set timeout=5
  set timeout=5
  source ${prefix}/user.cfg
  if [ -n ${GRUB2_PASSWORD} ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  be50a901-277e-4252-b8be-717299df19f5
	else
	  search --no-floppy --fs-uuid --set=root be50a901-277e-4252-b8be-717299df19f5
	fi
	linux16 /vmlinuz-3.10.0-327.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
	initrd16 /initramfs-3.10.0-327.el7.x86_64.img
	load_video
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  be50a901-277e-4252-b8be-717299df19f5
	else
	  search --no-floppy --fs-uuid --set=root be50a901-277e-4252-b8be-717299df19f5
	fi
	linux16 /vmlinuz-0-rescue-5c7c63d6669b43fa947518735648b83b root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet
	initrd16 /initramfs-0-rescue-5c7c63d6669b43fa947518735648b83b.img
  source ${config_directory}/custom.cfg


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

[root@localhost home]# grep '^#[[:space:]]\+[^[:space:]]' /boot/grub2/grub.cfg 
# DO NOT EDIT THIS FILE
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.


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

[root@localhost home]# netstat -tan | grep 'LISTEN[[:space:]]*$'
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN

 

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

[root@localhost home]# 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:3006:3006::/home/bash:/bin/bash
nologin:x:3009:3009::/home/nologin:/sbin/nologin