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文件目录是非常重要的,如下图所 ...
随机推荐
- [Fundamental of Power Electronics]-PART II-8. 变换器传递函数-8.5 交流传递函数以及阻抗的测量/8.6 本章小结
8.5 交流传递函数以及阻抗的测量 测量原型变换器和变换器系统的传递函数是非常好的工程实践过程.这样的实践可以验证系统是否被正确地建模和设计.此外,通过测量单个电路元件的端阻抗来表征其特性也是非常有用 ...
- 系统编程-网络-tcp客户端服务器编程模型(续)、连接断开、获取连接状态场景
相关博文: 系统编程-网络-tcp客户端服务器编程模型.socket.htons.inet_ntop等各API详解.使用telnet测试基本服务器功能 接着该上篇博文,咱们继续,首先,为了内容的完整性 ...
- 01-MySQL Linux安装
一.检查当前系统是否安装过mysql rpm -qa|grep mysql 或 ps -ef|grep mysql 二.安装mysql服务端 rpm -ivh MySQL-server-5.5.48- ...
- java面试-谈谈你对volatile的理解
一.volatile特性: volatile是Java虚拟机提供的轻量级的同步机制.主要有三大特性: 保证可见性 不保证原子性 禁止指令重排序 1.保证可见性 1)代码演示 AAA线程修改变量numb ...
- lvs 负载均衡 _DR模式 _Python脚本
import paramiko vip='192.168.83.6' # 虚拟IP # direct_server_information ds_info={ 'ip':'192.168.83.5', ...
- 8. Centos 7 图像化界面
Step 1:安装"X Window System" yum groupinstall "X Window System" 当出现 Complete!说明这里安 ...
- 005-Java中的控制语句
目录 一.控制语句 一.作用 二.分类 二.选择语句(分支语句) 一.if 语句 二.switch语句 三.循环语句 一.for循环 二.while循环(while循环的循环次数是:0~n次) 三.d ...
- Effective Java 笔记
1. 静态工厂 静态工厂的第 5 个优点是,在编写包含该方法的类时,返回的对象的类不需要存在.他的意思是面向接口编程??就是说我们只需知道接口,具体实现类是否存在没有关系?? 只提供静态工厂方法的主要 ...
- SpringCloud(四)GateWay网关
GateWay网关 概述简介 Gateway是在 Spring生态系统之上构建的AP网关服务,基于 Spring5, Spring Boot2和 Project Reactor等技术. Gateway ...
- vuex 引用方法
引入Vuex(前提是已经用Vue脚手架工具构建好项目) 1.利用npm包管理工具,进行安装 vuex.在控制命令行中输入下边的命令就可以了. npm install vuex --save 要注意的是 ...