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

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

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1043  
  IPD(Integrated Product Development,集成产品开发)是一种系统化的产品开发方法论,旨在通过跨职能团队的协作,优化产品开发的效率和质量。IPD流程强调从市场需求出发,通过并行工程、跨部门协作和阶段性评审,确保产品从概念到上市的每个环节都高效且可控。随着敏捷开发方法的普及,越来越多的企业开始...
华为IPD流程   41  
  随着企业产品开发复杂度的提升以及市场需求的快速变化,传统的产品开发模式逐渐显现出局限性。集成产品开发(IPD)流程与敏捷开发(Agile Development)作为两种主流的开发方法论,分别从系统化管理和快速响应需求的角度为企业提供了解决方案。然而,单独使用其中一种方法往往无法完全满足企业在效率、质量和创新上的多重需...
华为IPD流程   35  
  华为IPD(Integrated Product Development,集成产品开发)流程是华为公司成功的关键因素之一。它不仅帮助华为在技术上实现了快速创新,还通过市场导向确保了产品的商业成功。IPD流程通过整合技术与市场双驱动,实现了从需求定义到产品交付的全生命周期管理。这种模式不仅提高了产品的开发效率,还降低了市...
IPD流程中PDCP是什么意思   32  
  在研发领域,集成产品开发(IPD)流程已经成为企业提升创新效率和市场竞争力的重要手段。然而,资源分配的不合理往往是制约IPD流程效率的关键因素之一。无论是人力资源、财务资源还是技术资源,如何高效分配直接关系到项目的成功与否。优化资源分配不仅能够缩短产品开发周期,还能降低研发成本,提升产品的市场竞争力。因此,掌握资源分配...
IPD流程中CDCP   34  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用