在Linux中,我如何一步到位地改变一个文件夹及其所有子文件夹和文件的权限?
我想在Linux中通过一个步骤(命令)改变一个文件夹及其所有子文件夹和文件的权限。
我已经试过下面的命令,但它只对提到的文件夹有效。
chmod 775 /opt/lampp/htdocs
有没有办法为/opt/lampp/htdocs
及其所有内容(包括子文件夹和文件)设置chmod 755
?
另外,将来如果我在htdocs
内创建一个新的文件夹或文件,如何才能将其权限自动设置为755
?
我也看了一下这个链接。
https://stackoverflow.com/questions/3740187/how-to-set-default-chmod-in-linux-terminal
1701
16
其他答案都是正确的,因为
chmod -R 755
将对树中的所有文件和子文件夹设置这些权限。 但你到底为什么要呢? 对于目录来说,这可能是有意义的,但是为什么要对所有的文件设置执行位呢?我猜想你真正想做的是把目录设置为755,然后不要管文件,或者把它们设置为644。 为此,你可以使用
find
命令。 例如,你可以使用find
命令。要把所有的目录都改为755 (
drwxr-xr-x
)。将所有文件改为644(
-rw-r-r--
)。检查-R选项
chmod -R
今后,你可以通过先检查手册页来节省大量的时间。
所以在这种情况下。
如果你想把所有文件的权限设置为
a+r
,把所有目录的权限设置为a+x
,并通过完整的子目录树递归地进行设置,请使用:X
(就是大写的X
,不是小x
!)对于文件来说是可以忽略的(除非它们已经可以被某人执行),但是对于目录来说是可以使用的。你可以使用
-R
和chmod
来递归遍历所有文件和子文件夹。你可能需要使用sudo,因为它取决于[LAMP][1]是否被当前用户或其他用户安装。
[1]: http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29
要设置到所有子文件夹(递归),使用-R
并使用umask来设置新文件夹/文件的默认值 cd /folder umask 755
正确的递归命令是:{{{7550864}}。
-R
: 改变每个子文件夹,包括当前文件夹chmod 755 -R /opt/lampp/htdocs
将递归设置权限。 没有办法自动设置设置权限后只在这个目录下创建的文件的权限,但你可以通过设置umask 022
来改变全系统默认的文件权限。你可以考虑[nik给出的这个答案][1]在超级用户上使用"一个chmod"。 来处理所有文件/文件夹。
[1]: https://superuser.com/a/91938/95837
这里有另一种方法可以将目录设置为775,文件设置为664。
它可能看起来很长,但它非常酷,原因有三。
提供更好的控制如何处理文件与目录。 3.提供了更好的控制_文件_的处理方式与_目录_的处理方式。 这在使用特殊模式时很有用,比如粘性位,你可能想应用于目录而不是文件。
使用了直接从
man
页面中提取的技术(见下文)。请注意,我还没有确认这个解决方案和简单地使用两个查找命令(如Peter Mortensen的解决方案)之间的性能差异(如果有的话)。 然而,在手册中看到一个类似的例子是令人鼓舞的。
来自
man find
页面的例子。干杯
使用。
然而,要注意这一点。如果你改变了错误的文件/文件夹的权限,它真的会伤害你。
chmod -R 755 directory_name
可以用,但如何将新文件也保留到755? 文件'的权限成为默认权限。你要确保适当的文件和目录的chmod-ed/权限是适当的。 对于所有你想要的目录
而对于所有的图片、JavaScript、CSS、HTML......嗯,你不应该执行它们。 所以使用
但是对于所有的逻辑代码(例如PHP代码),你应该设置权限,使用户不能看到这些代码。
对于Mac OS X 10.7 (Lion)来说,它是。
是的,就像其他所有的人说的那样,做这件事的时候要小心。
我想Adam问的是如何改变所有在
/opt/lampp/htdocs
目录下操作的进程的umask值。用户文件创建模式掩码(umask)用于确定新创建文件的文件权限。 它可以用来控制新文件的默认文件权限。
因此,如果你将使用某种ftp程序将文件上传到
/opt/lampp/htdocs
,你需要配置你的ftp服务器来使用你想要的umask。如果文件/目录是用php创建的,你需要修改php代码。
如果你将从你的bash会话中创建新的文件/文件夹,你可以在你的shell配置文件 ~/.bashrc中设置umask值。 或者你可以在
/etc/bashrc
或/etc/profile
文件中为所有用户设置umask。 在文件中添加以下内容。 umask 022而要改变已经创建的文件的权限,可以使用find。 希望这能帮助你。
有两个答案,一是找到文件,二是应用 "chmod"。 第一种是 "找到 "文件,然后在找到的时候应用 "chmod"(如@WombleGoneBad所建议)。
第二种方法是用 "find "命令生成所有文件的列表,并将此列表提供给 "chmod "命令(如@lamgesh所建议)。
只要 "find "命令返回的文件数量不多,这两个版本都能很好地工作。 第二种方案看起来很好,比第一种方案更易读。 如果文件数量多,第二种方案会返回错误。
Argument list too long.
。所以我的建议是
chmod -R 755 /opt/lampp/htdocs
。如果你使用的文件数量非常多,使用
find /opt/lampp/htdocs -type d -exec chmod 755 {} \\;
。-type x
选项只搜索特定类型的文件,其中d用于查找目录,f用于文件,l用于链接。使用
chmod 755 $(find /path/to/base/dir -type d)
,否则使用在任何情况下最好使用第一种
它'很简单。
在终端中进入文件管理器。 例子:
sudo nemo
。sudo nemo
. 进入/opt/
,然后点击Properties → Permission. 再点击其他。 最后改成创建和删除,文件权限改成读写,然后点击按钮应用...... 就可以工作了。