马哥运维班第四周作业

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

[[email protected] home]# cp -r /etc/skel /home/tsuser1 && ls -ld /home/tsuser1
drwxr-xr-x. 4 root root 4096 Aug 28 05:46 /home/tsuser1
[[email protected] home]# chmod g-r,o-r /home/tsuser1 &&  ls -ld /home/tsuser1
drwx--x--x. 4 root root 4096 Aug 28 05:46 /home/tsuser1

[[email protected] home]# su - nat   //切换用户nat测试其他用户是否有访问权限,提示权限不允许。
Welcome 500 
[[email protected] ~]$ ls /home/tsuser1
ls: cannot open directory /home/tsuser1: Permission denied

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

1.打开文件,因为需要直接在最后一行添加新组,用选项+,直接打开文件光标定位到最后一行非空白行

[[email protected] ~]# vi + /etc/passwd

2.打开文件,首先查找是否存在hadoop用户,冒号模式下 :?hadoop 显示E486: Pattern not found: hadoop,

说明此时系统没有hadoop组,group文件的格式:group_name:passwd:GID:user_list,可以直接新添一行 :o   在当前行行下新添一行 hadoop:x:503:

slocate:x:21:
nat:x:500:
yannic:x:501:
user1:x:502:
hadoop:x:503:

3.:wq保存退出

4.测试是否添加组成功:

[[email protected] ~]# useradd test1 -g hadoop
[[email protected] ~]#

如果不存在提示useradd: group ‘hadoop‘ does not exist,这里没报错说明添加组成功

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

1.打开文件

[[email protected] ~]# vi + /etc/passwd

2.冒号模式下 :?hadoop 显示E486: Pattern not found: hadoop

3.由于组成比较复杂,我这里直接复制上面一行,yy 复制一行 p:粘贴,然后

nat:x:500:500:nat:/home/nat:/bin/bash
yannic:x:501:501::/home/yannic:/bin/bash
user1:x:502:502::/home/user1:/bin/bash
user2:x:503:503::/home/user2:/bin/bash
test1:x:504:503::/home/test1:/bin/bash
test1:x:504:503::/home/test1:/bin/bash

4.修改,按i进入输入模式,UID可以自己定义,centos6 普通用户uid 500+,我这里定义504.gid定义为hadoop的gid503,家目录修改为/home/hadoop

nat:x:500:500:nat:/home/nat:/bin/bash
yannic:x:501:501::/home/yannic:/bin/bash
user1:x:502:502::/home/user1:/bin/bash
user2:x:503:503::/home/user2:/bin/bash
test1:x:504:503::/home/test1:/bin/bash
hadoop:x:505:503::/home/hadoop:/bin/bash
-- INSERT --

5.:wq保存退出

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

[[email protected] ~]#  cp -r /etc/skel /home/hadoop && ls -ld /home/hadoop
drwxr-xr-x. 4 root root 4096 Aug 28 21:30 /home/hadoop
[[email protected] ~]# chmod g-r,o-r /home/hadoop && ls -ld /home/hadoop
drwx--x--x. 4 root root 4096 Aug 28 21:30 /home/hadoop

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

//chown OWNER:GROUP filename:修改文件属主和属组
//-R 选项,表示递归,文件以及下子文件和文件目录和父目录权限一致
[[email protected] hadoop]# chown -R hadoop:hadoop /home/hadoop && ls -ld /home/hadoop
drwx--x--x. 4 hadoop hadoop 4096 Aug 28 21:39 /home/hadoop
//用root用户测试,创建的新文件属主为hadoop,属组为hadoop
[[email protected] hadoop]# touch a.txt && ls -l a.txt
-rw-r--r--. 1 hadoop hadoop 0 Aug 28 21:42 a.txt

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

1.使用-i选项,忽略大小写

[[email protected] hadoop]# grep -i ‘^s‘ /proc/meminfo 
SwapCached:         1000 kB
SwapTotal:       2031608 kB
SwapFree:        2025636 kB
Shmem:              4380 kB
Slab:             204440 kB
SReclaimable:     134516 kB
SUnreclaim:        69924 kB

2.使用[]通配符匹配,匹配[]内任意单个字符

[[email protected] hadoop]# grep ‘^[sS]‘ /proc/meminfo 
SwapCached:         1000 kB
SwapTotal:       2031608 kB
SwapFree:        2025636 kB
Shmem:              4380 kB
Slab:             204432 kB
SReclaimable:     134516 kB
SUnreclaim:        69916 kB

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

//添加两个用户,一个默认shell为/sbin/nologin,另一个为/bin/nologin

[[email protected] hadoop]# useradd test2 -s "/sbin/nologin"
[[email protected] hadoop]# useradd test3 -s "/bin/nologin"

//-v 选项显示不匹配的行,$行尾匹配grep "/bin/bash$" /etc/passwd | cut -d: -f1

[[email protected] hadoop]# grep -v "/sbin/nologin$" /etc/passwd | cut -d: -f1
root
sync
shutdown
halt
nat
yannic
user1
user2
test1
hadoop
test3

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

[[email protected] hadoop]# grep "/bin/bash$" /etc/passwd | cut -d: -f1
root
nat
yannic
user1
user2
test1
hadoop

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

[0-9]:匹配数字,{1,2}:匹配次数,1~2次

\<:词首锚定,\>:词尾锚定,这里要注意的、一定要加上这个位置锚定,题目要求1位或两位,如果不加上限制则会匹配三位数、四位数等

-o:只显示匹配到的字符串

[[email protected] hadoop]# grep -o "\<[0-9]\{1,2\}\>" /etc/passwd
0
0
1
1
2
2
3
4
4
7

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

^:行首匹配

[[:space:]]:匹配空白字符或tab字符

[[email protected] hadoop]# grep "^[[:space:]]" /boot/grub/grub.conf
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=33ddc759-09de-4936-845a-811c03ea3b08 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img

其实这样就可以了,题目中要求至少一个空白字符,有一个空白字符就已经满足了,当然你不放心,加上\+:匹配次数,至少一次,效果也是一样的

[[email protected] hadoop]# grep "^[[:space:]]\+" /boot/grub/grub.conf
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=33ddc759-09de-4936-845a-811c03ea3b08 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img

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

[[email protected] hadoop]# grep "^#.*[[:space:]].*[^[:space:]]" /etc/rc.d/rc.sysinit 
# /etc/rc.d/rc.sysinit - run once at boot time
# Taken in part from Miquel van Smoorenburg‘s bcheckrc.
#remount /dev/shm to set attributes from fstab #669700
#remount /proc to set attributes from fstab #984003
# Check SELinux status

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

[:space:]:空白字符,*匹配任意次数,可以0次或多次

$:行尾锚定,加上位置锚定后,后面就不能跟其他字符

[[email protected] hadoop]# 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:631               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 ::1:631                     :::*                        LISTEN      
tcp        0      0 ::1:25                      :::*                        LISTEN

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

1.添加用户

[[email protected] hadoop]# useradd bash;useradd testbash;useradd basher;useradd -s "/sbin/nologin" nologin

2.查看刚添加的用户是否正确

[[email protected] hadoop]# tail -4 /etc/passwd
bash:x:508:508::/home/bash:/bin/bash
testbash:x:509:509::/home/testbash:/bin/bash
basher:x:510:510::/home/basher:/bin/bash
nologin:x:511:511::/home/nologin:/sbin/nologin

3.使用()分组,\1后向引用最外层小括号的内容

[[email protected] hadoop]#  grep ‘^\(.*\):.*\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:508:508::/home/bash:/bin/bash
nologin:x:511:511::/home/nologin:/sbin/nologin

如有错误之处,烦请看官评论里指点一下,小女子不胜感激。


时间: 2024-10-12 21:38:45

马哥运维班第四周作业的相关文章

马哥第3期运维班第四周作业

一.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. cp -a /etc/skel /home/tuser1 && chmod -R go-rwx /home/tuser1 #cp [OPTION]... SOURCE... DIRECTORY #-a:归档,保留所有元属性,用于备份,相当于-dR --preserv=all #-d:不跟踪符号连接,保留连接本身 #-p:保留源文件或目录的属性,相当于--p

马哥2016全新Linux+Python高端运维班第四周作业

1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. 2.编辑/etc/group文件,添加组hadoop. #echo "hadoop:x:1003:" >> /etc/group 3.手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号:其家目录为/home/hadoop. #echo "hadoop:x:1003:1003:ha

马哥2016全新Linux+Python高端运维班第四周作业作答

1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限.     [[email protected] ~]# cp -r /etc/skel/ /home/yicx     [[email protected] ~]# chmod -R 700 /home/yicx     [[email protected] ~]# ls -adlh /home/yicx/     drwx------. 15 yicx yicx

马哥运维班第七周作业

1.创建一个10G分区,并格式为ext4文件系统: (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl: (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳: #fdisk:分区管理 [[email protected] shell]# fdisk /dev/sda Command (m for help): m #下面是fdisk的一些选项,我只注释了常用的几个选项 Command acti

马哥运维班第五周作业

1.显示当前系统上root.fedora或user1用户的默认shell: #grep: -E:使用扩展正则表达式,即egrep,^:行首匹配,|:或者 #cut: -d:指定分隔符,-f:取第几列 [[email protected] shell]# grep -E "^root|fedora|user1" /etc/passwd | cut -d: -f1,7 root:/bin/bash 2.找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行

马哥运维班第六周作业

1.复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#: #1.sed 命令 #脚本文件 #/bin/bash cp /etc/rc.d/rc.sysinit /tmp #sed:文本行编辑器 #-i:对原文件直接进行编辑操作,默认sed是对模式空间的数据进行操作 #s/str1/str2/:将匹配到str1的内容替换成str2,&后向引用,即str1内容 sed -i 's/^[[:space:]]\+/

Linux+Python高端运维班第二次作业

Linux+Python高端运维班第二次作业 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. [[email protected] ~]# who |cut -d" " -f1|uniq (unknown) root test1 [[email protected] ~]# who |cut -d" " -f1|sort -u root (unknown) wangyanglin 2.取出当前系统上被用户当作其默认shel

马哥第3期运维班第一周作业

1.描述计算机的组成及其功能. 控制器(Control): 是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序.数据.地址,协调计算机各部分工作及内存与外设的访问等. 运算器(Datapath): 运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理. 存储器(Memory): 存储器的功能是存储程序.数据和各种信号.命令等信息,并在需要时提供这些信息. 输入(Input system): 输入设备是计算机的重要组成部分,输入设备与输出设备

马哥第3期运维班第二周作业

1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 复制:cp cp [option] SRC... DEST SRC是单个文件: 如果DEST不存在,则新建DEST,并将SRC中的内容填充到DEST中 如果DEST存在: 如果DEST是文件,则将SRC中的内容覆盖到DEST中 如果DEST是目录,将SRC复制到DEST中,并保持原名 SRC是多个文件: DEST必须是目录并且存在,其它情形均会出错 SRC是目录: 使用-r选项,递归复制 如果DEST不存在,则新建DE