如何在Linux中创建一个目录并在单个命令中授予权限?
我必须创建大量具有完全权限的文件夹777.
mkdir path/foldername
chmod 777 path/foldername
Run Code Online (Sandbox Code Playgroud)
我不喜欢在两个命令中创建和授予权限.我可以用单一命令执行此操作吗?
我需要使用chmod将所有文件递归更改为664.我想跳过这些文件夹.我在考虑做这样的事情
ls -lR | grep ^-r | chmod 664
Run Code Online (Sandbox Code Playgroud)
这不起作用,我假设因为我无法管道进入chmod任何人都知道一个简单的方法来做到这一点?
谢谢
我正在尝试使用PHP来创建文件,但它无法正常工作.我假设这是因为它没有写访问权限(以前一直是问题).我试图通过使文件夹chmod 0777来测试这是否是问题,但是刚刚结束使该目录中的每个脚本都返回500错误消息,直到我将其更改回来.如何为我的文件系统提供PHP写入权限,以便创建文件?
编辑:它使用Apache托管在Hostgator共享主机上.
编辑2:有人要求代码:代码是GD图像脚本.我知道其余部分的工作方式与之前我创建的图像一样.现在我尝试在添加新文本时创建它们并将它们保存到文件夹中.我的写行是:imagejpeg(null,$ file,85);
我还创建了一个测试文件来检查它是否只是一个损坏的脚本(主要是从tizag复制):http://gearboxshow.info/rkr/lesig.jpg/testfile.txt (我不知道是否/如何发布这里的代码是正确的.这是PHP脚本的内容,减去PHP标签.)
它返回13,13,1(单独的行),所以它看起来好像它认为它写了一些东西,但testfile.txt是空白的(我上传了一个空白的),或者不存在(如果我删除它).
编辑3:服务器运行CentOS.
这可能听起来很愚蠢,但我有一个需要运行的文件/脚本,为了做到这一点,我必须将其更改为可执行文件.我想要使用chmod a+x或者chmod 755.但使用chmod a+x和之间有区别chmod 755吗?
当我进入我的vagrant vm时,我可以更改vagrant用户文件夹上方和外部的文件和文件夹的权限,以及vagrant用户文件夹中的文件的权限.但无法更改vagrant用户文件夹下的文件夹权限.无论是以vagrant用户还是root用户登录,我都有同样的问题.
在vagrant用户的文件夹中更改权限是否有某种限制?vagrant用户文件夹不与主机操作系统共享,但capistrano部署文件夹和docRoot是共享的.
访客是CentOS 6,主机是OS X 10.7.Vagrant是1.0.5.Virtualbox是4.2.1.
我使用的代码库从Git存储库检出到我的Linux机器上.由于我们的生产代码是为部署在Linux上编写的,因此我在Linux机器上进行了所有测试,但是喜欢使用Windows进行日常使用,包括代码编辑/创作.
为此,我创建了一个文件夹(我的主文件夹)的Samba共享,我在那里签出代码,如下所示:
[wgrover]
path = /home/wgrover
available = yes
valid users = wgrover
read only = no
browsable = yes
public = yes
writable = yes
Run Code Online (Sandbox Code Playgroud)
但是,当我从\\linux-box\wgroverWindows中的samba共享编辑文件时,755即使644在编辑之前,Linux中的文件权限也会不断变化.
这一直在我git diff这样出现:
diff --git a/debian/maggie.nginx.conf b/debian/maggie.nginx.conf
old mode 100644
new mode 100755
index 7cda506..7eab574
Run Code Online (Sandbox Code Playgroud)
可以create mask在smb.conf中设置,但也不会"保留"原始文件权限.我可以通过设置忽略git中的文件模式更改fileMode = false,.gitconfig但也忽略了问题.
从linux修改文件权限有什么办法可以保留文件权限吗?
我们都被教导过,将基于Linux的Web主机上的目录或文件保留为权限级别777是一件坏事,并且根据需要设置总是很少的权限.
我现在好奇的地方正是在于剥削的危险,特别是在一个PHP/Apache的环境.
毕竟,一个PHP脚本文件可以从外部执行(即通过调用Web服务器,然后再到解释器),无论它是否被标记为"可执行",不是吗?这同样适用于通过命令行php解释器调用的文件,对吧?
那么漏洞到底在哪里777?事实是同一台机器上的其他用户可以访问世界上可写的文件吗?
为什么这不工作我试图将所有文件更改为644 abd all -d to 755:
find . -type f -exec chmod 644 {} ;
Run Code Online (Sandbox Code Playgroud)
我得到:找到:缺少`-exec'的参数 谢谢
我打算做的一件事就是编写(非常简单)Perl脚本,我希望能够在没有从终端显式调用Perl的情况下运行它们.我很欣赏,要做到这一点,我需要授予他们执行权限.使用chmod这样做很容易,但它似乎也是一个稍微费力的额外步骤.我想要的是两件事之一:
首先,有没有办法在保存文件时设置执行标志?目前我正在尝试使用gedit和geany,但是如果它具有此功能,则愿意切换到类似(或更好)的特色编辑器.
如果失败了,有没有办法声明在特定目录中创建的所有文件都应该具有执行权限?
根据我的理解,我的umask设置为022,应该没问题,但看起来文件创建为文本文件(具有666默认权限)而不是可执行文件(具有777默认权限).
也许我只是在懒惰,但我认为必须有一个更方便的方式,而不是chmodding每个创建的脚本.
如何在Node.js中使用chmod?
包中有一个方法fs,应该这样做,但我不知道第二个参数需要什么.
fs.chmod(路径,模式,[回调])
异步chmod(2).除了可能的异常之外,没有给完成回调的参数.
fs.chmodSync(路径,模式)
同步chmod(2).
(来自Node.js文档)
如果我做的事情
fs.chmodSync('test', 0755);
Run Code Online (Sandbox Code Playgroud)
没有任何反应(文件未更改为该模式).
fs.chmodSync('test', '+x');
Run Code Online (Sandbox Code Playgroud)
也不起作用.
我正在研究一台Windows机器.