一是 要把 html下的相关目录设置成 777 chmod -R 777 /var/www/html/.....

二是 要设置 selinux , 或者是 临时 关闭 selinux: setenforce 0

永久关闭 selinux : 在 /etc/selinux/ 目录中, 编辑 /etc/selinux/config

设置为 : enforcing = permissive/disabled就好了.

============================================

在linux中, 任何用户 在 任何地方都可以创建文件或目录 , 只要 它由那样的 相应的 权限即可. 也就是说, 在某个用户, 比如 foo用户, 所属的 一个目录 , 这个目录下的所有文件或 目录 并不一定全都是 属于 foo用户的, 可能是其他用户创建并所属的. 比如 tp在 html目录的application目录 , 这个目录本身属于机器上的一个普通用户, 已经设置了 o+w, 但是仍然不能成功, 原来, 在tp中, 要创建 Application下的目录, 并不是 由这个普通用户创 建的, 而是由 apache用户创建的, 所以 由于 selinux的关系, apache用户 是不能创建目录的, 所以要 关闭 selinux.

drwxrwxrwx. 5 lee lee 4096 Jan 21 14:02  Application:  //  这里的 Application目录本身是属于 foo的,
drwxrwxrwx. 2 lee lee 4096 Jan 21 14:00 Public
[lee@localhost html]$ ll Application/
total 12
drwxr-xr-x. 4 apache apache 4096 Jan 21 13:47 Common
drwxr-xr-x. 7 ***apache apache**** 4096 Jan 21 13:47 Home /// 但是 这里的 Applicatino 目录 下的 子目录 则是由 apache 用户 创建 并所属的!
drwxr-xr-x. 6 apache apache 4096 Jan 21 13:47 Runtime
[lee@localhost html]$

===============================

即使安装了vim, 原来的vi包并没有被删除 , vi和vim 都可以用, 但是 它们仍然是两个 完全不同 的文件! 并不是 alias的关系, vim并不是 vi的 alias别名(虽然你可以将vi设置为vim的别名)

[root@localhost html]# ll -i -h /usr/bin/vi
18743454 -rwxr-xr-x. 1 root root 1.1M Jun 2 2016 /usr/bin/vi // 他们的inode不同, 而且他们的文件 . 大小 也是 相差很大的一个是1.1M , 一个是 2.7M
// 各自使用 的配置文件也是 不同的, 不能混用的!
[root@localhost html]# ll -i -h /usr/bin/vim
18746957 -rwxr-xr-x. 1 root root 2.7M Jun 2 2016 /usr/bin/vim

如何给 普通用户 "临时 " 提权?

  • 安装时/平时使用都是用的 普通用户, 需要进行一些 特权要求的操作时, 都是使用的 su 切换,

    但是, 当需要 编辑 html/Home/....等目录下的 文件时, 由于这些文件是属于mysql的, 有的文件是 使用root 用户 从其他地方拷贝过来的, 还属于 root用户, 所以使用普通用户 就无权编辑保存

    如果切换为 su root用户来编辑, 虽然是可以的, 但是::: 由于之前的 vim编辑器以及vim的插件和配置 都是针对普通用户的, 只有普通用户启动vim进程时, 这些配置和插件才能使用! 用root用户来启动vim时, 插件和配置不能使用, 所以需要把普通用户 在不改变用户名, 不改变账户的情况下, 提升它的权限为超级用户

  • 这种权限的提升 也只是 "临时的" "暂时的/短期的". 当完成工作后, 就要切换回来

  • 由三种方法: 一是直接修改/etc/passwd/下的 普通用户的id, 该为0, 因为内核判断进程的权限时是以启动该进程的euid来决定的 ; 二是修改visudo: /etc/sudoers文件中的: 在root ALL=ALL:ALL 下面添加 一行: Common_User_Name ALL=ALL:ALL , 然后su - 一下; 三是仍然修改 visudo, 启用 %Wheel组, 然后使用 usermod -g wheel user_name 将普通用户加入到 wheel组中 然后 su -:

  • 第一种方法不需要 su -, 直接就由root的特权了, 相当于root的兄弟了, 另外两种方法 都需要用 su -, 因为它们走的 都是 sudoers文件.

  • wheel组, 相当于 win下的 Administrator管理员组. (可以 配置 /etc/pam.d/su 文件 和 /etc/login.defs 文件来实现 更为严格的 su权限控制 ): 即只有 属于 wheel组的 用户 才能使用 su命令, 而不是 像之前的 任何用户都可以使用 su命令 . 参考: http://www.cnblogs.com/jan5/p/3359421.html

    staff是由不能使用 su命令的普通用户, 非 wheel组的普通用户组成的 普通组.

当直接修改 uid=0 后, 会发生很神奇的事情: 登陆的还是普通用户, 但是 实际获得的权限/操作者却已经是 root了

[lee@localhost ~]$ su -c visudo   // 这个是之前的 普通用户, 权限显示 $. 

#### 修改 /etc/paswd 中的uid后
[root@localhost lee]# su lee // 切换到 普通用户后 [root@localhost ~]# whoami /// 显示真实的euid身份是root 此时权限已经是 #了
root
[root@localhost ~]# who // 实际上登陆的还是普通用户
lee tty2 2019-01-21 18:37 (:0)
[root@localhost ~]# ls
Desktop Documents Downloads Music Pictures Public Templates Videos
[root@localhost ~]# pwd
/home/lee

但是 不管用上面那种情况, 实际上都能获得 root权限, 而且就是 以 root身份 来进行工作的, 所以不管你 怎么改, 你都不能改变root的运行环境 , 你都不能使用 为 普通用户配置的vim环境和插件. 除非你为root用户设置了 vim的插件和环境.

所以, 比较直接省事的方法是: 临时地 为这些你要编辑的文件/目录 赋予 o+w权限. 等到编辑修改完成后, 再恢复原来的权限, 即: 取消/去掉 other用户的写权限!

=====================================================

### That's all over. no longer take blogs..

thinkphp应用目录不可写,目录无法自动生成! 请手动生成项目目录~的更多相关文章

  1. 新引入thinkphp报错“应用目录[./Application/]不可写,目录无法自动生成! 请手动生成项目目录~”

    新引入thinkphp报错“应用目录[./Application/]不可写,目录无法自动生成! 请手动生成项目目录~”, 其主要原因是文件夹的权限问题,手动将项目文件夹权限更改为可读可写就OK,具体操 ...

  2. JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

    1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...

  3. Visual Studio使用技巧笔记(引用程序集自动复制dll到引用项目目录)

    copy /y $(TargetPath) $(SolutionDir)\[您项目引用dll文件的目录]\$(TargetFileName) 例如:copy /y $(TargetPath) $(So ...

  4. ThinkPHP出现项目目录不可写,目录无法自动生成

    问题描述:维护一个老项目,用的TP2.1,down完代码,配好环境,访问的时候出现“项目目录不可写,目录无法自动生成!请使用项目生成器或者手动生成项目目录~”: 问题原因:在linux 服务器上,th ...

  5. SpringCloud系列九:SpringCloudConfig 基础配置(SpringCloudConfig 的基本概念、配置 SpringCloudConfig 服务端、抓取配置文件信息、客户端使用 SpringCloudConfig 进行配置、单仓库目录匹配、应用仓库自动选择、仓库匹配模式)

    1.概念:SpringCloudConfig 基础配置 2.具体内容 通过名词就可以发现,SpringCloudConfig 核心作用一定就在于进行配置文件的管理上.也就是说为了更好的进行所有微服务的 ...

  6. Eclipse下无法自动编译,或者WEB-INF/classes目录下没文件,编译失败的解决办法(转载)

    文章来源:http://www.cnblogs.com/xfiver/archive/2010/07/07/1772764.html 1.  IOException parsing XML docum ...

  7. thinkphp项目目录

    #   ThinkPHP核心文件介绍        ├─ThinkPHP.php     框架入口文件    ├─Common 框架公共文件    ├─Conf 框架配置文件    ├─Extend ...

  8. NodeJs编写Cli实现自动初始化新项目目录结构

    应用场景 前端日常开发中,会遇见各种各样的cli,这些工具极大地方便了我们的日常工作,让计算机自己去干繁琐的工作,而我们,就可以节省出大量的时间用于学习.交流.开发. 注释:文章附有源码链接! 使用工 ...

  9. linux使用tree将目录结构写进txt

    比如把caffe的二级目录结构写进txt: tree -L > /home/wmz/treecaffe.txt 则会在/home/wmz/目录下生成一个名为treecaffe.txt的文件,文件 ...

随机推荐

  1. 《Redis 使用规范》

    一:Redis 概述 - Redis 是内存级别的数据库,在一台普通电脑上,Redis 3.X 便可以读取 10 万个键值对(现在的Redis官方版本已经更新到了5.X,性能会更好). 二:关于Red ...

  2. Windows Server 2012 R2服务器部署Tomcat JDK、安装Mysql以及将Java项目部署到CVM

    我们平时所调试的Java Web 项目需要在本地Eclipse或者MyEclipse当中开发调试,并且部署到Tomcat上来测试,比如说笔者这里用的eclipse添加tomcat服务器, 但是这里发布 ...

  3. 剑指offer-机器人的运动范围

    题目描述 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. 例如,当k为18时,机器人能 ...

  4. spring-boot logback配置

    接着上篇的代码,日志在不同环境下的配置也不一样,所以要分开配置,主要使用maven的profile 1.1 在pom.xml中添加 <profiles> <profile> & ...

  5. Chrome浏览器添加控件

    1. 添加user agent swithcher模拟浏览器内核 方法: 下载user agent switcher后,打开谷歌浏览器,先复制chrome://extensions/  到浏览器地址栏 ...

  6. Postman代码测试工具如何用?

    1.  1)get请求,参数为map时, postman的传参 2)参数为基本数据类型的参数时 postman传参: 3)当参数在接口中动态获取时 postman传参: 2.  1)post请求,参数 ...

  7. NodeMan架构

    在上一篇文章中我们介绍了NodeMan的基本概念,介绍了这是一套利用NodeJs框架来管理Ubuntu服务器的解决方案,接下来我们会继续介绍关于这样一套解决方案更多细节的内容. 后台: 使用node作 ...

  8. namenode No valid image files

    1,角色日志报错 Encountered exception loading fsimage java.io.FileNotFoundException: No valid image files f ...

  9. CDI services--Event(事件)

    Cdi中的event事件,是整个CDI的精华所在之一.其有点类似设计模式中的观察者模式.但也有不同的地方.如下3点: 不仅是生产者(producers)从观察者(observers)解耦.观察者也从生 ...

  10. Unity 属性雷达图

    using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(MeshFilter),typeof(Mes ...