一、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
cp -a /etc/skel /home/tuser1 && chmod -R go-rwx /home/tuser1 cp [OPTION]... SOURCE... DIRECTORY #-a 此参数的效果和同时指定"-dpR"参数相同, #-d 若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身; #-p 保留源文件或目录的属性 #-R 保留递归复制目录及其子目录内的所有内容 chmod [OPTION]... MODE[,MODE]... FILE... #-R 可递归遍历子目录,把修改应到目录下所有文件和子目录 #go-rwx g(组)o(其他)-(删除权限)r(读)w(写)x(执行)
二、编辑/etc/group文件,添加组hadoop。
[root@localhost ~]# vim /etc/group ... mageia:x:1100: peguin:x:2017:slackware,openstack admins:x:2018:slackware nova:x:2019:openstack clouds:x:2020: hadoop:x:2021: #编辑/etc/group,在末行添加组hadoop #hadoop 组名 #x 用户组加密后的口令字段 #2021 组标识号
三、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
[root@localhost ~]# vim /etc/passwd ... mageia:x:1100:1100::/home/linux:/bin/bash slackware:x:2002:2016::/home/slackware:/bin/tcsh openstack:x:3003:2020::/home/openstack:/bin/bash hadoop:x:2021:2021::/home/hadoop:/bin/bash #编辑/etc/passwd,在末行添加hadoop用户 #hadoop 用户名 #x 密码(已经加密) #2021 UID用户标识 #2021 GID组标识 #/home/hadoop 家目录 #/bin/bash 登录Shell
四、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
cp -a /etc/skel /home/hadoop && chmod go-rwx /home/hadoop
五、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
chown -R hadoop:hadoop /home/hadoop/ #chown [选项]... [所有者][:[组]] 文件... #-R --recursive 可递归遍历子目录,把修改应到目录下所有文件和子目录 #hadoop:hadoop 指定所有者和所有组都为hadoop
六、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
[root@localhost ~]# grep ^[sS] /proc/meminfo SwapCached: 0 kB SwapTotal: 4064252 kB SwapFree: 4064252 kB Shmem: 8684 kB Slab: 69320 kB SReclaimable: 42636 kB SUnreclaim: 26684 kB grep [OPTIONS] PATTERN [FILE...] #^ ^ 表示打头的字符要匹配紧跟^后面的规则 #[] [ ]中的内容是可选字符集
[root@localhost ~]# grep -i '^s' /proc/meminfo SwapCached: 0 kB SwapTotal: 4064252 kB SwapFree: 4064252 kB Shmem: 8684 kB Slab: 69296 kB SReclaimable: 42660 kB SUnreclaim: 26636 kB grep [OPTIONS] PATTERN [FILE...] #^ ^ 表示打头的字符要匹配紧跟^后面的规则 #-i 忽略大小
七、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
[root@localhost ~]# grep -v '/sbin/nologin$' /etc/passwd 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 mageia:x:1100:1100::/home/linux:/bin/bash slackware:x:2002:2016::/home/slackware:/bin/tcsh openstack:x:3003:2020::/home/openstack:/bin/bash hadoop:x:2021:2021::/home/hadoop:/bin/bash #grep -v 查找不包含匹配项的行,不以/sbin/nologin结尾的行就是非/sbin/nologin的用户
八、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
[root@localhost ~]# grep '/bin/bash$' /etc/passwd root:x:0:0:root:/root:/bin/bash mageia:x:1100:1100::/home/linux:/bin/bash openstack:x:3003:2020::/home/openstack:/bin/bash hadoop:x:2021:2021::/home/hadoop:/bin/bash #匹配以/bin/bash结尾的行即为/bin/bash的用户
九、找出/etc/passwd文件中的一位数或两位数;
[root@localhost ~]# grep -o '\<[0-9]\{1,2\}\>' /etc/passwd 0 0 1 1 2 2 3 4 4 7 5 0 6 0 7 0 8 12 11 0 12 14 50 99 99 81 81 59 59 89 89 74 74 38 38 #\<[0-9]\{1,2\}\> \{1,2\}表示之前的数字字符出现次数为1-2次,并加上\<\>进行单词锚定
十、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
grep '^[[:space:]]\+' /boot/grub/grub.conf #^[[:space:]] 表示以空白字符开头 #\+ 表示前一个字符重复一次或更多次,并加上转义字符\
十一、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
grep '^[[:space:]]\+[^[:space:]]\+' /etc/rc.d/rc.sysinit #^[[:space:]]\+ 匹配至少一个空白字符 #[^[:space:]]\+ 匹配至少一个非空白字符
十二、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
[root@localhost ~]# netstat -tan | grep '\<LISTEN\>[[:space:]]*$' tcp 0 0 0.0.0.0:22 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:25 :::* LISTEN LISTEN #\<LISTEN\> 锚定单词LISTEN #[[:space:]]*$ 匹配出现任意次空白符并结尾
十三、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;
[root@localhost ~]# useradd bash [root@localhost ~]# useradd testbash [root@localhost ~]# useradd basher [root@localhost ~]# useradd -s /sbin/nologin nologin [root@localhost ~]# 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:3004:3004::/home/bash:/bin/bash nologin:x:3007:3007::/home/nologin:/sbin/nologin #^\<[[:alnum:]]\+\>\ 匹配至少出现一次的字母或数字加上^\<\>进行行首的单词锚定,用来匹配用户名 #\<[[:alnum:]]\+\> 匹配用户名加上,用\(\)括起来将表达式定义为“组”,\1表示引用之前定义的组,跟上$作为行尾锚定