linux-practice(20-22)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-practice(20-22)相关的知识,希望对你有一定的参考价值。
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
例:
[[email protected] ~]# groupadd qiuxiang
[[email protected] ~]#
[[email protected] ~]# cat /etc/group
[[email protected] ~]# tail -1 /etc/group
qiuxiang:x:5002:
[[email protected] ~]#
[[email protected] ~]# useradd xiaoqiang -G 5002; useradd wangcai -G 5002; useradd tangbohu -G 5002
[[email protected] ~]# tail -4 /etc/group
qiuxiang:x:5002:xiaoqiang,wangcai,tangbohu
xiaoqiang:x:5003:
wangcai:x:5004:
tangbohu:x:5005:
[[email protected] ~]#
[[email protected] ~]# su - tangbohu
[[email protected] ~]$ mkdir -pv /tmp/mydir
[[email protected] ~]$
[[email protected] ~]$ ls /tmp | grep "^my*"
mydir
[[email protected] ~]$
[[email protected] ~]$ id
uid=5004(tangbohu) gid=5005(tangbohu) groups=5005(tangbohu),5002(qiuxiang)
[[email protected] ~]$ chmod 775 /tmp/mydir
[[email protected] ~]$ chgrp 5002 /tmp/mydir
[[email protected] ~]$ chmod 775 /tmp/mydir/
[[email protected] ~]$ su
Password:
[[email protected] 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执行"[[email protected] ~]$ /tmp/xmcat /home/xiaoming/project.plan"命令就能看到该文件的内容;
答:
$ install -m 4700 /bin/cat /tmp/xmcat
$ setfacl -m u:wangcai:r-x /tmp/xmcat
例:
[[email protected] tangbohu]# install -o wangcai -g xiaoqiang -m 740 /etc/fstab /var/tmp
[[email protected] tangbohu]#
[[email protected] tangbohu]# ls /var/tmp
fstab yum-little-fVn5BR
[[email protected] tangbohu]# echo "xiaoming:x:8089:8089:Wang Xiaoming:/home/xiaoming:/bin/bash" >> /etc/passwd
[[email protected] tangbohu]#
[[email protected] tangbohu]# cd
[[email protected] ~]# ls /var/tmp
fstab yum-little-fVn5BR
[[email protected] ~]# cat /etc/passwd
[[email protected] ~]# cp -a /etc/skel /home/xiaoming
[[email protected] ~]#
[[email protected] ~]# chmod 700 /home/xiaoming
[[email protected] ~]#
[[email protected] ~]# chowm -R 8089:8089 /home/xiaoming
bash: chowm: command not found
[[email protected] ~]#
[[email protected] ~]# chown -R 8089:8089 /home/xiaoming
[[email protected] ~]#
[[email protected] ~]# echo "xiaoming::17262:5:30:3:7::" >> /etc/shadow
[[email protected] ~]#
[[email protected] ~]# passwd xiaoming
Changing password for user xiaoming.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[[email protected] ~]#
[[email protected] ~]# su - xiaoming
[[email protected] ~]$ touch project.plan
[[email protected] ~]$
[[email protected] ~]$ ls
project.plan
[[email protected] ~]$ install -m 770 /bin/cat /tmp/xmcat
[[email protected] ~]$ ls /tmp
[[email protected] ~]$ su -c "usermod -g 8089 wangcai"
[[email protected] ~]$
[[email protected] ~]$ ls /tmp
[[email protected] ~]$ /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: 利用家目录创建用户
例:
[[email protected] ~]# 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
[[email protected] ~]#
[[email protected] ~]# ls -d /backup &> /dev/null && echo "This is exist." || echo "This is not exist"
This is exist.
[[email protected] ~]# ls /backup/
etc-2017-11-15_16:43:00
[[email protected] ~]#
[[email protected] ~]# ls -d /backup &> /dev/null && cp /etc/*.conf /backup
[[email protected] ~]#
[[email protected] ~]# 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
[[email protected] ~]#
以上是关于linux-practice(20-22)的主要内容,如果未能解决你的问题,请参考以下文章
无法将参数'2'的'char *(*)[6]'转换为'char ***'为'void prac(int *,char ***)'(代码片