背景:依然是上一个朋友,在用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引发的权限问题的更多相关文章

  1. Linux系统文件和目录的属性及权限

    1 文件属性概述 Linux系统中的文件或目录的属性主要包括:索引节点(inode).文件类型.权限属性.硬链接数.所归属的用户和用户组.最近修改时间等内容(文件名严格来说不属于文件的属性): 下面是 ...

  2. Linux常用命令(二)之权限管理、文件搜索、帮助、压缩命令及管道

    在(一)中提到过rwx的含义,但是我们还需深入理解,明白其真正的含义和权限,对于文件和目录,rwx权限是不同的,尤其是目录的权限往往是被忽略的: 对于目录,其权限和对应的操作: r-ls w-touc ...

  3. 第3章 Linux常用命令(2)_权限管理命令

    2. 权限管理命令 2.1 改变文件或目录权限:chmod (1)chmod命令 命令名称 chmod(change the permission mode of a file) 命令所在路径 /bi ...

  4. linux系统下修改文件夹目录权限

    linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...

  5. 菜鸟学Linux命令:chmod命令和数字文件权限

    chmod是一条在Unix系统中用于控制用户对文件的权限的命令(change mode单词前缀的组合)和函数.只有文件所有者和超级用户可以修改文件或目录的权限.可以使用绝对模式,符号模式指定文件的权限 ...

  6. Linux改变文件或目录的访问权限命令

    使用  ll  或  ls -l 指令时 第一列会显示出目录下文件的权限 例如∶ -rw-r-r- 横线代表空许可.r代表只读,w代表写,x代表可执行.注意这里共有10个位置.第一个字符指定了文件类型 ...

  7. [转]linux主机644、755、777权限详解

    转自:http://my.oschina.net/qihh/blog/73135 从左至右,第一位数字代表文件所有者的权限,第二位数字代表同组用户的权限,第三位数字代表其他用户的权限. 从左至右,第一 ...

  8. linux概念之用户,组及权限

    Linux 是一个多用户.多任务的操作系统:我们应该了解单用户多任务和多用户多任务的概念 单用户多任务一个beinan用户,为了完成工作,执行了几个任务:当然beinan这个用户,其它的人还能以远程登 ...

  9. .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限

    一.Linux下的文件目录 简介:linux的文件系统是采用级层式的树状目录结构,在此 结构中的最上层是根目录“/”,然后在此目录下再创建 其他的目录.深刻理解linux文件目录是非常重要的,如下图所 ...

随机推荐

  1. Node.js 包管理器 NPM 讲解

    包管理器又称软件包管理系统,它是在电脑中自动安装.配制.卸载和升级软件包的工具组合,在各种系统软件和应用软件的安装管理中均有广泛应用.对于我们业务开发也很受益,相同的东西不必重复去造轮子. 每个工具或 ...

  2. [Fundamental of Power Electronics]-PART I-3.稳态等效电路建模,损耗和效率-3.4 如何获得模型的输入端口

    3.4 如何获得模型的输入端口 Fig 3.16 Buck converter example 让我们尝试使用3.3.3节的步骤来推导图3.16所示的Buck变换器的模型.电感绕组电阻同样由串联电阻\ ...

  3. 201871010203-陈鹏昱 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 学习软件工程的理论和知识,掌握软件开发流程,增强实践能力 这个作业在哪些方面帮助我实现学习目标 体验软件项目开发中 ...

  4. [面试仓库]CSS面试题汇总-图文样式篇

      图文样式这,我们挑了一个最常见的来说:line-height继承问题.从三个方面来考虑: 如果是具体的数值,则继承该数值 body{ font-size:32px; line-height:40p ...

  5. 【接入指南】一个Demo带你玩转华为帐号服务

    在<接入指南:一文带你了解华为帐号服务>中已经给大家介绍了华为帐号服务有哪些优势,如一键授权登录华为全场景共享.共享华为帐号所有用户资源.帐号安全可靠.接入方便快捷等,以及为什么能帮助开发 ...

  6. Spring Boot 整合Junit和redis

    14. Spring Boot整合-Junit 目标:在Spring Boot项目中使用Junit进行单元测试UserService的方法 分析: 添加启动器依赖spring-boot-starter ...

  7. Tree Recovery UVA - 536

    Little Valentine liked playing with binary trees very much. Her favorite game was constructing rando ...

  8. 机器人走方格-51nod解题

    M * N的方格,一个机器人从左上走到右下,只能向右或向下走. 有多少种不同的走法? 注意:给定 M, N 是一个正整数. 示例 输入: 1行, 2个数M,N,中间用空格隔开.(2 <= m,n ...

  9. w1R3s靶机work_through

    前言 这靶机挺简单的.虽然网友们有分享oscp向的靶机集,但是没有一个难度梯度,做起来就怪怪的. 打点 nmap -sP 192.168.218.0/24 发现主机IP 192.168.218.134 ...

  10. G - G ZOJ - 2723 (素数打表+set)

    Prime Number Definition An integer greater than one is called a prime number if its only positive di ...