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
例:
[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 ~]#
linux-practice(20-22)