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

相关推荐
_upupup5 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
JeJe同学5 小时前
Docker镜像导入、容器启动
linux·运维·docker
Jason_zhao_MR6 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
闲云野鹤在人间6 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
Escalating_xu7 小时前
【C 语言】数据在内存中的存储:补码、大小端、整型陷阱与 IEEE 754 全解析
java·c语言·网络
一个风轻云淡7 小时前
GCC 和 GDB命令简单解读
java·linux·前端
H.莓飛8 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
资料库018 小时前
Linux 8个常见运维故障排查
java·linux·运维
零基础1239 小时前
Ubuntu 常用命令汇总
linux·运维·开发语言
Android系统攻城狮9 小时前
Linux Gstreamer深度解析之gst_audio_sink_get_type调用流程与实战(六十五)
linux·运维·服务器·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶