首页 > 代码库 > 第四周作业
第四周作业
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, ... 后向引用(引用前面的分组括号中的模式所匹配字符)
第四周作业