1234

作业6:

注意:此作业内容最好在CentOS7系统中操作实现;

一、简答:

背景描述:xiaoqiang、wangcai和tangbohu三个用户的基本组都是与用户名相同的组,但是他们都以qiuxiang组为附属组;

  1.当用户xiaoqiang对/testdir目录无执行权限时和无读权限时,分别意味着小强无法完成哪些操作?


[root@centos-64-72a ~]# groupadd qiuxiang(创建qiuxiang组)

[root@centos-64-72a ~]# tail -1 /etc/group(查询qiuxiang的GID)

qiuxiang:x:1005:

[root@centos-64-72a ~]# useradd xiaoqiang -G 1005 ;useradd wangcai -G 1005;useradd tangbohu -G 1005

(同时创建xiaoqiang、wangcai和tangbohu三个用户,同时指定他们的附属组为qiuxiang)

[root@centos-64-72a ~]# tail -4 /etc/group

(查询刚刚创建三个用户的组状态)

qiuxiang:x:1005:xiaoqiang,wangcai,tangbohu

xiaoqiang:x:1006:

wangcai:x:1007:

tangbohu:x:1004:

如果xiaoqiang用户只有写入权限的话,xiaoqiang用户将无法

对/testdir目录进行任何的操作,因为对目录来讲执行权限是最基础的权限如果没有执行权限,将无法进行任何操作;


  2.当用户wangcai对/testfile文件只有写权限时,是否可修改和删除该文件?如果不能,那么wangcai能够对该文件做哪些操作?


如果wangcai只有写入权限的话,wangcai用户将可对/testdir文件进行定向输出,因为文件没有执行和读取权限,所以无法对该文件进行删除和修改;


  3.如果用户tangbohu在/tmp目录中建立了一个目录mydir,他想要让wangcai和xiaoqiang这两个用户能够在该目录中创建、修改和删除文件,你能想到哪些办法来实现这个目的?


[tangbohu@centos-64-72a ~]$ mkdir -pv /tmp/mydir(创建/tmp/mydir目录)

mkdir: 已创建目录 "/tmp/mydir"

第一种方法:

[tangbohu@centos-64-72a ~]$ chmod 757 /tmp/mydir(修改mydir目录的其他组权限)

第二种方法:

[tangbohu@centos-64-72a ~]$ id(查看用户组ID)

uid=1004(tangbohu) gid=1004(tangbohu) 组=1004(tangbohu),1005(qiuxiang) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[tangbohu@centos-64-72a ~]$ chgrp 1005 /tmp/mydir(修改目录属组为1005(qiuxiang),因为xiaoqiang、wangcai和tangbohu三个用户同时在该组)

[tangbohu@centos-64-72a ~]$ chmod 775 /tmp/mydir/(修改mydir目录的属组的权限)

第三种方法:

[tangbohu@centos-64-72a ~]$ su root(切换到root用户)

密码:

[root@centos-64-72a tangbohu]# usermod -g 1004 wangcai;usermod -g 1004 xiaoqiang(修改xiaoqiang、wangcai的属主)

[root@centos-64-72a tangbohu]# exit(退出root用户)

第四种方法:

[root@centos-64-72a xiaoqiang]#su - root(切换root用户)

[root@centos-64-72a wangcai]#su - root 


二、操作:

  1.复制/etc/fstab文件到/var/tmp下,同时设置文件属主为wangcai有读写权限,属组为xiaoqiang组有只读权限,其他人无权限,请写出命令;

 

[root@centos-64-72a tmp]# install -o wangcai -g xiaoqiang -m 740 /etc/fstab /var/tmp

(用install命令在复制文件的同时还能修改文件的权限)


  2.不使用useradd命令创建用户xiaoming,该用户有如下属性:

  1) UID为8089;

 

[root@centos-64-72a ~]# echo "xiaoming:x:8089:8089:Wang Xiaoming:/home/xiaoming:/bin/bash" >>/etc/passwd

(直接在etc/passwd文件里追加也可以创建用户)

[root@centos-64-72a ~]# echo "xiaoming:x:8089:">>/etc/group(追加小明的组信息)

[root@centos-64-72a ~]# cp -a /etc/skel /home/xiaoming(复制家目录模板给小明)

[root@centos-64-72a ~]# chmod 700 /home/xiaoming(更改家目录权限为700)

[root@centos-64-72a ~]# chown -R 8089:8089 /home/xiaoming(把创建的家目录属主给xiaoming用户)

[root@centos-64-72a ~]# echo "xiaoming::17262:5:30:3:7::" >>/etc/shadow

[root@centos-64-72a ~]# passwd xiaoming

更改用户 xiaoming 的密码 。


  2) 主要组为xiaoming,gid为8089;


  3) 其用户全名为"Wang Xiaoming";


  4) 家目录在/home/xiaoming;


  5) 默认登录shell为/bin/bash;


  6) 密码修改之后5天内不能再次修改密码;


  7) 密码最多使用30天;


  8) 密码过期前3天开始提醒用户修改密码;


  9) 密码过期后,7天之内不会禁止用户登录;


3.用户xiaoming在他自己的家目录中创建了一个文件project.plan,为了想要让wangcai用户能够读取到该文件的内容,xiaoming将/bin/cat文件复制到/tmp/xmcat,/tmp/xmcat只有属主xiaoming和wangcai用户能够执行;每次wangcai执行"[wangcai@localhost ~]$ /tmp/xmcat /home/xiaoming/project.plan"命令就能看到该文件的内容;


[xiaoming@centos-64-72a ~]$ touch project.plan(创建project.plan)

[xiaoming@centos-64-72a ~]$ install -m 770 /home/xiaoming/project.plan /tmp/xmcat

(复制xiaoming将/bin/cat文件复制到/tmp/xmcat同时修改权限)

[xiaoming@centos-64-72a ~]$ su -c "usermod -g 8089 wangcai"

密码:

[wangcai@centos-64-72a ~]$ /tmp/xmcat /home/xiaoming/project.plan

/tmp/xmcat:行1: 123: 未找到命令


三、逻辑关系练习:

1.如果在文件系统中有/backup目录就显示这个目录已经存在,否则就创建之;


[root@centos-64-72a ~]# ! ll backup && mkdir -pv backup(如果没有backup则建立)

ls: 无法访问backup: 没有那个文件或目录

mkdir: 已创建目录 "backup"



2.如果在文件系统中有/backup目录就将/etc目录中所有.conf结尾的一级非目录文件(不包含.conf结尾的子目录中的文件)备份到该目录中;


[root@centos-64-72a ~]# ll backup&&cp -a /etc/*.conf ./backup(如果有/backup目录,就复制/etc下.conf结尾的文件)

[root@centos-64-72a ~]# ! ll backup||cp -a /etc/*.conf ./backup(取反义,相当于ll backup&&cp -a /etc/*.conf ./backup)


3.请尝试说明下列命令的意义:

  (! id qhdlink &> /dev/null || ! ls -d /home/qhdlink &> /dev/null) &&  echo "An error ocurs." || userdel -r qhdlink

  ! (id qhdlink &> /dev/null && ls -d /home/qhdlink &> /dev/null) &&  useradd -md /home/qhdlink qhdlink || echo "An error ocurs." 


如果用户qhdlink不存在且家目录也不存在,则显示“发生一个错误”,否则就删除该用户,连同其家目录;

如果用户qhdlink不存在并且用户qhdlink的家目录也不存在,则创建用户并强制创建其家目录于/home/qhdlink qhdlink,否则就显示“发生一个错误”