- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 ec2 镜像,在尝试创建一个新的 laravel 项目时出现以下错误。
[ErrorException] mkdir(): Permission denied
命令如下:
composer create-project laravel/laravel mydir
我可以使用我的 ec2-user 用户名写入文件夹,但我是否需要为 composer 添加写入权限?
最佳答案
快速回答:
出于安全原因,让我们保留 root
作为所有者,只允许我们在我们将要工作的区域内读取、写入和执行。
更改目录
cd /var/www/
更改组所有权
sudo chown -Rv root:$USER .
为我们的组添加权限
sudo chmod -Rv g+rw .
为了压轴,继续创建你的新 laravel 项目
composer create-project laravel/laravel
projectName--prefer-dist
恭喜,我们完成了。 :)
深度解释
解决方案背后的解释:默认情况下,您有两个用户; root
和 $USER
(这是全局变量,但实际名称是您输入的用户名)。创建的每个用户也都带有一个组。因此,如果我的用户名是 john
,我就有一个名为 john
的组。有很多方法可以解决这个问题,但出于以下几个原因,我更喜欢这条路线:
出于安全原因,我仍然希望 root
成为文件的所有者。
我在本地主机上工作,因此不应有任何其他( guest )用户在我的文件上写入内容。
为了实现这一点,我们需要编辑组所有权并添加适当的权限。我们将让 others
保持原样,只允许他们读取和执行文件。
那么让我们开始吧:
我喜欢在我正在更改的目录中以避免错误,因此首先我们需要进入我们将在其中工作的目录。
cd /var/www/
我们需要更改我们将在其中工作的目录的组所有权。从我们所在的目录开始,以及我们将在该目录下创建的所有 future 目录和文件。所以从现在开始,基本上任何子目录都将归我们小组所有。
sudo chown -Rv root:$USER .
chown
= command to change owner.
-R
= Recursive - This is basically stating to perform the same command to all the directories within this directory.
-v
= verbose - we are stating here to keep us updated by showing us what is actually happening.
root:$USER
= This is were we are setting the ownership. The first word before the colon(:) states theroot
will be the single owner. The second word after the colon(:) states that the group owner will be$USER
(the current user).
.
= This just means 'here, in this directory'.
root
成为主要所有者的地方,同时只允许我们自己创建更改(当然,root
除外)。正如我之前提到的,这不允许其他用户创建任何更改。
sudo chmod -Rv g+rw .
chmod
= command to change modifications, in this case, privileges.
-Rv
= Recursive & Verbose
g
= this states who will receive the modifications. In our case g-group Other options are u-user and o-other.
+
= symbolizes add
r
= symbolizes read
w
= symbolizes write
composer create-project laravel/laravel
projectName` --prefer-dist
注意:如果这不起作用,请输入命令 ls -al | grep $USER
而在 /var/www/
目录中。
如果你得到这个:drwxrw-r-x
您缺少该组的可执行 (x
) 权限。第一个 x
是给用户的,最后一个 x
是给其他人的。该组应该有中间的 x
。
运行以下命令,您应该已经准备就绪:
sudo chmod -Rv g+x .
现在如果你运行 ls -al | grep $USER
,你应该得到:
drwxrwxr-x
关于php - 如何修复错误 : mkdir(): Permission denied when running composer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266250/
我从 ssh 收到以下错误: Permissions 0777 for '/Users/username/.ssh/id_rsa' are too open. It is recommended th
我正在使用 WSL1(Windows Linux 子系统)和 Ubuntu 20.04.1 LTS 开发 Win10。我有一个 Samba (1.0) 网络共享,我想通过我的 Ubuntu 终端在上面
文件权限 我有一个文件 data.tgz我想解压缩。 -rw-r--r-- 1 username group 20342951248 mai 18 11:50 data.tgz 目录权限 文件所在的目
我正在尝试设置一些其他组不应该看到的组维护文件夹。目前,我通过取消单击@@sharing 选项卡中的“从更高级别继承权限”复选框来实现这一点,但我想自动执行此操作。 我在文档或谷歌搜索中找不到任何关于
在 Android 4 下,以下简单的 native C 代码行失败并出现 Permission denied 错误 when not run as 根: online_socket = socket
(我是 tortoise SVN 的新手) 我的乌龟 SVN 中有 2 个文件夹。每个人都需要一组不同的授权(我不想有权访问第一个文件夹的人对第二个文件夹具有读/写访问权限。 我怎样才能完成它?我注意
我用 tar -zxvf tarFile.tar.gz解压tarFile,但有错误提示tar: subfile :Cannot open: Permission denied . 我是root用户,权
我是 WAMP 的新手我今天刚刚安装了它。 设置进行得很顺利,本地主机似乎可以工作,但是当我尝试访问 phpMyAdmin 时我收到此错误: Forbidden You don't have perm
我想做的是从文件夹内的文件夹中获取 .mp3 文件。多次。 一切都很完美,除了当我尝试将文件复制到新文件夹(已经存在)时,它给出:[Errno 13]权限被拒绝: import os, shutil
我是 WAMP 的新手我今天刚刚安装了它。 设置进行得很顺利,本地主机似乎可以工作,但是当我尝试访问 phpMyAdmin 时我收到此错误: Forbidden You don't have perm
我正在开发一个应用程序,我在其中使用塔位置跟踪位置。所以我使用地理定位 api 来跟踪位置并访问手机状态以获取网络详细信息。 这很好用,突然间它开始给出 LOCATION_HARDWARE 权限的安全
这两种语法有什么区别。android:uses-permission 和 uses-permission。例如: 当我创建一个从存储中读取的 Activity 时,Android Studio 自
我正在尝试使用新的 GrantPermissionRule这是最新支持库的一部分。 在我的 list 中,我声明如下: 在我的代码中,我调用: @Rule public GrantPermissio
有没有navigator.permissions.query 的替代方案 Permissions API 查询以检查 geolocation 权限。导致它仍处于工作草案中并且浏览器兼容性较差。 W3C
这个错误真的真的很奇怪,我不知道如何重现它以及如何修复它,因为我进行了大量搜索,但没有任何用处。 这是堆栈跟踪: Stack Trace _______________________________
我正在尝试在 ubuntu 16.4 上安装 MaryTTS。 但是当我上线时 sudo -u mary git clone https://github.com/marytts/marytts.gi
在我们基于 Symfony2 的应用程序中,我们希望创建一个列表,列出系统中哪些用户对给定域对象具有权限。我们正在使用 ACL,我们的直接直觉是查看从相关域对象的 ACLProvider 返回的 AC
我今天收到这封邮件,但我没有使用 Admob 广告,而是使用 applovin 和 Facebook,我必须添加此权限还是仅适用于他们使用 Admob 的开发者? 即使没有像我一样的admob,每个人
我有一个 Jenkins 用户,我想授予其对 Jenkins 实例运行远程 CLI 的权限。第一个命令是获取 config.xml: java -jar jenkins-cli.jar -s http
我今天收到这封邮件,但我没有使用 Admob 广告,而是使用 applovin 和 Facebook,我必须添加此权限还是仅适用于他们使用 Admob 的开发者? 即使没有像我一样的admob,每个人
我是一名优秀的程序员,十分优秀!