Linux中修改demo.c文件的权限

Linux中修改demo.c文件的权限

Linux 入门笔记-CSDN博客


一、文件/目录权限三剑客

1️⃣ chmod ------ 改权限(读/写/执行)

bash 复制代码
chmod 644 file.txt        # rw-r--r--
chmod 755 script.sh       # rwxr-xr-x
chmod +x script.sh        # 加执行权限
chmod -R 755 dir/         # 递归改目录
数字 含义
7 rwx
6 rw-
5 r-x
4 r--

举例


2️⃣ chown ------ 改所有者(谁的文件)

bash 复制代码
chown user file.txt
chown user:group file.txt
chown -R user:group dir/

⚠️ 改别人文件需要 sudo


3️⃣ chgrp ------ 只改所属组

bash 复制代码
chgrp devs file.txt
chgrp -R devs dir/

二、查看权限(诊断用)

命令 作用
ls -l 查看权限/所有者/组
ls -la 包含隐藏文件
ls -ld dir/ 只看目录本身权限
stat file 查看详细权限(含 inode)
bash 复制代码
ls -l file.txt
# -rw-r--r-- 1 alice devs 1024 Jan 1 10:00 file.txt

三、sudo 系列(提权)

命令 作用
sudo cmd 以 root 执行一次
sudo -i 切换到 root shell
sudo su 切到 root(不加载环境)
sudo -u user cmd 以指定用户执行
sudo !! 用 sudo 重跑上一条命令

四、ACL 权限(比 chmod 更细粒度)

chmod 不够用(比如要给特定用户单独权限)时用 ACL

setfacl / getfacl

bash 复制代码
# 给用户单独加权限
setfacl -m u:alice:rwx file.txt

# 给组加权限
setfacl -m g:devs:rx dir/

# 查看 ACL
getfacl file.txt

# 删除 ACL
setfacl -x u:alice file.txt

# 递归
setfacl -R -m u:alice:rwx dir/

五、特殊权限位(高级)

1️⃣ SUID(以文件所有者身份执行)

bash 复制代码
chmod u+s /usr/bin/passwd
# 或
chmod 4755 file

典型:passwd 命令需要改 /etc/shadow,普通用户靠 SUID 提权


2️⃣ SGID(目录继承组)

bash 复制代码
chmod g+s dir/
# 或
chmod 2775 dir/

新建文件自动继承目录的组


3️⃣ Sticky Bit(目录防删)

bash 复制代码
chmod +t /tmp
# 或
chmod 1777 /tmp

/tmp 里只能删自己的文件


六、umask(默认权限)

bash 复制代码
umask          # 查看当前 umask
umask 022      # 设置(默认 644/755)
umask 文件默认 目录默认
022 644 755
002 664 775

七、属性锁定(防删/防改)

chattr / lsattr

bash 复制代码
chattr +i file.txt      # 不可修改/删除(连 root 都不行)
chattr +a file.txt      # 只能追加
chattr -i file.txt      # 解锁

lsattr file.txt         # 查看属性

⚠️ 需要 sudo,ext 文件系统专用


八、sudo 权限管理(/etc/sudoers)

bash 复制代码
visudo                    # 安全编辑 sudoers

示例:

bash 复制代码
alice ALL=(ALL) NOPASSWD: /usr/bin/apt

九、用户/组管理(权限的源头)

命令 作用
whoami 当前用户
id 用户+组信息
groups 所属组
adduser user 创建用户
deluser user 删除用户
usermod -aG sudo user 加 sudo 权限
groupadd devs 创建组
gpasswd -a user devs 加用户到组

十、排查权限问题的标准流程

bash 复制代码
# 1. 看文件权限
ls -l file

# 2. 看 ACL
getfacl file

# 3. 看文件属性
lsattr file

# 4. 看当前用户
whoami && id

# 5. 看父目录权限(关键!)
namei -l /path/to/file

⚠️ 访问文件需要每一级目录都有 x 权限


十一、速查表(打印贴墙上)

场景 命令
改权限 chmod
改所有者 chown
改组 chgrp
给特定用户权限 setfacl
锁定文件 chattr +i
提权执行 sudo
看权限 ls -l
看 ACL getfacl
看属性 lsattr
目录防删 chmod +t

相关推荐
0+11119 分钟前
Linux --库制作与原理
linux·运维·服务器
uxiang_blog20 分钟前
Linux修改计算名字和添加删除用户名。
linux·运维·服务器
Syc1102g35 分钟前
在 Linux CentOS 系统中设置静态 IP
linux·网络·计算机网络·个人开发
YQ_0136 分钟前
ROS 2 Humble Nav2 生命周期教程:启动流程、状态监控、超时诊断与自愈设计
linux·机器人·ros2·nav2
luj_176840 分钟前
断舍离中的项目管理智慧
c语言·开发语言·c++·经验分享·算法
loong_XL1 小时前
Windows WSL2 Ubuntu 搭建 Xvfb 虚拟桌面环境,完美支持多 Agent 隔离
linux·windows·ubuntu
大熊背1 小时前
树莓派 libcamera IPA 框架解析
linux·ipa·isppipeline
春风解人意1 小时前
从零开始学习嵌入式P30----进程间的通信
c语言·学习
Horn Still Sounds1 小时前
Linux进程间通信:信号、消息队列、共享内存完整笔记
linux·网络·笔记