首页 > 代码库 > 第四周作业

第四周作业

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

# cp -r /etc/skel/ /home/tuser1
# chmod -R go-rwx /home/tuser1/


格式:chmod [{ugoa} {+-=} {rwx} [文件或目录]

          chmod [mode=421] [文件或目录] 

         -R 递归修改


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

# echo "hadoop:x:1001:" >> /etc/group

格式:group_name:passwoerd:GID:user_list

group_name:组名

passwoerd:组密码

GID:组的ID号

user_list:以group_name为附加组的用户列表


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

# echo "hadoop:x:1001:1001::/home/hadoop:/bin/bash"  >> /etc/passwd

格式:account:password:UID:GID:GECOS:diretory:shell

        account: 用户名或帐号

        password :用户密码占位符

        UID:用户的ID号

        GID:用户所在组的ID号

        GECOS:用户的详细信息(如姓名,年龄,电话等)

        diretory:用户所的家目录

        shell:用户所在的命令解析器


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

# cp /etc/skel /home/hadoop
# chmod 700 /home/hadoop

格式:chmod [{ugoa} {+-=} {rwx} [文件或目录]

          chmod [mode=421] [文件或目录] 

         -R 递归修改


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

# chown -R hadoop:hadoop /home/hadoop

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

# grep "^[sS]" /proc/meminfo 
# grep -E "^(s|S)" /proc/meminfo

grep 全局搜索正则表达式和打印(简称过滤)

^ 行首锚定

-E 扩展正则表达式

s|S s或者S


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

# grep -v "/sbin/nologin$" /etc/passwd

-v 用于显示非匹配的行

$ 行尾锚定


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

# grep "/bin/bash$" /etc/passwd


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

# grep "\<[0-9]\{1,2\}\>" /etc/passwd
# grep -E "\<[0-9]{1,2}\>" /etc/passwd

注意:必须使用词首词尾锚定,否则会匹配其他位数的数字


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

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

[:space:] 空白字符

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

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


\+:匹配其前面的字符至少1次(基本正则表达式)


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

# netstat -tan | grep "LISTEN[[:space:]]*$"


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

# useradd bash
# useradd testbash
# useradd basher
# useradd nologin -s /sbin/nologin
# grep "^\([[:alnum:]]\+\>\).*\1$" /etc/passwd
# grep -E "^([[:alnum:]]+\>).*\1$" /etc/passwd
account:password:UID:GID:GECOS:diretory:shell


用户名:用户密码占位符:用户的ID:用户所在组的ID号:用户的详细信息(如姓名,年龄,电话等):用户所的家目录:用户所在的命令解析器

思路:获取行首锚定的用户名,利用后向引用获取括号中的用户名作行尾锚定

-s SHELL  指明用户的默认shell程序

.*  任意长度的任意字符

()  分组

\1, \2, ...   后向引用(引用前面的分组括号中的模式所匹配字符)



第四周作业