<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>chmod on 梓晨's Blog</title><link>https://blog.dawnwl.com/tags/chmod/</link><description>Recent content in chmod on 梓晨's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><copyright>梓晨科技</copyright><lastBuildDate>Sat, 10 Oct 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://blog.dawnwl.com/tags/chmod/index.xml" rel="self" type="application/rss+xml"/><item><title>Linux 将目录权限设为 755、文件权限设为 644</title><link>https://blog.dawnwl.com/posts/linux-chmod-755-644/</link><pubDate>Fri, 19 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-chmod-755-644/</guid><description>&lt;h2 id="适用范围"&gt;适用范围
&lt;/h2&gt;&lt;p&gt;需要以文件所有者或具备相应权限的管理员身份执行；仅有目录写入权限并不足以修改其他用户文件的权限。下面给出两种把目录统一设为 755、文件统一设为 644 的方法，以及保留可执行文件的方法，路径替换为实际目录。&lt;/p&gt;
&lt;h2 id="方法一一次递归-chmod"&gt;方法一：一次递归 chmod
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod -R &lt;span class="nv"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;r,u+w,a+X &lt;span class="s2"&gt;&amp;#34;/path/to/directory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;a=r&lt;/code&gt; 先把权限设为只读并清除已有执行位，&lt;code&gt;u+w&lt;/code&gt; 为所有者增加写权限，最后 &lt;code&gt;a+X&lt;/code&gt; 为目录恢复执行位。最终目录是 755，普通文件和原可执行文件都会变成 644。&lt;/p&gt;
&lt;h2 id="方法二按文件类型精确设置"&gt;方法二：按文件类型精确设置
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find &lt;span class="s2"&gt;&amp;#34;/path/to/directory&amp;#34;&lt;/span&gt; -type f -exec chmod &lt;span class="m"&gt;644&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; + &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -o -type d -exec chmod &lt;span class="m"&gt;755&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; +
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这个方法明确区分普通文件与目录，符号链接不匹配 &lt;code&gt;-type f&lt;/code&gt; 或 &lt;code&gt;-type d&lt;/code&gt;。不要先递归把目录全部设为 644，再尝试进入目录恢复权限；普通用户可能因此失去遍历权限。&lt;/p&gt;
&lt;h2 id="可选保留已有可执行文件"&gt;可选：保留已有可执行文件
&lt;/h2&gt;&lt;p&gt;如果目录中包含需要执行的脚本或程序，可以使用：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod -R &lt;span class="nv"&gt;u&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;rwX,go&lt;span class="o"&gt;=&lt;/span&gt;rX &lt;span class="s2"&gt;&amp;#34;/path/to/directory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;目录变成 755，原先有执行位的文件保留执行能力并变成 755，其余文件变成 644。此方法与前两种严格的“所有文件 644”目标不同，应按目录用途选择。&lt;/p&gt;
&lt;h2 id="验证结果"&gt;验证结果
&lt;/h2&gt;&lt;p&gt;在目标目录抽查目录、普通文件与可执行文件，例如：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stat -c &lt;span class="s1"&gt;&amp;#39;%a %n&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/path/to/directory&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/path/to/directory/example.txt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;前两种方法将所有普通文件设为 644，第三种会保留原有可执行文件的执行权限，抽查时按所选方法确认结果。&lt;/p&gt;
&lt;p&gt;参考：&lt;a class="link" href="https://www.gnu.org/software/libc/manual/html_node/Setting-Permissions.html" target="_blank" rel="noopener"
 &gt;GNU C Library 的文件权限说明&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="延伸阅读"&gt;延伸阅读
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.dawnwl.com/posts/linux-disk-mount/" &gt;Linux 数据盘分区、格式化与挂载&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>