linux 父目录权限影响子目录文件操作

下面显示了tomcat在删除owner是自己的文档时出错了,提示Permission denied.

这是因为用户tomcat在该文档的父目录权限里并没有w的权限.虽然tomcat是该文档的owner,但是删除该文档也是对父目录的修改,因此在用户没有父目录的w权限里,提示权限不足

drwxr-xr-x   2 root  root   4096 Nov 21 21:02 tomcat
drwxr-xr-x. 13 root  root   4096 May 30 21:42 usr
drwxr-xr-x. 19 root  root   4096 Jul 15 02:29 var
[[email protected] ~]# touch /tomcat/xxx
[[email protected] ~]# chown tomcat:tomcat /tomcat/xxx 
[[email protected] ~]# ll /tomcat/xxx
-rw-r--r-- 1 tomcat tomcat 0 Nov 21 21:03 /tomcat/xxx
[[email protected] ~]# su - tomcat
[[email protected] ~]$ rm -rf /tomcat/xxx 
rm: cannot remove `/tomcat/xxx‘: Permission denied
[[email protected] ~]$

修改父目录的权限,将w的权限给予用户tomcat

[[email protected] tomcat]# chmod 757 /tomcat

从下图中可见,用户tomcat对于xxx文档的父目录/tomcat有w的权限,所以删除成功了

drwxr-xrwx    2 root  root   4096 Nov 21 21:03 tomcat
drwxr-xr-x.  13 root  root   4096 May 30 21:42 usr
drwxr-xr-x.  19 root  root   4096 Jul 15 02:29 var
[[email protected] tomcat]# su - tomcat
[[email protected] ~]$ rm /tomcat/xxx 
[[email protected] ~]$ ll /tomcat/
total 0
[[email protected] ~]$

也可以直接把父目录的owner转给tomcat,最快的方法,这里还用了递归,其实不用也可以

[[email protected] tomcat]# chown -R tomcat:tomcat /tomcat
时间: 2024-11-01 11:34:31

linux 父目录权限影响子目录文件操作的相关文章

从零单排Linux – 2 – 目录权限

从零单排Linux – 2 – 目录权限 1.sync 讲内存数据跟新到硬盘中 2.执行等级init a: run level 0:关机 b: run level 3:纯命令模式 c:run level 5:含有图形界面模式 d:run level 6:重启 init 3  切换模式 3.文件权限: owner 用户,文件所有者 group 用户组 others 其他人 都会有3种权限{ 1.read 读 2.write 写 3.execute 执行 } 系统上的账号和一般用户,还有root用户

Linux下目录的合并以及文件的覆盖

有两个目录test和new,test目录下有目录和文件,new目录下有更改过的一些test下的目录和文件,以及一些新增的文件,现在对两个目录进行合并以及覆盖test下的旧文件. cp -frap new/* test/ 命令其实非常简单,解释下: -f 强制覆盖,不询问yes/no(-i的默认的,即默认为交互模式,询问是否覆盖)-r 递归复制,包含目录-a 做一个备份,这里可以不用这个参数,我们可以先备份整个test目录-p 保持新文件的属性不变 记住一点就是,实现合并和覆盖是用cp,而不是mv

LINUX 压缩目录成一个压缩文件

#!/bin/bash file =$(date +%y%m%d%H%M)logfile=/home/目录名/backup/file.log echo "------"$(date +%Y-%m-%d%t%A%t%T)" Beginning backup--------" >>${logfile} #tar..tar -zcvf /home/ftp/1520/项目名称-20130801-OAl/$(date +%y%m%d%H%M)项目名称.tar.gz

linux查找目录下的所有文件中是否含有某个字符串

查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" find .|xargs grep -ri "IBM" -l \ :只用来屏蔽一个元字符的特殊含义. 如\*,\',\",\|,\+,\^,\. 等       .:(点)只匹配任意单字符.       pattern\{n\}:只用来匹配前面pattern出现的次数.n为次数.如a\{2\}匹配aa.       pattern\{n,\}:含义同上,但次数

linux查找目录下的所有文件中是否含有某个字符串 <zhuan>

查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式 (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/.*.?等)组成. (2)基本元字符集及其含义 ^ :只匹配行首. 如^a 匹配以a开头的行abc,a2e,a12,aaa,.

【php】目录、路径和文件 操作

目录操作 解析路径: basename() - 返回路径的文件名部分 获取目录部分: dirname() - 返回路径的目录部分 路径信息: pathinfo() - 返回数组(目录名,基本名,扩展名) 获取绝对路径 realpath() - 返回绝对路径或(硬链接) ** 绝对路径 很重要: - 文本打开 - 数据库连接 磁盘/目录/文件大小 文件大小: filesize() - 文件的 字节大小 磁盘可用空间: disk_free_space() - 指定目录所在磁盘分区的可用空间 磁盘总空

linux入门之系统目录介绍、文件操作、软件安装与卸载

目录 bin 可执行二进制的目录,存放着常用命令,ls,tar等 boot 存放系统启动时候的核心文件,自己安装的别放这里,建议单独分区,100M大小左右即可: dev 存放设备文件,访问该目录下的某个文件,相当于访问某个设备: etc 系统配置文件存放目录,不建议在此文件下存放可执行文件: home 存放普通用户的家目录,新增账户时,用户的家目录就在此文件夹下:建议单独分区,设置较大的空间: lib 存放系统函数库目录: mnt 挂载目录,存放临时挂载别的文件,如将光驱挂载,读取光驱的文件:

linux改目录权限和宿主。

改宿主. sudo chown 用户名:用户组 ./目录 -R 改权限 sudo chmod -R 775 ./目录

LINUX/UNIX的文件操作函数

本文用于记录在LINUX编程中,常用的文件操作函数,包括系统调用和库函数,以备查阅. 针对输入输出操作,直接使用底层系统调用的一个问题是它们的效率十分低,原因在于: 1.使用系统调用会影响系统的性能,与函数调用相比,系统调用的开销要大些,因为在执行系统调用时,Linux必须从运行用户代码切换到执行内核代码,然后再返回用户代码. 2.硬件会限制对底层系统调用一次所能读写的数据块大小.比如,磁带机通常一次能写的数据块长度是10K,所以若你试图写的数据量不是10K的整数倍,磁带机还是以10K为单位卷绕