如何更改文件夹及其所有子文件夹和文件的权限?
这仅适用于/opt/lampp/htdocs文件夹,而不适用于其内容:
chmod 775 /opt/lampp/htdocs
如何为/opt/lampp/htdocs文件夹的所有当前内容设置chmod 755,以及将来自动为其下创建的新文件夹/文件设置chmod?
如何更改文件夹及其所有子文件夹和文件的权限?
这仅适用于/opt/lampp/htdocs文件夹,而不适用于其内容:
chmod 775 /opt/lampp/htdocs
如何为/opt/lampp/htdocs文件夹的所有当前内容设置chmod 755,以及将来自动为其下创建的新文件夹/文件设置chmod?
当前回答
您可能需要考虑nik在超级用户上给出的答案,并对所有文件/文件夹使用“一个chmod”,如下所示:
chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
其他回答
Use:
sudo chmod 755 -R /whatever/your/directory/is
但是,要小心。如果您更改了错误文件/文件夹的权限,这确实会伤害您。
我认为Adam正在询问如何更改所有试图在/opt/lampp/htdoc目录上操作的进程的umask值。
用户文件创建模式掩码(umask)用于确定新创建文件的文件权限。它可用于控制新文件的默认文件权限。
因此,如果您将使用某种FTP程序将文件上载到/opt/lampp/htdoc,则需要配置FTP服务器以使用所需的umask。
例如,如果文件/目录需要由PHP创建,则需要修改PHP代码:
<?php
umask(0022);
// Other code
?>
如果要从Bash会话创建新文件/文件夹,可以在shell配置文件~/.bashrc文件中设置umask值。
或者可以在/etc/bashrc或/etc/profile文件中为所有用户设置umask。
将以下内容添加到文件中:
umask 022
Sample umask Values and File Creation Permissions
If umask value set to User permission Group permission Others permission
000 all all all
007 all all none
027 all read / execute none
要更改已创建文件的权限,可以使用find。
这里有另一种方法可以将目录设置为775,将文件设置为664。
find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)
它可能看起来很长,但很酷,原因有三:
仅扫描文件系统一次而不是两次。提供对文件处理方式与目录处理方式的更好控制。这在处理特殊模式(如粘滞位)时非常有用,您可能希望将其应用于目录而不是文件。直接使用手册页中的技术(见下文)。
注意,我还没有确认此解决方案与简单使用两个find命令(如Peter Mortensen的解决方案)之间的性能差异(如果有的话)。然而,在手册中看到类似的例子是令人鼓舞的。
手册查找页面示例:
find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)
Traverse the filesystem just once, listing setuid files and direct‐
tories into /root/suid.txt and large files into /root/big.txt.
选中-R选项
chmod-R<权限设置><目录名>
将来,您可以通过首先查看手册页来节省大量时间:
man <command name>
因此,在这种情况下:
man chmod
可以使用-R和chmod递归遍历所有文件和子文件夹。
您可能需要sudo,因为它取决于当前用户或其他用户安装的LAMP:
sudo chmod -R 755 /opt/lampp/htdocs