20、简答:
背景描述:xiaoqiang、wangcai和tangbohu三个用户的基本组都是与用户名相同的组,但是他们都以qiuxiang组为附属组。
1).当用户xiaoqiang对/testdir目录无执行权限时和无读权限时,分别意味着xiaoqiang无法完成哪些操作?
答:
无执行权限时:不能访问命令,什么都不能执行,不能删除,不能创建,使用"ll"命令能看到有哪些文件,但是看不到具体信息。
无读权限时:不能显示文件名,不能查看文件夹内部有哪些文件,如果知道文件夹内有哪些,则可以删除,也可以在里面创建。
2).当用户wangcai对/testfile文件只有写权限时,是否可修改和删除该文件?如果不能,那么wangcai能够对该文件做哪些操作?
答:
无法肯定,因为修改和删除该文件,对文件所在的目录有写权限就够了。
可以往文件里添加东西,删除东西。有写权限,能够删除文件,但是还是不能修改文件
3).如果用户tangbohu在/tmp目录中建立了一个目录mydir,他想要让wangcai和xiaoqiang这两个用户能够在该目录中创建、修改和删除文件,你能想到哪些办法来实现这个目的?
答:
1、chmod 777 /tmp/mydir
2、chgrp qiuxiang /tmp/mydir
chmod 775 /tmp/mydir
3、setfacl -m -u:wangcai:rwx /tmp/mkdir
setfacl -m -u:xiaoqiang:rwx /tmp/mkdir
4、setfacl -m -g:qiuxiang:rwx /tmp/mkdir
例:
[root@little ~]# groupadd qiuxiang
[root@little ~]#
[root@little ~]# cat /etc/group
[root@little ~]# tail -1 /etc/group
qiuxiang:x:5002:
[root@little ~]#
[root@little ~]# useradd xiaoqiang -G 5002; useradd wangcai -G 5002; useradd tangbohu -G 5002
[root@little ~]# tail -4 /etc/group
qiuxiang:x:5002:xiaoqiang,wangcai,tangbohu
xiaoqiang:x:5003:
wangcai:x:5004:
tangbohu:x:5005:
[root@little ~]#
[root@little ~]# su - tangbohu
[tangbohu@little ~]$ mkdir -pv /tmp/mydir
[tangbohu@little ~]$
[tangbohu@little ~]$ ls /tmp | grep "^my*"
mydir
[tangbohu@little ~]$
[tangbohu@little ~]$ id
uid=5004(tangbohu) gid=5005(tangbohu) groups=5005(tangbohu),5002(qiuxiang)
[tangbohu@little ~]$ chmod 775 /tmp/mydir
[tangbohu@little ~]$ chgrp 5002 /tmp/mydir
[tangbohu@little ~]$ chmod 775 /tmp/mydir/
[tangbohu@little ~]$ su
Password:
[root@little tangbohu]# usermod -g 5004 wangcai; usermod -g 5004 xiaoqiang
21、背景描述:xiaoqiang、wangcai和tangbohu三个用户的基本组都是与用户名相同的组,但是他们都以qiuxiang组为附属组。
1.复制/etc/fstab文件到/var/tmp下,同时设置文件属主为wangcai有读写权限,属组为xiaoqiang组有只读权限,其他人无权限,请写出命令;
答:
法一:
# cp /etc/fstab /var/tmp/
# groupadd xiaoqiang
# chmod 640 fstab
# ls -l
法二:
# cp /etc/fstab /var/tmp/
# chown wang:xiaoqiang fstab
# chmod 640 fstab
2.不使用useradd命令创建用户xiaoming,该用户有如下属性:
1) UID为8089;
2) 主要组为xiaoming,gid为8089;
3) 其用户全名为"Wang Xiaoming";
4) 家目录在/home/xiaoming;
5) 默认登录shell为/bin/bash;
6) 密码修改之后5天内不能再次修改密码;
7) 密码最多使用30天;
8) 密码过期前3天开始提醒用户修改密码;
9) 密码过期后,7天之内不会禁止用户登录;
答:
# vim + /etc/passwd
xiaoming:x:8089:8089:Wang Xiaoming:/home/xiaoming:/bin/bash
# vim + /etc/shadow
xiaoming:!!:17264:5:30:3:7::
# vim + /etc/group
xiaoming:x:8089:
# vim + /etc/gshadow
xiaoming:!:8089:
# cp -a /etc/skel/ /home/xiaoming
# chmod 700 -R /home/xiaoming/
# chown xiaoming: -R /home/xiaoming
# echo "xiaoming" | passwd --stdin xiaoming
3.用户xiaoming在他自己的家目录中创建了一个文件project.plan,为了想要让wangcai用户能够读取到该文件的内容,xiaoming将/bin/cat文件复制到/tmp/xmcat,/tmp/xmcat只有属主xiaoming和wangcai用户能够执行;每次wangcai执行"[wangcai@localhost ~]$ /tmp/xmcat /home/xiaoming/project.plan"命令就能看到该文件的内容;
答:
$ install -m 4700 /bin/cat /tmp/xmcat
$ setfacl -m u:wangcai:r-x /tmp/xmcat
例:
[root@little tangbohu]# install -o wangcai -g xiaoqiang -m 740 /etc/fstab /var/tmp
[root@little tangbohu]#
[root@little tangbohu]# ls /var/tmp
fstab yum-little-fVn5BR
[root@little tangbohu]# echo "xiaoming:x:8089:8089:Wang Xiaoming:/home/xiaoming:/bin/bash" >> /etc/passwd
[root@little tangbohu]#
[root@little tangbohu]# cd
[root@little ~]# ls /var/tmp
fstab yum-little-fVn5BR
[root@little ~]# cat /etc/passwd
[root@little ~]# cp -a /etc/skel /home/xiaoming
[root@little ~]#
[root@little ~]# chmod 700 /home/xiaoming
[root@little ~]#
[root@little ~]# chowm -R 8089:8089 /home/xiaoming
bash: chowm: command not found
[root@little ~]#
[root@little ~]# chown -R 8089:8089 /home/xiaoming
[root@little ~]#
[root@little ~]# echo "xiaoming::17262:5:30:3:7::" >> /etc/shadow
[root@little ~]#
[root@little ~]# passwd xiaoming
Changing password for user xiaoming.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@little ~]#
[root@little ~]# su - xiaoming
[xiaoming@little ~]$ touch project.plan
[xiaoming@little ~]$
[xiaoming@little ~]$ ls
project.plan
[xiaoming@little ~]$ install -m 770 /bin/cat /tmp/xmcat
[xiaoming@little ~]$ ls /tmp
[xiaoming@little ~]$ su -c "usermod -g 8089 wangcai"
[wangcai@little ~]$
[wangcai@little ~]$ ls /tmp
[wangcai@little ~]$ /tmp/xmcat /home/xiaoming/project.plan
22、逻辑关系练习:
1.如果在文件系统中有/backup目录就显示这个目录已经存在,否则就创建之;
答:
# ls -d /backup &> /dev/null && echo "this_dir exist" || mikdir -p /backup
2.如果在文件系统中有/backup目录就将/etc目录中所有.conf结尾的一级非目录文件(不包含.conf结尾的子目录中的文件)备份到该目录中;
答:
# ls -d /backup &> /dev/null && cp /etc/*.conf /backup
3.请尝试说明下列命令的意义:
(! id little &> /dev/null || ! ls -d /home/little &> /dev/null) && echo "Error" || userdel -r little
! (id little &> /dev/null && ls -d /home/little &> /dev/null) && useradd -md /home/little little || echo "Error"
答:
如果little用户,及其家目录都不存在,就输出"Error";否则就删除该用户,及其家目录,循环删除。
如果little用户,及其家目录都不存在,则创建用户并强制创建其家目录/home/little;否则就输出"Error"
useradd命令:
-d: 创建家目录
-m: 利用家目录创建用户
例:
[root@little ~]# ls /
backup boot etc lib lost+found misc net proc sbin srv tmp var
bin dev home lib64 media mnt opt root selinux sys usr ysu
[root@little ~]#
[root@little ~]# ls -d /backup &> /dev/null && echo "This is exist." || echo "This is not exist"
This is exist.
[root@little ~]# ls /backup/
etc-2017-11-15_16:43:00
[root@little ~]#
[root@little ~]# ls -d /backup &> /dev/null && cp /etc/*.conf /backup
[root@little ~]#
[root@little ~]# ls /backup/
Trolltech.conf latrace.conf prelink.conf
asound.conf ld.so.conf readahead.conf
autofs.conf libaudit.conf reader.conf
autofs_ldap_auth.conf libuser.conf request-key.conf
cas.conf logrotate.conf resolv.conf
dnsmasq.conf ltrace.conf rsyslog.conf
dracut.conf mke2fs.conf sestatus.conf
etc-2017-11-15_16:43:00 mtools.conf smartd.conf
fprintd.conf named.conf sos.conf
gai.conf nfsmount.conf sudo-ldap.conf
grub.conf nsswitch.conf sudo.conf
gssapi_mech.conf ntp.conf sysctl.conf
hba.conf oddjobd.conf updatedb.conf
host.conf openct.conf warnquota.conf
idmapd.conf pbm2ppa.conf yp.conf
kdump.conf pm-utils-hd-apm-restore.conf yum.conf
krb5.conf pnm2ppa.conf
[root@little ~]#