第四周作业!

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

答:先复制skel目录下的文件到/home/tuser1下,然后再使用权限修改命令修改/home/tuser1目录及其内部文件的权限;

cp -r /etc/skel /home/tuser1 && chmod -R 700 /home/tuser1

[[email protected] ~]# cp -r /etc/skel /home/tuser1 && chmod -R 700 /home/tuser1
[[email protected] ~]# ls -a /etc/skel
.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla
[[email protected] ~]# ls -a /home/tuser1/
.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla
[[email protected] ~]# ls -al /home/tuser1/
total 28
drwx------. 4 root root 4096 Aug 26 10:57 .
drwxr-xr-x. 4 root root 4096 Aug 26 10:57 ..
-rwx------. 1 root root   18 Aug 26 10:57 .bash_logout
-rwx------. 1 root root  176 Aug 26 10:57 .bash_profile
-rwx------. 1 root root  124 Aug 26 10:57 .bashrc
drwx------. 2 root root 4096 Aug 26 10:57 .gnome2
drwx------. 4 root root 4096 Aug 26 10:57 .mozilla

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

答:1、使用vim命令打开/etc/group,按G命令跳转到最后一行,按o命令在末行新增一行同时添加hadoop:x:2000:字段,按esc键输入:wq保存退出;

[[email protected] ~]# vim /etc/group

2、使用nano打开,尾行添加hadoop:x:2000:字段,按Ctrl+O保存,按Ctrl+X退出;

[[email protected] ~]# nano /etc/group

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

答:使用vim命令,打开/etc/passwd,按G,o,在尾部添加一行输入                     hadoop:x:2000:2000::/home/hadoop:/bin/bash

[[email protected] ~]# vim /etc/passwd

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

答:cp -r /etc/skel /home/hadoop && chmod -u hadoop 700 /home/hadoop

[[email protected] ~]# cp -r /etc/skel /home/hadoop && chmod  700 /home/hadoop
[[email protected] ~]# ls -dl /home/hadoop
drwx------. 2 root root 59 8月  18 00:27 /home/hadoop

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

答:chown -R hadoop:hadoop /home/hadoop

[[email protected] ~]# chown -R hadoop:hadoop /home/hadoop
[[email protected] ~]# ls -al /home/hadoop
总用量 12
drwx------. 2 hadoop hadoop  59 8月  18 00:27 .
drwxr-xr-x. 4 root   root    31 8月  18 00:27 ..
-rw-r--r--. 1 hadoop hadoop  18 8月  18 00:27 .bash_logout
-rw-r--r--. 1 hadoop hadoop 193 8月  18 00:27 .bash_profile
-rw-r--r--. 1 hadoop hadoop 231 8月  18 00:27 .bashrc

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

答:答案如下:

[[email protected] proc]# cat /proc/meminfo | grep "^[sS]"    #方法一使用管道传递参数给grep
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              6796 kB
Slab:              76228 kB
SReclaimable:      35724 kB
SUnreclaim:        40504 kB
[[email protected] proc]# grep "^[sS]" /proc/meminfo    #方法二
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              6796 kB
Slab:              76228 kB
SReclaimable:      35724 kB
SUnreclaim:        40504 kB
[[email protected] proc]# grep -i "^s" /proc/meminfo    #方法三 -i 参数为不区分大小写
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Shmem:              6796 kB
Slab:              76240 kB
SReclaimable:      35732 kB
SUnreclaim:        40508 kB

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

答:这里显示除默认shell为/sbin/nologin的用户,可以用grep -v命令来显示除模式匹配到的以外的行,passwd文档中默认shell在行尾,所有用$进行行尾锚定,然后对行进行切分,结果如下:

[[email protected] ~]# grep -v "/sbin/nologin$" /etc/passwd | cut -d":" -f1
root
sync
shutdown
halt
gentoo
mageia
slackware
opentack
openstacd
openstack
archlinux
[[email protected] ~]# 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
gentoo:x:500:500::/home/gentoo:/bin/bash
mageia:x:1100:1100::/home/linux:/bin/bash
slackware:x:2002:2016::/home/slackware:/bin/tcsh
opentack:x:3003:2603::/home/opentack:/bin/bash
openstacd:x:3004:3004::/home/openstacd:/bin/bash
openstack:x:3005:3005::/home/openstack:/bin/bash
archlinux:x:3006:3006::/home/archlinux:/bin/bash

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

答:此题需用管道,先用grep筛选出所有符合条件的行,然后用cut命令以":"进行切分,第一列即答案;

[[email protected] proc]# grep "/bin/bash$" /etc/passwd | cut -d":" -f 1
root
user1
hadoop

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

答:这里需要用到grep的单词词首词尾锚定,一位或两位数字即单个数字至少重复一次,至多两次,即\<\{1,2\}\>,结果如下

[[email protected] proc]# grep "\<[0-9]\{1,2\}\>" /etc/passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

也可以使用egrep:

[[email protected] proc]# egrep "\<[0-9]{1,2}\>" /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

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

答:这里只需要确定每行行首有一个空白字符就符合要求,回答如下:

[[email protected] ~]# grep "^[[:space:]]" /boot/grub/grub.conf 
	root (hd0,0)
	kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 r
d_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
	initrd /initramfs-2.6.32-642.el6.x86_64.img

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

答:grep "^#[[:space:]]\+[^[:space:]]\+" /etc/rc.d/rc.sysinit或者egrep "^#[[:space:]]+[^[:space:]] /etc/rc.d/rc.sysinit

[[email protected] ~]# 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.
# Check SELinux status
# Print a text banner.
# Only read this once.
# Initialize hardware
# Set default affinity
# Load other user-defined modules
# Load modules (for backward compatibility with VARs)
# Configure kernel parameters
# Set the hostname.
# Sync waiting for storage.
# Device mapper & related initialization
# Start any MD RAID arrays that haven‘t been started yet
# Remount the root filesystem read-write.
# Clean up SELinux labels
# If relabeling, relabel mount points.
# Mount all other filesystems (except for NFS and /proc, which is already
# mounted). Contrary to standard usage,
# filesystems are NOT unmounted in single user mode.
# The ‘no‘ applies to all listed filesystem types. See mount(8).
# Check to see if a full relabel is needed
# Update quotas if necessary
# Initialize pseudo-random number generator
# Configure machine if necessary.
# Clean out /.
# Do we need (w|u)tmpx files? We don‘t set them up, but the sysadmin might...
# Clean up /var.
# Clean up utmp/wtmp
# Clean up various /tmp bits
# Make ICE directory
# Start up swapping.
# Set up binfmt_misc
# Boot time profiles. Yes, this should be somewhere else.
# Now that we have all of our basic modules loaded and the kernel going,
# let‘s dump the syslog ring somewhere so we can find it later
# create the crash indicator flag to warn on crashes, offer fsck with timeout
# Let rhgb know that we‘re leaving rc.sysinit
[[email protected] ~]#

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

[[email protected] ~]# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:35722               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:111                 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      
tcp        0      0 192.168.199.147:22          192.168.199.198:59938       ESTABLISHED 
tcp        0      0 :::51118                    :::*                        LISTEN      
tcp        0      0 :::111                      :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 ::1:631                     :::*                        LISTEN      
tcp        0      0 ::1:25                      :::*                        LISTEN      
[[email protected] ~]# netstat -tan | grep "LISTEN[[:space:]]*$"
tcp        0      0 0.0.0.0:35722               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:111                 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      
tcp        0      0 :::51118                    :::*                        LISTEN      
tcp        0      0 :::111                      :::*                        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相同的用户的信息;

答:使用useradd命令按照要求添加用户,最后一个使用-s参数指定默认shell,难点在筛选出用户名和其默认shell一致的用户的信息,用户名在每行行首用^进行行首锚定,且可视为为一个单词,可以由多个字母和数字组成,而其shell在行尾因此要用$进行行尾锚定,且与用户名一致,可用grep的后向引用,命令如下:

useradd bash && useradd testbash && useradd basher && useradd -s /sbin/nologin nologin && grep "^\(\<[[:alnum:]]*\>\).*\1$" /etc/passwd

[[email protected] ~]# useradd bash && useradd testbash && useradd basher && useradd -s /sbin/nologin nologin && 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:3007:3007::/home/bash:/bin/bash
nologin:x:3010:3010::/home/nologin:/sbin/nologin
时间: 2024-10-22 04:34:44

第四周作业!的相关文章

第四周作业

第四周作业 1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. (1)复制/etc/skel目录为/home/tuser1 [[email protected] ~]# cp -r /etc/skel/ /home [[email protected] ~]# mv /home/skel /home/tuser1 [[email protected] ~]# ll -a /home/tuser1/ total 2

解题报告——2018级2016第二学期第四周作业 (2的幂次方)

解题报告——2018级2016第二学期第四周作业 题目: 描述 任何一个正整数都可以用2的幂次方表示.例如:137=27+23+20. 同时约定方次用括号来表示,即ab 可表示为a(b). 由此可知,137可表示为:2(7)+2(3)+2(0) 进一步:7= 22+2+20   (21用2表示) 3=2+20 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:1315=210 +28 +25 +2+1 所以1315最后可表示为: 2(2(2+2(0))+

android第四周作业笔记

第四周作业要求如下 .....看了一下作业要求后,然后做了几周后.....老师....你这是玩我是吧?!你绝壁在玩我?! 算了,多说无益,来看看我们江大婶的做法吧 首先是MainActivity.java package cn.edu.shu.cs.android.experiment04; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import and

2017-2018-1 20155302 第十四周作业

2017-2018-1 20155302 第十四周作业 重新精学第十一章网络编程相关知识 第十一章网络编程因为之前在刘念老师的课上有所涉及有所讲解所以娄老师并没有着重讲这块知识,但我个人认为此章知识非常重要,是我们学习WEB编程和信息安全程序设计的基础,而且这章知识自问之前学习的并不好,并不牢靠,于是借着此次机会更加深入的学习重温一下网络编程方面的知识,好为今后的网络编程道路做好铺垫,学习一章内容两门课都能受益,何乐而不为呢? 首先回答几个问题,这些问题也是之前概念混淆所遗留下来的,此次重新学习

第四周作业之wcPro核心模块的实现

第四周作业之wcPro核心模块的实现 一.基本任务:代码编写+单元测试 小组github地址 https://github.com/SkateCloud/wcPro PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 60 Estimate 估计任务需要多少时间 30 60 Development 开发 120 180 Analysis 需求分析 20 30 Design Spec 生成设计文档 20 30 Design Review 设计复审

软件项目管理第四周作业

第四周软件项目管理作业 1.Fantacy小组站立会议 周五上课之后3:00到3:30,我们4位开了站立会议,主要内容: 首先询问前一周大家所学和所做的内容,之后确定各位本周的任务,准备alpha版本的发布. 杨若鹏:词频统计核心代码实现与下载模块实现 郭又铭:上传模块实现 何美琪:参考java书籍,练习编写代码 藏润强:学习了java的内容,参与了词频统计算法的编写 import java.util.ArrayList;import java.util.Collections;import j

第四周作业(汇总)

本周作业: 1.对四则运算软件需求的获取方式进行实践,例如使用调查问卷访问相关关系人等. 答: 本次是借助“问卷星”网站来发布问卷进行调查的.问卷地址:https://sojump.com/jq/9942880.aspx 本次问卷针对学生.家长和老师三个对象进行调查,对 四则软件进行需求分析.问卷调查结束后,问卷星还提供数据分析服务. 2.采用四象限法将你小组的四则运算软件的需求功能进行分类.阐述其优势与不足. 3.尝试把四则运算软件需求进行分解,变为每个小组成员可执行的积压工作项,分配这些工作

软件质量保证与测试第四周作业

作业内容:简要分析计算机辅助教学系统(CAI)的需求和必要性以及本周结对项目工作的成果. 答:本周我们团队选择了计算机辅助教学系统这一项目作为我们本次的团队项目. 一.简要分析一下CAI的需求和必要性: (1)随着计算机技术的飞速发展,信息网络已成为社会发展的重要保证.如何以网络为纽带快速.高效.方便地实现知识传递,以现代化手段促进教学改革,是教育工作者要解决的问题. (2)传统的教学方式体现出教师和学生不能同步的问题,现在有一种教学方式就是基于网络的教学,它实现了在网络上学生和教师互动. (3

机电传动控制第四周作业

1 根据仿真结果,可得出在额定状态下,额定转速为n=1472.93,对应的电磁转矩为11.5137.又有同步转速n0=1500r/min,得到S=0.018 由公式,代入其他参数值,可求得K=0.00541. 用MATLAB绘制异步电动机的固有特性曲线为: 2通过串联转子电阻来实现运动过程,电阻的阻值如图所示: 仿真结果: 由仿真结果可知,基本上实现了所需的运动,但是匀速的过程并没有完全达到,也就是阻力转矩和电磁转矩并没有完全相等,还需要继续改进. 3 交流电机的内容学的不是很好,做仿真作业遇到

《实时控制软件》第四周作业

对于一个冰球仿真的软件进行分析,首先分析需要哪些子系统: 1.人机交互系统 这个系统主要的作用是图形化输出,让用户能看见冰球的位置情况等内容.并且可以接收人的一些输入信息. 2.游戏策略系统 通过游戏策略计算出如果击打冰球能得到最好的结果,这一部分需要一个比较优化的算法. 3.物理引擎系统 这一块系统包括对桌子边界的设置,对球的碰撞以及轨迹运算等内容. 4.控制系统 这一个系统主要包括对球的击打操作的运算这一部分内容. 整个系统的联系如下: 由于这是一个团队作业 ,因此需要和小组成员讨论之后确定