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

2024-09-30 15:23:00
admin
原创
242
摘要:问题描述:如何更改文件夹及其所有子文件夹和文件的权限?这仅适用于/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大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用