如何更改文件夹及其子文件夹/文件的权限?[关闭]

2024-09-30 15:23:00
admin
原创
90
摘要:问题描述:如何更改文件夹及其所有子文件夹和文件的权限?这仅适用于/opt/lampp/htdocs文件夹,不适用于其内容:chmod 775 /opt/lampp/htdocs 如何设置chmod 755文件夹的当前所有 /opt/lampp/htdocs内容,以及将来自动设置在该文件夹下创建的新文件夹/文件...

问题描述:

如何更改文件夹及其所有子文件夹和文件的权限?

这仅适用于/opt/lampp/htdocs文件夹,不适用于其内容:

chmod 775 /opt/lampp/htdocs

如何设置chmod 755文件夹的当前所有 /opt/lampp/htdocs内容,以及将来自动设置在该文件夹下创建的新文件夹/文件?


解决方案 1:

其他答案都是正确的,因为这样chmod -R 755会将这些权限设置为树中的所有文件和子文件夹。但你到底为什么要这样做?对于目录来说,这可能有意义,但为什么要在所有文件上设置执行位?

我怀疑您真正想要做的是将目录设置为 755,然后将文件保留原样,或者将它们设置为 644。为此,您可以使用该find命令。例如:

要将所有目录更改为 755 ( drwxr-xr-x):

find /opt/lampp/htdocs -type d -exec chmod 755 {} ;

将所有文件更改为 644 ( -rw-r--r--):

find /opt/lampp/htdocs -type f -exec chmod 644 {} ;

一些解释:(感谢@tobbez

  • chmod 755 {}`find`指定将对每个目录执行的命令

  • chmod 644 {}`find`指定将对每个文件执行的命令

  • {}被路径替换

  • ;分号表示find这是要执行的命令的结束

  • ;分号被转义,否则它将被 shell 解释为find

解决方案 2:

检查 -R 选项

chmod -R <permissionsettings> <dirname>

以后,您可以通过先检查手册页来节省大量时间:

man <command name>

因此在这种情况下:

man chmod

解决方案 3:

如果要将所有文件的权限设置为a+r,将所有目录的权限设置为a+x,并通过完整的子目录树递归执行此操作,请使用:

chmod -R a+rX *

对于文件,将忽略X(即大写X,而不是小写x!)(除非某些人已经可以执行这些文件),但对于目录,将使用 (即大写,而不是小写!)。

解决方案 4:

您可以使用-Rwithchmod递归遍历所有文件和子文件夹。

您可能需要 sudo,因为它取决于当前用户或其他用户安装的LAMP :

sudo chmod -R 755 /opt/lampp/htdocs

解决方案 5:

正确的递归命令是:

sudo chmod -R 755 /opt/lampp/htdocs

-R:更改每个子文件夹,包括当前文件夹

解决方案 6:

要设置为所有子文件夹(递归),请使用 -R

chmod 755 /folder -R

解决方案 7:

chmod 755 -R /opt/lampp/htdocs将递归设置权限。无法仅在此目录中自动设置您设置权限后创建的文件的权限,但您可以通过设置来更改系统范围的默认文件权限umask 022

解决方案 8:

您可能需要考虑nik超级用户上给出的这个答案,并对所有文件/文件夹使用“一个 chmod”,如下所示:

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)

解决方案 9:

这是将目录设置为 775 并将文件设置为 664 的另一种方法。

find /opt/lampp/htdocs \n( -type f -exec chmod ug+rw,o+r {} ; ) , \n( -type d -exec chmod ug+rwxs,o+rx {} ; )

它可能看起来很长,但是由于以下三个原因它非常酷:

  1. 仅扫描文件系统一次而不是两次。

  2. 与目录处理方式相比,可以更好地控制文件的处理方式。这在使用特殊模式(如粘性位)时非常有用,您可能希望将其应用于目录而不是文件。

  3. 直接使用页面中的技术man(见下文)。

请注意,我尚未确认此解决方案与仅使用两个 find 命令(如 Peter Mortensen 的解决方案)之间的性能差异(如果有的话)。但是,在手册中看到类似的例子令人鼓舞。

页面示例man find

find / \n( -perm -4000 -fprintf /root/suid.txt %#m %u %p
 ) , \n( -size +100M -fprintf /root/big.txt %-10s %p
 )

Traverse the filesystem just once, listing setuid files and direct‐
tories into /root/suid.txt and large files into /root/big.txt.

解决方案 10:

使用:

sudo chmod 755 -R /whatever/your/directory/is

但是,请小心谨慎。如果您更改了错误的文件/文件夹的权限,可能会对您造成很大伤害。

解决方案 11:

chmod -R 755 directory_name可以,但您如何将新文件也保持在 755 呢?文件的权限将成为默认权限。

解决方案 12:

对于 Mac OS X 10.7 (Lion),它是:

chmod -R 755 /directory

是的,正如其他人所说的那样,这样做时要小心。

解决方案 13:

对于仍在努力解决权限问题的人,请cd ..从项目的根目录向上导航一个目录级别,将您自己(用户)添加到该目录并授予编辑其中所有内容的权限(在 macOS 上测试)。

为此,您可以运行此命令(首选):

sudo chown -R username: foldername .*

注意:对于当前未保存的更改,可能需要先重新启动代码编辑器才能保存而无需输入密码。

此外,请记住,您可以Tab在输入用户名和文件夹时按下查看选项,以方便操作。


或者简单来说:

sudo chmod -R 755 foldername

但正如上面提到的,使用第二种方法时需要小心。

解决方案 14:

查找文件并应用它们有两个答案chmod

第一个是find文件并chmod在找到时应用(如@WombleGoneBad 所建议的)。

find /opt/lampp/htdocs -type d -exec chmod 755 {} ;

第二种解决方案是使用命令生成所有文件的列表find并将该列表提供给chmod命令(如@lamgesh 所建议的)。

chmod 755 $(find /path/to/base/dir -type d)

只要命令返回的文件数量较少,这两个版本都可以很好地工作find。第二个解决方案看起来很棒,并且比第一个解决方案更具可读性。如果文件数量很多,第二个解决方案会返回错误:Argument list too long.

所以我的建议是

  1. chmod -R 755 /opt/lampp/htdocs如果您想一次性更改所有文件和目录的权限,请使用。

  2. find /opt/lampp/htdocs -type d -exec chmod 755 {} ;如果您使用的文件数量非常大,请使用此选项。此-type x选项仅搜索特定类型的文件,其中 d 用于查找目录,f 用于查找文件,l 用于查找链接。

  3. chmod 755 $(find /path/to/base/dir -type d)否则使用

  4. 在任何情况下最好使用第一个

解决方案 15:

您需要确保适当的文件和目录已进行 chmod 操作/权限适当。对于您想要的所有目录

find /opt/lampp/htdocs -type d -exec chmod 711 {} ;

对于所有图像、JavaScript、CSS、HTML...嗯,你不应该执行它们。所以使用

chmod 644 img/* js/* html/*

但是对于所有逻辑代码(例如 PHP 代码),您应该设置权限以使用户看不到该代码:

chmod 600 file

解决方案 16:

我认为亚当正在问如何更改尝试对目录进行操作的所有进程的 umask 值/opt/lampp/htdocs

用户文件创建模式掩码(umask)用于确定新建文件的文件权限。它可用于控制新文件的默认文件权限。

因此如果您要使用某种 FTP 程序上传文件,则/opt/lampp/htdocs需要配置您的 FTP 服务器以使用您想要的 umask。

如果需要创建文件/目录,例如通过 PHP,则需要修改 PHP 代码:

<?php
    umask(0022);
    // Other code
?>

如果您要从 Bash 会话创建新文件/文件夹,则可以在 shell 配置文件~/.bashrc文件中设置 umask 值。

/etc/bashrc或者您可以为所有用户在或文件中设置 umask /etc/profile

将以下内容添加到文件:

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

解决方案 17:

您可以使用以下命令更改权限:

sudo chmod go+rwx /opt/lampp/htdocs

解决方案 18:

使用:

sudo chmod -R a=-x,u=rwX,g=,o= folder

所有者为 rw,其他人无权访问,目录为 rwx。这将清除文件上现有的“x”。

符号 chmod 计算在Chmod 744中解释。

解决方案 19:

这非常简单。

在终端中,转到文件管理器。示例:sudo nemo。转到/opt/,然后单击属性权限。然后是其他。最后,将创建和删除以及文件访问权限更改为读写然后单击应用按钮... 即可。

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用