chown练习

chown练习

创建组账户vrrp、tomcat
创建用户yaml并设置其基本组为vrrp,创建用户ansible并设置其附加组为tomcat,所有用户设置密码为playbook
创建目录/nfsshare,创建空文件/nfsshare/readme.md
将/nfsshare/redme.md文件所有者修改为yaml,所属组修改为vrrp组
创建目录/nfsshare/permission/deny,创建空文件/nfsshare/permission/deny/already.exist
递归修改/nfsshare/permission所有子目录和文件,所有者为ansible,所属组为tomcat
创建空文件/nfsshare/rsync.txt、/nfsshare/kickstart.txt
仅修改/nfsshare/rsync.txt所属组为tomcat;修改/nfsshare/kickstart所有者为yaml,所属组为vrrp

参考答案

步骤一:创建组账户vrrp、tomcat

//使用groupadd命令创建组账户
[root@localhost ~]# groupadd  vrrp
[root@localhost ~]# groupadd  tomcat

步骤二:创建用户yaml并设置其基本组为vrrp,创建用户ansible并设置其附加组为tomcat,所有用户设置密码为playbook

//使用useradd命令创建yaml用户,通过-g选择指定基本组为vrrp
[root@localhost ~]# useradd  -g  vrrp  yaml
//使用useradd命令创建ansible用户,通过-G选择指定附加组为tomcat
[root@localhost ~]# useradd -G tomcat ansible

步骤三:创建目录/nfsshare,创建空文件/nfsshare/readme.md

//使用mkdir创建目录
[root@localhost ~]# mkdir /nfsshare
//使用touch命令创建空文件
[root@localhost ~]# touch /nfsshare/readme.md

易错练习(绝对路径与相对路径傻傻分不清)

touch /nfsshare/readme.md是绝对路径创建的文件,当前工作目录为root家目录,如果此时使用ls查看当前目录下的文件,无法找到readme.md。
[root@localhost ~]# ls  readme.md
ls: 无法访问readme.md: 没有那个文件或目录(英文报错:No such file or directory)
//注意观察cd后,命令提示符的变化
[root@localhost ~]# cd  /nfsshare
[root@localhost nfsshare]# ls  readme.md

步骤四:将/nfsshare/redme.md文件所有者修改为yaml,所属组修改为vrrp组

//未修改前,查看文件详细信息
[root@localhost ~]# ls -l /nfsshare/readme.md 
-rw-r--r--. 1 root root 0 11月  1 18:39 /nfsshare/readme.md
//使用chown命令修改文件所有者和所属组
[root@localhost ~]# chown yaml:vrrp /nfsshare/readme.md 
//修改后,使用ls命令查看文件相信信息
[root@localhost ~]# ls -l /nfsshare/readme.md 
-rw-r--r--. 1 yaml vrrp 0 11月  1 18:39 /nfsshare/readme.md
//使用su命令把计算机用户切换为yaml用户,注意命令提示符的变化
[root@localhost ~]# su  -   yaml
//使用普通用户yaml,测试对文件是否有写权限
[yaml@localhost ~]$ vim /nfsshare/readme.md
默认文件无法编辑,按i键进入编辑模式,写入如下内容
hello the world
no such file or directory
按ESC返回命令模式,再输入:wq保存退出
//cat查看文件内容,验证效果
[yaml@localhost ~]$ cat /nfsshare/readme.md
//【重要】使用exit命令,退出yaml用户,返回root用户
[yaml@localhost ~]$ exit

步骤五:创建目录/nfsshare/permission/deny,创建空文件/nfsshare/permission/deny/already.exist

易错练习(父目录不存在,直接创建子目录),故意出错,熟记错误信息

[root@localhost ~]# mkdir  /nfsshare/permission/deny
mkdir: 无法创建目录"/nfsshare/permission/deny": 没有那个文件或目录
(英文报错信息:No such file or directory)
正确演示
//创建目录,-p创建多级子目录
[root@localhost ~]# mkdir -p /nfsshare/permission/deny
//创建空文件
[root@localhost ~]# touch /nfsshare/permission/deny/already.exist

步骤六:递归修改/nfsshare/permission所有子目录和文件,所有者为ansible,所属组为tomcat

//chown修改文件或目录的所有者和所属组,-R递归修改所有子目录和子文件
[root@localhost ~]# chown -R ansible:tomcat /nfsshare/permission/
//ls -ld查看目录的详细信息,验证效果
[root@localhost ~]# ls -ld /nfsshare/permission/
drwxr-xr-x. 3 ansible tomcat 18 11月  1 22:00 /nfsshare/permission/
//ls -ld查看子目录的详细信息,验证效果
[root@localhost ~]# ls -ld /nfsshare/permission/deny/drwxr-xr-x. 3 ansible tomcat 36 11月  1 22:04 /nfsshare/permission/deny/
//ls -l查看文件详细信息,验证效果
[root@localhost ~]# ls -l /nfsshare/permission/deny/already.exist 
-rw-r--r--. 1 ansible tomcat 0 11月  1 22:02 /nfsshare/permission/deny/already.exist

步骤七:创建空文件/nfsshare/rsync.txt、/nfsshare/kickstart.txt

//创建空文件/nfsshare/rsync.txt和/nfsshare/kickstart.txt
[root@localhost ~]# touch  /nfsshare/{rsync,kickstart}.txt
步骤八:仅修改/nfsshare/rsync.txt所属组为tomcat;修改/nfsshare/kickstart所有者为yaml,所属组为vrrp

//chown命令仅修改文件所属组
[root@localhost ~]# chown :tomcat /nfsshare/rsync.txt 
//chown命令修改文件所有者和所属组,用户和组之间可以使用:或者使用.分隔
[root@localhost ~]# chown yaml.vrrp /nfsshare/kickstart.txt 

6 实验题:chmod练习(延续上一题练习题)

使用yum安装tree命令,使用tree命令查看/nfsshare目录树
使用相对路径和绝对路径查看/nfsshare目录下所有资料的权限
修改/nfsshare目录权限,用户权限为读写执行,组权限为读写执行,其他人为读和执行。
修改/nfsshare/kickstart.txt权限,用户可读写,组只读,其他人没有任何权限
修改/nfsshare/readme.md权限,所有用户对该文件具有执行权限
修改/nfsshare/rsync.txt权限,用户可读写,组和其他人没有任何权限
修改/nfsshare/permission/deny/目录权限,任何人对该目录都可写,所有人仅可以删除自己创建的文件,无法删除其他人的文件

参考答案
步骤一:使用yum安装tree命令,使用tree命令查看/nfsshare目录树

//安装软件包
[root@localhost ~]# yum -y install tree
//查看目录树状结构(效果如图-1所示)
[root@localhost ~]# tree  /nfsshare/

图-1
步骤二:使用相对路径和绝对路径查看/nfsshare目录下所有资料的权限

//绝对路径查看权限
[root@localhost ~]# ls -l   /nfsshare/
	-rw-r--r--. 1 yaml    vrrp    0 11月  1 22:24 kickstart.txt
drwxr-xr-x. 3 ansible tomcat 18 11月  1 22:00 permission
	-rw-r--r--. 1 yaml    vrrp   42 11月  1 21:56 readme.md
	-rw-r--r--. 1 root    tomcat  0 11月  1 22:24 rsync.txt
[root@localhost ~]# ls -l  /nfsshare/permission/
	drwxr-xr-x. 2 ansible tomcat 27 11月  1 22:37 deny
[root@localhost ~]# ls -l  /nfsshare/permission/deny/
	-rw-r--r--. 1 ansible tomcat 0 11月  1 22:02 already.exist
//相对路径查看权限
[root@localhost nfsshare]# ls -l 
	-rw-r--r--. 1 yaml    vrrp    0 11月  1 22:24 kickstart.txt
	drwxr-xr-x. 3 ansible tomcat 18 11月  1 22:00 permission
	-rw-r--r--. 1 yaml    vrrp   42 11月  1 21:56 readme.md
	-rw-r--r--. 1 root    tomcat  0 11月  1 22:24 rsync.txt
[root@localhost nfsshare]# ls -l ./
	-rw-r--r--. 1 yaml    vrrp    0 11月  1 22:24 kickstart.txt
	drwxr-xr-x. 3 ansible tomcat 18 11月  1 22:00 permission
	-rw-r--r--. 1 yaml    vrrp   42 11月  1 21:56 readme.md
	-rw-r--r--. 1 root    tomcat  0 11月  1 22:24 rsync.txt
[root@localhost nfsshare]# ls -l permission/
	drwxr-xr-x. 2 ansible tomcat 27 11月  1 22:37 deny
[root@localhost nfsshare]# ls -l permission/deny/
	-rw-r--r--. 1 ansible tomcat 0 11月  1 22:02 already.exist
[root@localhost nfsshare]# cd permission/deny/
[root@localhost deny]# ls -l
	-rw-r--r--. 1 ansible tomcat 0 11月  1 22:02 already.exist
//.代表当前目录,..代表上一级目录,../..代表上一级的上一级目录
[root@localhost deny]# cd ../..

提示:文件和目录的相对路径和绝对路径是一个非常重要的知识点,一定要多练习!
步骤三:修改/nfsshare目录权限,用户权限为读写执行,组权限为读写执行,其他人为读和执行。

//使用字母符号的方式修改权限
[root@localhost nfsshare]# ll -d /nfsshare/
	drwxr-xr-x. 3 root root 79 11月  1 22:24 /nfsshare/
[root@localhost nfsshare]# chmod u=rwx,g=rwx,o=rx /nfsshare/
[root@localhost nfsshare]# ll -d /nfsshare/
	drwxrwxr-x. 3 root root 79 11月  1 22:24 /nfsshare/
//使用数字的方式修改权限
[root@localhost nfsshare]# chmod  775  /nfsshare/

步骤四:修改/nfsshare/kickstart.txt权限,用户可读写,组只读,其他人没有任何权限

//查看文件现有权限信息
[root@localhost ~]# ls -l /nfsshare/kickstart.txt 
	-rw-r--r--. 1 yaml vrrp 0 11月  1 22:24 /nfsshare/kickstart.txt
	//使用字母符号的方式修改权限(在现有权限的基础上,添加或缩减权限)
[root@localhost ~]# chmod o-r /nfsshare/kickstart.txt 
[root@localhost ~]# ls -l /nfsshare/kickstart.txt 
-rw-r-----. 1 yaml vrrp 0 11月  1 22:24 /nfsshare/kickstart.txt
	//使用数字的方式修改权限
[root@localhost ~]# chmod 640 /nfsshare/kickstart.txt

步骤五:修改/nfsshare/readme.md权限,所有用户对该文件具有执行权限

//查看文件权限信息
[root@localhost ~]# ls /nfsshare/readme.md -l
	-rw-r--r--. 1 yaml vrrp 42 11月  1 21:56 /nfsshare/readme.md
	//使用字母符号的方式修改权限
[root@localhost ~]# chmod +x /nfsshare/readme.md 
[root@localhost ~]# ls /nfsshare/readme.md -l
	-rwxr-xr-x. 1 yaml vrrp 42 11月  1 21:56 /nfsshare/readme.md
	//使用数字形式修改权限
[root@localhost ~]# chmod 755 /nfsshare/readme.md

步骤六:修改/nfsshare/rsync.txt权限,用户可读写,组和其他人没有任何权限

	//提前进入目录,使用相对路径查看文件详细信息(相对路径)
[root@localhost ~]# cd /nfsshare/
[root@localhost nfsshare]# ls  rsync.txt  -l
	-rw-r--r--. 1 root tomcat 0 11月  1 22:24 rsync.txt
	//在原有文件权限的基础上,组和其他用户减去r读的权限(相对路径)
[root@localhost nfsshare]# chmod g-r,o-r ./rsync.txt 
[root@localhost nfsshare]# ls ./rsync.txt -l
	-rw-------. 1 root tomcat 0 11月  1 22:24 ./rsync.txt
	//不关心原来的文件权限,为用户,组,其他人重新设置权限(相对路径)
[root@localhost nfsshare]# chmod u=rw,g=-,o=-  rsync.txt
	//使用数字方式修改文件权限(绝对路径)
[root@localhost nfsshare]# chmod  600  /nfsshare/rsync.txt

步骤七:修改/nfsshare/permission/的权限,以后在该目录下创建的任何文件都自动继承该父目录的组(在该目录下创建的所有资料都自动属于tomcat组)

//查看目录详细相信
[root@localhost ~]# ls -ld /nfsshare/permission/
	drwxr-xr-x. 3 ansible tomcat 18 11月  1 22:00 /nfsshare/permission/
//未修改权限前,创建文件验证
[root@localhost ~]# touch /nfsshare/permission/new.txt
[root@localhost ~]# ls /nfsshare/permission/new.txt -l
	-rw-r--r--. 1 root root 0 11月 11 13:51 /nfsshare/permission/new.txt
//修改目录权限(设置SGID),再次创建文件验证效果
[root@localhost ~]# chmod  g+s  /nfsshare/permission/
[root@localhost ~]# ls -ld  /nfsshare/permission/
	drwxr-sr-x. 3 ansible tomcat 33 11月 11 13:51 /nfsshare/permission/
[root@localhost ~]# touch /nfsshare/permission/router.txt
[root@localhost ~]# ls -l /nfsshare/permission/router.txt 
	-rw-r--r--. 1 root tomcat 0 11月 11 13:53 /nfsshare/permission/router.txt

修改/nfsshare/permission/deny/目录权限,任何人对该目录都可写,所有人仅可以删除自己创建的文件,无法删除其他人的文件

//查看目录详细信息

[root@localhost ~]# ls /nfsshare/permission/deny/ -ld
drwxr-xr-x. 2 ansible tomcat 27 11月  1 22:37 /nfsshare/permission/deny/
//修改权限,任何人对该目录都具有可写权限
[root@localhost ~]# chmod a+w /nfsshare/permission/deny/
[root@localhost ~]# ls /nfsshare/permission/deny/ -ld
drwxrwxrwx. 2 ansible tomcat 27 11月  1 22:37 /nfsshare/permission/deny/
//修改权限,所有人仅可以删除自己的文件,无法删除其他人的文件(设置Sticky权限)
[root@localhost ~]# chmod o+t /nfsshare/permission/deny/
[root@localhost ~]# ls /nfsshare/permission/deny/ -ld
drwxrwxrwt. 2 ansible tomcat 27 11月  1 22:37 /nfsshare/permission/deny/

ACL访问控制列表练习(延续前面的练习环境)

创建三个用户inotify、configure、device,密码均为podman
修改/nfsshare/rsync.txt权限,让inotify用户对该文件可读可写
递归设置/nfsshare/permission/目录的ACL权限,用device组对该目录及其子目录具有读写执行权限
清除/nfsshare/rsync.txt文件的所有ACL权限
参考答案
步骤一:创建三个用户inotify、configure、device,密码均为podman

//使用useradd命令创建用户

[root@localhost ~]# useradd  inotify
[root@localhost ~]# useradd  configure
[root@localhost ~]# useradd  device
//使用passwd命令修改用户密码
[root@localhost ~]# passwd  inotify
[root@localhost ~]# passwd  configure
[root@localhost ~]# passwd  device

步骤二:修改/nfsshare/rsync.txt权限,让inotify用户对该文件可读可写


[root@localhost ~]# cd  /nfsshare
//使用ls命令查看文件详细信息(相对路径)
[root@localhost nfsshare]# ls -l rsync.txt 
-rw-------. 1 root tomcat 0 11月  1 22:24 rsync.txt
//使用getfacl命令查看文件的ACL访问控制权限(相对路径)
[root@localhost nfsshare]# getfacl rsync.txt 
#file: rsync.txt
#owner: root
#group: tomcat
user::rw-
group::---
other::---
//使用setfacl命令设置文件ACL权限
//-m(modify)代表修改权限,u(user)代表设置用户ACL权限,inotify是用户名,rw是权限
[root@localhost nfsshare]# setfacl -m u:inotify:rw rsync.txt 
[root@localhost nfsshare]# getfacl rsync.txt 


#file: rsync.txt
#owner: root
#group: tomcat
user::rw-
user:inotify:rw-
group::---
mask::rw-
other::---

步骤三:递归设置/nfsshare/permission/目录的ACL权限,用device组对该目录及其子目录具有读写执行权限

[root@localhost ~]# cd /nfsshare/
//使用getfacl命令查看目录的ACL权限信息(相对路径)
[root@localhost nfsshare]# getfacl permission/
# file: permission/
# owner: ansible
# group: tomcat
# flags: -s-
user::rwx
group::r-x
other::r-x
//使用setfacl命令设置文件ACL权限(相对路径)
//-R代表递归,修改目录及其所有子目录和子文件的ACL权限
//-m(modify)代表修改权限,g(group)代表设置组ACL权限,device是组名,rwx是权限
[root@localhost nfsshare]# setfacl -R -m g:device:rwx permission/

提示:文件和目录的相对路径和绝对路径是一个非常重要的知识点,一定要多加练习!
步骤四:清除/nfsshare/rsync.txt文件的所有ACL权限

//清除文件的所有ACL权限
[root@localhost nfsshare]# setfacl -b /nfsshare/rsync.txt 
//查看文件ACL权限
[root@localhost nfsshare]# getfacl /nfsshare/rsync.txt 
getfacl: Removing leading '/' from absolute path names
	#file: nfsshare/rsync.txt
	#owner: root
	#group: tomcat
	user::rw-
	group::---
	other::---
# 创建用户harry,创建目录/opt/private,如何禁止用户harry对/opt/private目录有任何权限,但不影响其他用户对此目录的访问

参考答案

[root@localhost ~]# mkdir  /opt/private
[root@localhost ~]# setfacl  -m  u:harry:-  /opt/private/
[root@localhost ~]# getfacl /opt/private/
getfacl: Removing leading '/' from absolute path names
#file: opt/private/
#owner: root
#group: root
user::rwx
user:harry:---                                     //确认结果
group::r-x
mask::r-x
other::r-x

新建目录/var/public,允许任何人写入,但禁止更改其他用户的文件

参考答案

[root@localhost ~]# mkdir  /var/public
[root@localhost ~]# chmod  ugo=rwx  /var/public
[root@localhost ~]# chmod  o+t  /var/public
[root@localhost ~]# ls -ld /var/public/
drwxrwxrwt. 2 root root 6 Nov 26 00:11 /var/public/

新建目录新建/tarena目录使用户configure对此目录具有rwx权限,其他人对此目录无任何权限

参考答案

[root@localhost ~]# mkdir /tarena
[root@localhost ~]# ls -ld /tarena/
	drwxr-xr-x. 2 root root 6 3月   3 14:39 /tarena/
[root@localhost ~]# chown  configure /tarena/
[root@localhost ~]# chmod o=--- /tarena/
[root@localhost ~]# ls -ld /tarena/
	drwxr-x---. 2 configure root 6 3月   3 14:39 /tarena/

创建ACL访问权限,让lisi可以查看/etc/shadow文件

参考答案

[root@localhost ~]# useradd lisi
[root@svr7 ~]# setfacl -m u:lisi:r /etc/shadow
[root@svr7 ~]# getfacl /etc/shadow
	getfacl: Removing leading '/' from absolute path names
	#file: etc/shadow
	#owner: root
	#group: root
	user::---
	user:lisi:r--
	group::---
	mask::r--
	other::---
[root@svr7 ~]# su - lisi
[lisi@svr7 ~]$ cat /etc/shadow
	root:$6$SEs4pO9FblvOFnNk$ZIMUYUpSjS9UQHPsscuNe/xYGYjMqxV/uFqRJVAi.nNJawAC05Ah8fwV.HVEF58yuhVRYKt4wOBEoqKsr1/ZX/::0:99999:7:::
	bin:*:17632:0:99999:7:::
	daemon:*:17632:0:99999:7:::
	adm:*:17632:0:99999:7:::
	lp:*:17632:0:99999:7:::
……
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值