修改文件的所有者失(chown: changing ownership of `uploads': Operation not permitted)
在项目开发的时候,经常需要将文件上传到指定的目录下。
例如这次用thinkphp5的时候,需要在public目录下建立uploads目录用于存放上传的资源。
首先在命令窗口下输入:
mkdir uploads
当前,前提是当前执行命令的用户需要权限(假设此处有,非root)。
问题来了,即使你目录创建成功,对于项目来说并不算成功。
因为项目运行的时候上传文件以及新建目录的时候,可以看出是apache用户。
apache对该用户创建的目录并没有写入权限啊!
当然你可以继续输入:
chmod -R
这样,的确apache是可以访问到了,但是,这样的话,实属下册~~
因为所有的人都可以来这里随便指点一下,随便来删除一下啊。
记得当初一个兄弟的遭遇:
刚进一间公司不久,然后执行了一下删除命令,没想到把该公司的一个项目的
所有上传的资源全部删掉了~悲催!此处先不讨论做该项目的人的部署问题。
如果操作得当,大家都可以避免。既然可以在开始就避免,何乐而不为呢!
然后我就用了当前的用户来执行修改文件夹的所有者,毕竟,如果可以将该
文件的所有者修改为apache的话,那只有root和apahce可以在该文件下操纵。
chown apache uploads
然后问题就来了,发现命令执行失败了。
chown: changing ownership of `uploads': Operation not permitted
刚看到的时候,纠结于一个问题:会不会系统没有apache用户。
就缺没去创建了~其实细想一下,那之前的项目是怎么上传的,文件的创建者还是apache
不行的朋友可以去执行一下:
cat /etc/passwd
就知道了
然后突然记起,我并不是在root帐号下操作的。
然后修改了一下命令:
sudo chown apache uploads
发现可以执行成功。证实猜想成功。这个命令的执行需要一定的权限。
权限的限制可能来自上级目录或者命令的本身。
修改文件的所有者失(chown: changing ownership of `uploads': Operation not permitted)的更多相关文章
- chmod: changing permissions of 'xxx': Operation not permitted
众所周知,在linux系统中,权限最大的是root账号,但凡修改涉及到系统本身的重大权限的操作,都需要root的权限才能操作.但是有些时候也有root干不了的事情. 比如:chmod: changin ...
- docker chown: changing ownership of '/var/lib/XXX': Permission denied
Links: 1.entos7下docker Permission denied 2.查看 SELinux状态及关闭SELinux 方法: 1.查看SELinux状态sestatus -vgetenf ...
- chmod修改文件的权限/chown修改文件和目录的所有者
ll指令的显示的信息为(当前目录下只有nameservice1一个目录): drwxr-xr-x 3 hdfs hdfs 4096 4月 14 16:19 nameservice1 上述信息分别表示: ...
- chmod修改文件的权限/chown修改文件和目录的所有者(转)
ll指令的显示的信息为(当前目录下只有nameservice1一个目录): drwxr-xr-x 3 hdfs hdfs 4096 4月 14 16:19 nameservice1 上述信息分别表示: ...
- linux ,mac连接, git pull error, chmod修改文件的权限/chown修改文件和目录的所有者
去项目目录下 启动服务 setsid npm start & Mac下如何用SSH连接远程Linux服务器 https://www.cnblogs.com/littleBit/p/536280 ...
- linux更改文件所有者命令chown命令的使用困惑
[berry@berry:practice] ls -lrt total -rwxrwxrwx berry berry Dec : f1.txt -rwxrwxrwx berry berry Dec ...
- linux修改文件所有者和文件所在组
chgrp 用户名 文件名 -R chown 用户名 文件名 -R -R表示递归目录下所有文件 以上部分已验证 一.修改文件所属组群——chgrp 修改文件所属组群很简单-c ...
- #Linux学习笔记# Linux文件的所有者、群组和其他人
1.关于所有者.群组和其他人 在Linux系统中,每个文件都具有User.Group和Others三种身份的权限配置.那这三种身份分别表示什么意思呢?配置这三种身份的权限有啥意义呢? (1)文件所有者 ...
- Linux删除文件出现rm: cannot remove `.user.ini': Operation not permitted
转自:https://blog.csdn.net/sinat_35861727/article/details/79040755 在Linux中rm -rf的威力是十分巨大的,特别是附带了 -f 参数 ...
随机推荐
- php数组合并,反转,去重,添加元素等;
//参数默认值//function abc($a,$b,$c = 0){// echo $a,$b,$c;//}//abc(1,3);//结果等于130://echo "<br> ...
- servlet文件上传2——复合表单提交(数据获取和文件上传)
上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(common ...
- JSP静态化(伪静态)
关于URLRewirte的用法:该方法只是实现了url的伪静态化,并不是真正的静态化. URLRewirte版本:urlrewrite-2.6.0.jar URLRewirte的用处: 1.满足搜索引 ...
- 斐波那契数列第N项f(N)[矩阵快速幂]
矩阵快速幂 定义矩阵A(m*n),B(p*q),A*B有意义当且仅当n=p.即A的列数等于B的行数. 且C=A*B,C(m*q). 例如: 进入正题,由于现在全国卷高考不考矩阵,也没多大了解.因为遇到 ...
- Java面向对象 String 基本数据类型对象包装类
Java面向对象 String 知识概要: (1)String的用法详解 (2)基本数据类型对象包装类 String 顾名思义,该类主要是对字符串 ...
- MyBatis Generator配置示例
(一).MBG介绍 MyBatis Generator(MBG)是一个Mybatis的代码生成器,它可以用来生成可以访问(多个)表的基础对象.MBG解决了对数据库操作有最大影响的一些简单的CRUD(插 ...
- django中间件Middleware
熟悉web开发的同学对hook钩子肯定不陌生,通过钩子可以方便的实现一些触发和回调,并且做一些过滤和拦截. django中的中间件(middleware)就是类似钩子的一种存在.下面我们来介绍一下,并 ...
- springboot kafka集成(实现producer和consumer)
本文介绍如何在springboot项目中集成kafka收发message. 1.先解决依赖 springboot相关的依赖我们就不提了,和kafka相关的只依赖一个spring-kafka集成包 &l ...
- asp.net mvc CodeFirst模式数据库迁移步骤
利用Code First模式构建好基本的类后,项目也开始搭建完毕并成功运行,而且已经将数据库表结构自动生成了. 但是,我有新的类要加入,有字段需要修改,那怎么办呢,删库,跑路 ? 哈哈 利用数据库迁 ...
- C语言 实现base64
#include <stdio.h> const char base[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw ...