<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>权限管理 on 梓晨's Blog</title><link>https://blog.dawnwl.com/tags/permissions/</link><description>Recent content in 权限管理 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/permissions/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><item><title>Linux 关闭 SELinux：临时停止与永久禁用</title><link>https://blog.dawnwl.com/posts/linux-disable-selinux/</link><pubDate>Mon, 08 Mar 2021 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-disable-selinux/</guid><description>&lt;h2 id="适用范围"&gt;适用范围
&lt;/h2&gt;&lt;p&gt;以下命令用于已启用 SELinux 的 Linux 系统。永久禁用的方法按系统版本选择：支持配置文件禁用的旧系统修改 &lt;code&gt;/etc/selinux/config&lt;/code&gt;，RHEL 9 设置启动参数；两种方法都需要重启。&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;sestatus -v
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;getenforce
&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;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;/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;sudo sed -i &lt;span class="s1"&gt;&amp;#39;s/^SELINUX=.*/SELINUX=disabled/&amp;#39;&lt;/span&gt; /etc/selinux/config
&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;/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;/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;sudo setenforce &lt;span class="m"&gt;0&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;setenforce 0&lt;/code&gt; 切换到宽容模式，停止强制执行策略，但保留 SELinux 和日志；它不是彻底禁用。可用 &lt;code&gt;sudo setenforce 1&lt;/code&gt; 恢复强制模式。&lt;/p&gt;
&lt;h2 id="永久关闭rhel-9"&gt;永久关闭：RHEL 9
&lt;/h2&gt;&lt;p&gt;RHEL 9 已移除原来的内核运行时禁用支持，彻底禁用应设置启动参数 &lt;code&gt;selinux=0&lt;/code&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;sudo grubby --update-kernel ALL --args &lt;span class="nv"&gt;selinux&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&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;getenforce&lt;/code&gt; 确认结果。此命令适用于使用对应 grubby 引导配置的系统，其他发行版按实际引导器设置。&lt;/p&gt;
&lt;p&gt;参考：&lt;a class="link" href="https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/considerations_in_adopting_rhel_9/assembly_security_considerations-in-adopting-rhel-9" target="_blank" rel="noopener"
 &gt;Red Hat 的版本变更说明&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>