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

2024-09-30 15:23:00
admin
原创
270
摘要:问题描述:如何更改文件夹及其所有子文件夹和文件的权限?这仅适用于/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/,然后单击属性权限。然后是其他。最后,将创建和删除以及文件访问权限更改为读写然后单击应用按钮... 即可。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2482  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1533  
  PLM(产品生命周期管理)项目对于企业优化产品研发流程、提升产品质量以及增强市场竞争力具有至关重要的意义。然而,在项目推进过程中,范围蔓延是一个常见且棘手的问题,它可能导致项目进度延迟、成本超支以及质量下降等一系列不良后果。因此,有效避免PLM项目范围蔓延成为项目成功的关键因素之一。以下将详细阐述三大管控策略,助力企业...
plm系统   0  
  PLM(产品生命周期管理)项目管理在企业产品研发与管理过程中扮演着至关重要的角色。随着市场竞争的加剧和产品复杂度的提升,PLM项目面临着诸多风险。准确量化风险优先级并采取有效措施应对,是确保项目成功的关键。五维评估矩阵作为一种有效的风险评估工具,能帮助项目管理者全面、系统地评估风险,为决策提供有力支持。五维评估矩阵概述...
免费plm软件   0  
  引言PLM(产品生命周期管理)开发流程对于企业产品的全生命周期管控至关重要。它涵盖了从产品概念设计到退役的各个阶段,直接影响着产品质量、开发周期以及企业的市场竞争力。在当今快速发展的科技环境下,客户对产品质量的要求日益提高,市场竞争也愈发激烈,这就使得优化PLM开发流程成为企业的必然选择。缺陷管理工具和六西格玛方法作为...
plm产品全生命周期管理   0  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用