作业:
1.当用户docker对/testdir 目录无执行权限时,意味着无法做哪些操作?
2.当用户mongodb对/testdir目录无读权限时,意味着无法做哪些操作?
3.当用户redis 对/testdir目录无写权限时,该目录下的只读文件fifile1是否可修改和删除?
4.当用户zabbix对/testdir 目录有写和执行权限时,该目录下的只读文件fifile1是否可修改和删除
5.复制/etc/fstab文件 到/var/tmp下,设置文件所有者为tomcat读写权限, 所属组为apps组有读写权限,其他人无权限
6.误删除了用户git的家目录,请重建并恢复该用户家目录及相应的权限属性
7.在/testdir/dir里 创建的新文件自动属于webs组,组apps的成员如: tomcat能对这些新文件有读写权限,组dbs的成员如: mysql只能对新文件有读权限,其它用户(不属于webs ,apps,dbs)不能访问这个文件夹.
8.误将/bin/chmod文件的执行权限删除,如何恢复?
9.查出/tmp的权限,以数字方式显示
j.某文件权限为: ---,-用数值形式表示该权限,则该入进制为
k.如何查看file 1文件的第300-500行的内容?
l.创建用户gentoo,附加组为bin和root, 默认shell为/bin/csh, 注释信息为"Gentoo Distribution"
m.创建下面的用户,
1).组和组的成员关系名字为webs的组
2).用户nginx,使用webs作为附加组
3).用户MySQL,可交互登录系统,且不是webs的成员,nginx和MySQL 的密码都是itlaoxin
10.写一个脚本,判断我们的命令是否被别人改动,如果改动过就输出改动的命令名字,如果没有改动,那.
就提示: 一切OK
解答:
脚本作业:
写一个脚本,判断我们的命令是否被别人改动,如果改动过就输出改动的命令名字,如果没有改动,那.
就提示: 一切OK
#!/bin/bash
for name in `ls /usr/bin/`
do
rpm -Vf /usr/bin/${name}
if [ $? -eq 0 ]; then
log=0
else
log=1
inf=$(rpm -Vf /usr/bin/${name})
for (( i=0;i<=8;i++))
do
if [ ${i} -eq 0 ] ;then
if [ ${inf:0:1} = S ] ; then
s="大小,"
fi
elif [ ${i} -eq 1 ] ;then
if [ ${inf:1:1} = M ] ; then
m="权限,"
fi
elif [ ${i} -eq 2 ] ;then
if [ ${inf:2:1} = 5 ] ; then
w="内容,"
fi
elif [ ${i} -eq 3 ] ;then
if [ ${inf:3:1} = L ] ; then
l="连接,"
echo ${inf:3:1}4444444444444444
fi
elif [ ${i} -eq 4 ] ;then
if [ ${inf:4:1} = D ] ; then
d="设备,"
fi
elif [ ${i} -eq 5 ] ;then
if [ ${inf:5:1} = U ] ; then
u="用户,"
fi
elif [ ${i} -eq 6 ] ;then
if [ ${inf:6:1} = G ] ; then
g="属组,"
fi
elif [ ${i} -eq 7 ] ;then
if [ ${inf:7:1} = T ] ; then
t="修改时间,"
fi
elif [ ${i} -eq 8 ] ;then
if [ ${inf:8:1} = P] ; then
P="功能,"
fi
fi
done
echo "****${name}命令${s}${m}${w}${l}${d}${u}${g}${t}被改动!!****">>/root/rpmlog.txt
s="";m="";w="";l="";d="";u="";g="";t="";P="";
fi
done
if [ log -eq 0 ] ;then
echo "一切OK"
else
cat /root/rpmlog.txt
rm -rf /root/rpmlog.txt
fi
~
实现效果:
练习题:
1.当用户docker对/testdir 目录无执行权限时,意味着无法做哪些操作?
1)文件属主不为用户docker时:1.可以查看目录,2.不可以修改,3.不可以在文件夹下创建目录或文件,4.不可以修改此文件名称,5.不可删除目录
[root@zzp ~]# mkdir -p -m 666 /testdir
[root@zzp ~]# ll -d /testdir/
drw-rw-rw-. 2 root root 6 10月 22 17:34 /testdir/
[root@zzp ~]# useradd docker
[root@zzp ~]# su - docker
[docker@zzp ~]$ cd /testdir
-bash: cd: /testdir: 权限不够
[docker@zzp ~]$ ls /testdir
[docker@zzp ~]$ mkdir -p /testdir/aaa
mkdir: 无法创建目录"/testdir": 权限不够
[docker@zzp ~]$ touch /testdir/a.txt
touch: 无法创建"/testdir/a.txt": 权限不够
[docker@zzp ~]$ mv /testdir /testdir2
mv: 无法将"/testdir" 移动至"/testdir2": 权限不够
[docker@zzp ~]$ mv /testdir /etc/
mv: 无法将"/testdir" 移动至"/etc/testdir": 权限不够
2)文件属主为用户docker时:1.可以查看目录,2.不可以修改目录名称,3.不可移动,4.不可以在文件夹下创建目录或文件,5.不可以删除目录
[root@zzp ~]# ll -d /testdir/
drw-rw-rw-. 2 root root 6 10月 22 17:34 /testdir/
[root@zzp ~]# chown docker: /testdir
[root@zzp ~]# ll -d /testdir/
drw-rw-rw-. 2 docker docker 6 10月 22 17:34 /testdir/
[root@zzp ~]# chown docker:root /testdir
[root@zzp ~]# ll -d /testdir/
drw-rw-rw-. 2 docker root 6 10月 22 17:34 /testdir/
[root@zzp ~]# su - docker
上一次登录:六 10月 22 17:35:23 CST 2022pts/0 上
'[docker@zzp ~]$ ll -d /testdir
drw-rw-rw-. 2 docker root 6 10月 22 17:34 /testdir
[docker@zzp ~]$ ls /testdir/
[docker@zzp ~]$ mkdir /testdir/aa
mkdir: 无法创建目录"/testdir/aa": 权限不够
[docker@zzp ~]$ mv /testdir /testdir
mv: 无法获取"/testdir/testdir" 的文件状态(stat): 权限不够
[docker@zzp ~]$ mv /testdir /testdir2
mv: 无法将"/testdir" 移动至"/testdir2": 权限不够
[docker@zzp ~]$ rm -rf /testdir
rm: 无法删除"/testdir": 权限不够
[docker@zzp ~]$
3)文件是docker用户创建的时:1.可以查看目录,2.可以修改目录名称,3.不可移动,4.不可以在文件夹下创建目录或文件,5.可以删除此目录
[docker@zzp ~]$ mkdir -m 666 testdir
[docker@zzp ~]$ ll -d testdir
drw-rw-rw-. 2 docker docker 6 10月 22 19:53 testdir
[docker@zzp ~]$ ls testdir/
[docker@zzp ~]$ cd testdir/
-bash: cd: testdir/: 权限不够
[docker@zzp ~]$ mkdir testdir/aa
mkdir: 无法创建目录"testdir/aa": 权限不够
[docker@zzp ~]$ touch testdir/aa.txt
touch: 无法创建"testdir/aa.txt": 权限不够
[docker@zzp ~]$ mv testdir /etc/
mv: 无法将"testdir" 移动至"/etc/testdir": 权限不够
[docker@zzp ~]$ mv testdir testdir1
[docker@zzp ~]$ ll
总用量 0
drw-rw-rw-. 2 docker docker 6 10月 22 19:53 testdir1
[docker@zzp ~]$ rm -rf testdir1/
[docker@zzp ~]$ ll
总用量 0
[docker@zzp ~]$
2.当用户mongodb对/testdir目录无读权限时,意味着无法做哪些操作?
1)当文件/testdir 权限为:-wx-wx-wx,用户mongodb不是此目录的家目录也不是其所有者时:用户mongodb:1.不能查看/testdir内容,2.可以cd进入目录,可以在目录里创建文件,3。可以删除目录里新创建的文件,4.不可以修改此目录名称也不可以移动目录,5.不可以删除此目录
[root@zzp ~]# useradd mongodb
[root@zzp ~]# ll -d /testdir
drw-rw-rw-. 2 docker root 6 10月 22 17:34 /testdir
[root@zzp ~]# chmod 333 /testdir
[root@zzp ~]# !ll
ll -d /testdir
d-wx-wx-wx. 2 docker root 6 10月 22 17:34 /testdir
[root@zzp ~]# su - mongodb
[mongodb@zzp ~]$ ls /testdir/
ls: 无法打开目录/testdir/: 权限不够
[mongodb@zzp ~]$ cd /testdir/
[mongodb@zzp testdir]$ mkdir aa
[mongodb@zzp testdir]$ ls
ls: 无法打开目录.: 权限不够
[mongodb@zzp testdir]$ touch aa.txt
[mongodb@zzp testdir]$ rm -rf aa.txt
[mongodb@zzp testdir]$ exit
登出
[root@zzp ~]# ls -al -R /testdir/
/testdir/:
总用量 0
d-wx-wx-wx. 3 docker root 16 10月 22 20:33 .
dr-xr-xr-x. 18 root root 239 10月 22 17:34 ..
drwxrwxr-x. 2 mongodb mongodb 6 10月 22 20:32 aa
/testdir/aa:
总用量 0
drwxrwxr-x. 2 mongodb mongodb 6 10月 22 20:32 .
d-wx-wx-wx. 3 docker root 16 10月 22 20:33 ..
[root@zzp ~]# su - mongodb
上一次登录:六 10月 22 20:31:39 CST 2022pts/0 上
[mongodb@zzp ~]$ mv /testdir /tes
mv: 无法将"/testdir" 移动至"/tes": 权限不够
[mongodb@zzp ~]$ mv /testdir /etc
mv: 无法将"/testdir" 移动至"/etc/testdir": 权限不够
[mongodb@zzp ~]$ rm -rf /testdir
rm: 无法删除"/testdir": 权限不够
2)当文件/testdir 权限为:-wx-wx-wx,用户mongodb是此目录的家目录但不是其所有者时:用户mongodb:1.不能查看/testdir内容,可以看目录属性,2.可以cd进入目录,可以在目录里创建文件,3.可以删除目录里新创建的文件和其他用户创建的文件,4.不可以修改此目录名称也不可以移动目录,5.不可以删除此目录
[root@zzp ~]# chown mongodb:mongodb /testdir
[root@zzp ~]# ll -dR /testdir
d-wx-wx-wx. 3 mongodb mongodb 16 10月 22 20:33 /testdir
[root@zzp testdir]# su - mongodb
上一次登录:六 10月 22 20:36:24 CST 2022pts/0 上
[mongodb@zzp ~]$ ll -d /testdir/
d-wx-wx-wx. 3 mongodb mongodb 16 10月 22 20:33 /testdir/
[mongodb@zzp ~]$ ls /testdir/
ls: 无法打开目录/testdir/: 权限不够
[mongodb@zzp ~]$ cd /testdir/
[mongodb@zzp testdir]$ ls
ls: 无法打开目录.: 权限不够
[mongodb@zzp testdir]$ mkdir aa
mkdir: 无法创建目录"aa": 文件已存在
[mongodb@zzp testdir]$ mkdir bb
[mongodb@zzp testdir]$ rm -rf aa bb
[mongodb@zzp testdir]$ exit
登出
[root@zzp testdir]# ls /testdir/
[root@zzp testdir]# mkdir /testdir/cc
[root@zzp testdir]# ls /testdir/
cc
[root@zzp testdir]# ll /testdir/
总用量 0
drwxr-xr-x. 2 root root 6 10月 22 20:59 cc
[root@zzp testdir]# su - mongodb
上一次登录:六 10月 22 20:56:11 CST 2022pts/0 上
[mongodb@zzp ~]$ cd /testdir/
[mongodb@zzp testdir]$ rm -rf cc
[mongodb@zzp testdir]$ exit
登出
[root@zzp testdir]# ll /testdir/
总用量 0
[root@zzp testdir]# su - mongodb
上一次登录:六 10月 22 20:59:42 CST 2022pts/0 上
[mongodb@zzp ~]$ mv /testdir /tes
mv: 无法将"/testdir" 移动至"/tes": 权限不够
[mongodb@zzp ~]$ mv /testdir /etc
mv: 无法将"/testdir" 移动至"/etc/testdir": 权限不够
[mongodb@zzp ~]$ rm -rf /testdir
rm: 无法删除"/testdir": 权限不够
[mongodb@zzp ~]$ stat /testdir
文件:"/testdir"
大小:6 块:0 IO 块:4096 目录
设备:803h/2051d Inode:17695397 硬链接:2
权限:(0333/d-wx-wx-wx) Uid:( 1002/ mongodb) Gid:( 1002/ mongodb)
环境:unconfined_u:object_r:default_t:s0
最近访问:2022-10-22 21:00:18.625959861 +0800
最近更改:2022-10-22 21:00:03.195160366 +0800
最近改动:2022-10-22 21:00:03.195160366 +0800
创建时间:-
[mongodb@zzp ~]$
3)当文件testdir 权限为:-wx-wx-wx,用户mongodb是此目录的家目录也是其所有者时:用户mongodb:1.不能查看/testdir内容,可以看目录属性,2.可以cd进入目录,可以在目录里创建文件,3.可以删除目录里新创建的文件和其他用户创建的文件,4.不可以修改此目录名称也不可以移动目录,5.可以删除此目录
[mongodb@zzp ~]$ mkdir testdir
[mongodb@zzp ~]$ chmod 333 testdir/
[mongodb@zzp ~]$ ll -d testdir/
d-wx-wx-wx. 2 mongodb mongodb 6 10月 22 21:10 testdir/
[mongodb@zzp ~]$ ls testdir/
ls: 无法打开目录testdir/: 权限不够
[mongodb@zzp ~]$ stat testdir/
文件:"testdir/"
大小:6 块:0 IO 块:4096 目录
设备:803h/2051d Inode:51973082 硬链接:2
权限:(0333/d-wx-wx-wx) Uid:( 1002/ mongodb) Gid:( 1002/ mongodb)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2022-10-22 21:10:13.277309045 +0800
最近更改:2022-10-22 21:10:13.277309045 +0800
最近改动:2022-10-22 21:10:27.135747373 +0800
创建时间:-
[mongodb@zzp ~]$ cd testdir/
[mongodb@zzp testdir]$ mkdir aa
[mongodb@zzp testdir]$ rm -rf aa
[mongodb@zzp testdir]$ ls
ls: 无法打开目录.: 权限不够
[mongodb@zzp testdir]$ cd
[mongodb@zzp ~]$ rm -rf testdir
[mongodb@zzp ~]$ ls
3.当用户redis 对/testdir目录无写权限时,该目录下的只读文件fifile1是否可修改和删除?
不可以修改内容和属性也不可以删除
[root@zzp testdir]# chmod 555 /testdir
[root@zzp testdir]# ll -d /testdir
dr-xr-xr-x. 2 mongodb mongodb 6 10月 22 21:00 /testdir
[root@zzp testdir]# touch -m 444 file1.txt
[root@zzp testdir]# ll -d file1.txt
-rw-r--r--. 1 root root 0 10月 22 21:19 file1.txt
[root@zzp testdir]# chmod 444 file1.txt
[root@zzp testdir]# ll -d file1.txt
-r--r--r--. 1 root root 0 10月 22 21:19 file1.txt
[root@zzp testdir]# echo aaa>>file1.txt
[root@zzp testdir]# cat file1.txt
aaa
[root@zzp testdir]# useradd redis
[root@zzp testdir]# su - redis
[redis@zzp ~]$ cd /testdir/
[redis@zzp testdir]$ ls
444 file1.txt
[redis@zzp testdir]$ echo bbb>>file1.txt
-bash: file1.txt: 权限不够
[redis@zzp testdir]$ mv file1.txt file2.txt
mv: 无法将"file1.txt" 移动至"file2.txt": 权限不够
[redis@zzp testdir]$ rm -rf file1.txt
rm: 无法删除"file1.txt": 权限不够
[redis@zzp testdir]$
4.当用户zabbix对/testdir 目录有写和执行权限时,该目录下的只读文件fifile1是否可修改和删除
不可以修改内容但可以修改文件属性,可以删除文件
[root@zzp testdir]# su - zabbix
上一次登录:六 10月 22 22:06:11 CST 2022pts/0 上
[zabbix@zzp ~]$ cd /testdir/
[zabbix@zzp testdir]$ echo "I am zabbix">> file1.txt
-bash: file1.txt: 权限不够
[zabbix@zzp testdir]$ cat !$
cat file1.txt
aaa
[zabbix@zzp testdir]$ mv file1.txt f.txt
[zabbix@zzp testdir]$ mv f.txt /root/
mv: 无法获取"/root/f.txt" 的文件状态(stat): 权限不够
[zabbix@zzp testdir]$ mv f.txt /tmp/
[zabbix@zzp testdir]$ exit
登出
[root@zzp testdir]# ls /tmp/
anaconda.log
f.txt
[zabbix@zzp testdir]$ rm -rf !$
rm -rf file1.txt
[zabbix@zzp testdir]$ ls
ls: 无法打开目录.: 权限不够
[zabbix@zzp testdir]$ exit
登出
[root@zzp testdir]# ls /testdir/
[root@zzp testdir]#
5.复制/etc/fstab文件 到/var/tmp下,设置文件所有者为tomcat读写权限, 所属组为apps组有读写权限,其他人无权限
[root@zzp testdir]# useradd tomcat ###创建tomcat用户
[root@zzp testdir]# cp /etc/fstab /var/tmp ###复制/etc/fstab文件 到/var/tmp下
[root@zzp testdir]# cd !$
cd /var/tmp
[root@zzp tmp]# ll -d fstab
-rw-r--r--. 1 root root 501 10月 22 22:23 fstab
[root@zzp tmp]# chown tomcat:apps fstab
chown: 无效的组: "tomcat:apps"
[root@zzp tmp]# groupadd apps ###创建apps组
[root@zzp tmp]# chown tomcat:apps fstab ###设置文件所有者为tomcat, 所属组为apps
[root@zzp tmp]# !ll
ll -d fstab
-rw-r--r--. 1 tomcat apps 501 10月 22 22:23 fstab
[root@zzp tmp]# chmod 660 fstab ###设置文件所有者为tomcat读写权限, 所属组为apps组有读写权限其他人无权限
[root@zzp tmp]# ll -d fstab
-rw-rw----. 1 tomcat apps 501 10月 22 22:23 fstab
[root@zzp tmp]#
6.误删除了用户git的家目录,请重建并恢复该用户家目录及相应的权限属性
[root@zzp tmp]# cd /home/
[root@zzp home]# ll
总用量 4
drwx------. 6 docker docker 143 10月 22 19:59 docker
drwx------. 3 git git 78 10月 22 22:53 git
drwx------. 5 mongodb mongodb 128 10月 22 21:14 mongodb
drwx------. 5 redis redis 128 10月 22 22:04 redis
drwx------. 3 tomcat tomcat 78 10月 22 22:21 tomcat
drwx------. 5 zabbix zabbix 128 10月 22 22:06 zabbix
drwx------. 14 zzp zzp 4096 9月 7 16:47 zzp
[root@zzp home]# rm -rf git
[root@zzp home]# ll
总用量 4
drwx------. 6 docker docker 143 10月 22 19:59 docker
drwx------. 5 mongodb mongodb 128 10月 22 21:14 mongodb
drwx------. 5 redis redis 128 10月 22 22:04 redis
drwx------. 3 tomcat tomcat 78 10月 22 22:21 tomcat
drwx------. 5 zabbix zabbix 128 10月 22 22:06 zabbix
drwx------. 14 zzp zzp 4096 9月 7 16:47 zzp
[root@zzp home]# mkdir -m 700 git
[root@zzp home]# ll -d git
drwx------. 2 root root 6 10月 22 22:54 git
[root@zzp home]# chown git:git git
[root@zzp home]# ll -d git
drwx------. 2 git git 6 10月 22 22:54 git
[root@zzp home]#
7.在/testdir/dir里 创建的新文件自动属于webs组,组apps的成员如: tomcat能对这些新文件有读写权限,组dbs的成员如: mysql只能对新文件有读权限,其它用户(不属于webs ,apps,dbs)不能访问这个文件夹.
8.误将/bin/chmod文件的执行权限删除,如何恢复?
删除权限:
[root@zzp testdir]# ll -d /bin/chmod
-rwxr-xr-x. 1 root root 58584 11月 6 2016 /bin/chmod
[root@zzp testdir]# chmod a-x !$
chmod a-x /bin/chmod
[root@zzp testdir]# ll -d /bin/chmod
-rw-r--r--. 1 root root 58584 11月 6 2016 /bin/chmod
[root@zzp testdir]# chmod a+x /bin/chmod
bash: /usr/bin/chmod: 权限不够
恢复权限:
方法一:使用facl添加权限
[root@zzp testdir]# setfacl -m u:root:rwx /bin/chmod
[root@zzp testdir]# ll -d /bin/chmod
-rw-rwxr--+ 1 root root 58584 11月 6 2016 /bin/chmod
[root@zzp testdir]# chmod 755 /bin/chmod
[root@zzp testdir]# ll -d /bin/chmod
-rwxr-xr-x+ 1 root root 58584 11月 6 2016 /bin/chmod
[root@zzp testdir]#
9.查出/tmp的权限,以数字方式显示
[root@zzp ~]# num=$(stat /tmp|grep 权限|awk '{print $1}')
[root@zzp ~]# echo ${num:4:4}
1777
[root@zzp ~]#
j.某文件权限为: drw-r--r--,用数值形式表示该权限,则该入进制为
k.如何查看file 1文件的第300-500行的内容?
l.创建用户gentoo,附加组为bin和root, 默认shell为/bin/csh, 注释信息为"Gentoo Distribution"
[root@zzp ~]# useradd -s /bin/csh -c "Gentoo Distribution" -G bin,root gentoo
[root@zzp ~]# tail -1 /etc/passwd
gentoo:x:1001:1001:Gentoo Distribution:/home/gentoo:/bin/csh
[root@zzp ~]# id gentoo
uid=1001(gentoo) gid=1001(gentoo) 组=1001(gentoo),0(root),1(bin)
m.创建下面的用户,组和组的成员关系
1).名字为webs的组
2).用户nginx,使用webs作为附加组
3).用户MySQL,不可交互登录系统,且不是webs的成员,nginx和MySQL 的密码都是itlaoxin
[root@zzp ~]# groupadd webs
[root@zzp ~]# useradd -G webs nginx
[root@zzp ~]# echo itlaoxin|passwd --stdin nginx
更改用户 nginx 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@zzp ~]# useradd -s /sbin/nologin mysql
[root@zzp ~]# echo itlaoxin|passwd --stdin mysql
更改用户 mysql 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@zzp ~]# su - mysql
This account is currently not available.
[root@zzp ~]# id nginx
uid=1002(nginx) gid=1003(nginx) 组=1003(nginx),1002(webs)
[root@zzp ~]# id mysql
uid=1003(mysql) gid=1004(mysql) 组=1004(mysql)
[root@zzp ~]# tail -2 /etc/passwd
nginx:x:1002:1003::/home/nginx:/bin/bash
mysql:x:1003:1004::/home/mysql:/sbin/nologin