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

相关推荐
小向是个Der7 小时前
嵌入式进阶——MCU上电后的动作
c语言·单片机·mcu·学习·链接脚本
qq_401700418 小时前
Linux设备树详解
linux·运维·服务器
云梦谭9 小时前
让 Linux 主动连接 Windows:配置 Windows 11 SSH 服务端
linux·windows·ssh
刚入门的大一新生9 小时前
Linux-信号
linux·运维·服务器
bkspiderx10 小时前
基于Socket的广播通信及C语言实现详解
c语言·开发语言·socket·广播·socket的广播通信
GeW13 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux
mounter62514 小时前
深入理解 gccrs:GCC 如何实现 Rust 编译器,以及编译 Linux 内核面临的挑战
linux·驱动开发·rust
垚垚学技术_聚焦云原生14 小时前
Ansible Playbook 进阶:when 条件、loop 循环、handlers 触发器落地
linux·ansible·自动化运维·devops
无足鸟ICT14 小时前
【RHCA+】type命令(判断命令类型)
linux·ssh·bash
咸鱼梦想家π14 小时前
Linux开发工具(下)
linux·运维·服务器