Linux权限问题(2)-unzip引发的权限问题
背景:依然是上一个朋友,在用php调用unzip命令时,再次出现了权限被拒绝的问题.
Notice:此处描述的问题,为使用php命令行执行php文件,因此进程属主为登录的用户,而不是nginx用户.
以root身份登录,给myuser的家目录设置读和执行的权限
Notice:cd到一个目录,需要对该目录具有执行权限,否则会出现权限被拒绝的提示.
# chmod a+rx myuser
# ll -d myuser
drwxr-xr-x. 2 myuser myuser 4096 Jun 29 17:48 myuser
使用redheat用户,进入myuser用户的家目录
$ ll -d `pwd`
drwxr-xr-x. 2 myuser myuser 4096 Jun 29 18:02 /home/myuser
$ whoami
redheat
可以看到,redheat对该目录只有读和执行的权限.
执行unzip命令进行解压
$ unzip /home/redheat/zip_test/sysinfo.zip
Archive: /home/redheat/zip_test/sysinfo.zip
error: cannot create sysinfo.go
Permission denied
很明显,出现了权限被拒绝的提示.
unzip默认会把文件解压到你当前所在的目录(pwd所显示的目录),当你对该目录没有写权限时,就会出现了权限问题.
unzip指定目录解压的参数为-d.
$ unzip /home/redheat/zip_test/sysinfo.zip -d /home/redheat/zip_test/
Archive: /home/redheat/zip_test/sysinfo.zip
inflating: /home/redheat/zip_test/sysinfo.go
$ ll /home/redheat/zip_test/
total 16
-rw-r--r--. 1 redheat redheat 11140 Jun 15 15:41 sysinfo.go
-rw-r--r--. 1 root root 2167 Jun 29 18:04 sysinfo.zip
小技巧: 例如上面所用,第一次用完/home/redheat/zip_test/,第二次又要使用该参数,则输入ESC,.(ESC按下后松开,然后按下.),该参数就会自动填写. 马哥Linux base学习笔记中有更多快捷键.
下面介绍unzip的-f和-u的区别
摘自man文档
-f freshen existing files, i.e., extract only those files that already exist on disk and that are newer than the disk copies.
更新存在的文件.(只有这些文件已经在磁盘上存在,并且比磁盘上的副本更新时)
-u update existing files and create new ones if needed. This option performs the same function as the -f option, extracting (with query) files that are newer than those with the same name on disk, and in addition it extracts those files that do not already exist on disk.
更新存在的文件,如果需要的会创建新的.这个选项类似于-f,解压同名的并且更新的文件,而且附加的,它还会解压没有在磁盘上存在的文件.
好吧,我英文不好,翻译比较烂.
但是很明显可以看出,当压缩包里的文件没有变动时,-f选项不会执行任何操作,而且压缩包内之前没有的文件,后来又添加进去,再执行解压,它也不会将新文件解压出来.
而-u选项,同样的当压缩包里的文件没有变动时,不会执行任何操作,但是如果压缩包内有新加文件时,-u选项会将新文件解压出来.
$ unzip -f sysinfo.zip
Archive: sysinfo.zip
$ ll
total 2024
-rw-r--r--. 1 redheat redheat 11140 Jun 15 15:41 sysinfo.go
-rw-r--r--. 1 redheat redheat 2056718 Jun 29 18:29 sysinfo.zip
$ unzip -u sysinfo.zip
Archive: sysinfo.zip
inflating: monitor_agent.tar.bz2
$ ll
total 4032
-rw-r--r--. 1 redheat redheat 2055327 Jun 28 10:58 monitor_agent.tar.bz2
-rw-r--r--. 1 redheat redheat 11140 Jun 15 15:41 sysinfo.go
-rw-r--r--. 1 redheat redheat 2056718 Jun 29 18:29 sysinfo.zip
使用-f时,没有解压出新文件,而使用-u时,解压出了一个新的文件.
并且sysinfo.go一直没有变化.
总结:
1.unzip时,-d可以指定解压到的目录
2.-f与-u还是有一些区别的,要视情况添加对应的参数.
Linux权限问题(2)-unzip引发的权限问题的更多相关文章
- Linux系统文件和目录的属性及权限
1 文件属性概述 Linux系统中的文件或目录的属性主要包括:索引节点(inode).文件类型.权限属性.硬链接数.所归属的用户和用户组.最近修改时间等内容(文件名严格来说不属于文件的属性): 下面是 ...
- Linux常用命令(二)之权限管理、文件搜索、帮助、压缩命令及管道
在(一)中提到过rwx的含义,但是我们还需深入理解,明白其真正的含义和权限,对于文件和目录,rwx权限是不同的,尤其是目录的权限往往是被忽略的: 对于目录,其权限和对应的操作: r-ls w-touc ...
- 第3章 Linux常用命令(2)_权限管理命令
2. 权限管理命令 2.1 改变文件或目录权限:chmod (1)chmod命令 命令名称 chmod(change the permission mode of a file) 命令所在路径 /bi ...
- linux系统下修改文件夹目录权限
linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...
- 菜鸟学Linux命令:chmod命令和数字文件权限
chmod是一条在Unix系统中用于控制用户对文件的权限的命令(change mode单词前缀的组合)和函数.只有文件所有者和超级用户可以修改文件或目录的权限.可以使用绝对模式,符号模式指定文件的权限 ...
- Linux改变文件或目录的访问权限命令
使用 ll 或 ls -l 指令时 第一列会显示出目录下文件的权限 例如∶ -rw-r-r- 横线代表空许可.r代表只读,w代表写,x代表可执行.注意这里共有10个位置.第一个字符指定了文件类型 ...
- [转]linux主机644、755、777权限详解
转自:http://my.oschina.net/qihh/blog/73135 从左至右,第一位数字代表文件所有者的权限,第二位数字代表同组用户的权限,第三位数字代表其他用户的权限. 从左至右,第一 ...
- linux概念之用户,组及权限
Linux 是一个多用户.多任务的操作系统:我们应该了解单用户多任务和多用户多任务的概念 单用户多任务一个beinan用户,为了完成工作,执行了几个任务:当然beinan这个用户,其它的人还能以远程登 ...
- .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限
一.Linux下的文件目录 简介:linux的文件系统是采用级层式的树状目录结构,在此 结构中的最上层是根目录“/”,然后在此目录下再创建 其他的目录.深刻理解linux文件目录是非常重要的,如下图所 ...
随机推荐
- 冒泡算法(BubbleSort)
/*冒泡排序原理 比较相邻的元素.如果前一个元素比后一个元素大,就交换这两个元素的位置. 对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素.最终最后位置的元素就是最大值.实现步骤 1 ...
- [状压DP]炮兵阵地
炮 兵 阵 地 炮兵阵地 炮兵阵地 题目描述 司令部的将军们打算在 N ∗ M N*M N∗M的网格地图上部署他们的炮兵部队.一个 N ∗ M N*M N∗M的地图由 N N N行 M M M列组成, ...
- Chrome89针对sessionStorage的更新导致数据共享问题
最近将chrome更新到最新的版本,然后发现以前可以正常使用的功能无法使用了,经过分析后发现是浏览器新版本才出现的问题,今天记录以下. 一.遇到的问题 我们具体的问题场景,在A页面中需要打开B页面,同 ...
- leetcode 783 二叉搜索树节点最小距离
PS:(感觉这题名字和内容有歧义) 要求得到任意不同节点值之间的最小差值. 本身二叉树是有序的,又找最小差值,其实就是相当于在一个有序数组中找到每相邻两数之间最小差值. 朴素思想: 中序遍历树,把值都 ...
- Java设计模式(一):设计模式概述、UML图、设计原则
1 设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1977年美国著名建筑大师.加利福尼亚大学伯克利分校环境结构 ...
- 计算机网络-已知IP地址和子网掩码,求广播地址
首先说结论--广播地址=该IP所在的下一跳-1 例题: 已知IP地址是192.72.20.111,子网掩码是255.255.255.224,求广播地址 要知道下一跳就需要先求出网段间隔,网段间隔=25 ...
- 2021S软件工程——结对项目第一阶段
# 2021S软件工程--结对项目第一阶段 2021春季软件工程(罗杰 任健) 项目地址 1020 1169 --- ## 1 结对感受 总体来说,结对编程与之前的个人编程感觉有很大的不同.有如下几个 ...
- SSL证书及HTTPS服务器
1. 域名 在万网购买,略 2. 云服务器 阿里云购买,略 3. 安装lnmp 使用lnmp.org程序,略 4. 申请证书 阿里云-管理控制台-安全(云盾)-证书服务-购买证书证书类型: 免费型DV ...
- Hangfire在ASP.NET CORE中的简单实现方法
hangfire是执行后台任务的利器,具体请看官网介绍:https://www.hangfire.io/ 新建一个asp.net core mvc 项目 引入nuget包 Hangfire.AspNe ...
- 【Feign】Feign ,OpenFeign以及Ribbon之间的区别?
Ribbon Ribbon 是 Netflix开源的基于HTTP和TCP等协议负载均衡组件 Ribbon 可以用来做客户端负载均衡,调用注册中心的服务 Ribbon的使用需要代码里手动调用目标服务,请 ...