Shell 是 Linux/Unix 系统的命令行解释器,它是用户与操作系统内核之间的接口。当用户输入命令时,Shell 负责解释这些命令并将其转换为内核能够理解的指令。
Linux 中每个文件和目录都有三组权限: 1. 所有者权限 (User) 2. 所属组权限 (Group) 3. 其他用户权限 (Others)
每组权限包含三种类型: - 读 (r):查看文件内容或列出目录内容 - 写 (w):修改文件内容或在目录中创建/删除文件 - 执行 (x):执行文件或进入目录
符号表示法:rwxr-xr--
-
表示没有该权限数字表示法(八进制):
rwxr-xr--
= 754SUID (Set User ID):
s
(如 rwsr-xr-x
)SGID (Set Group ID):
s
(如 rwxr-sr-x
)Sticky Bit:
t
(如 rwxrwxrwt
)查看权限:
ls -l 文件名
修改权限:
chmod [选项] 模式 文件
# 示例:
chmod 755 script.sh # 数字模式
chmod u+x,g-w,o=r file # 符号模式
修改所有者:
chown [选项] 用户:组 文件
# 示例:
chown user1:developers file.txt
修改所属组:
chgrp [选项] 组 文件
# 示例:
chgrp developers file.txt
设置默认权限:
umask [值] # 显示或设置默认权限掩码
su
和 sudo
临时提升权限设置可执行脚本:
chmod +x script.sh
./script.sh
保护敏感文件:
chmod 600 ~/.ssh/id_rsa
共享目录设置:
chmod 2775 /shared_dir
chgrp developers /shared_dir
临时目录设置:
chmod 1777 /tmp
理解 Shell 的运行原理和 Linux 权限系统对于系统管理和安全配置至关重要。合理设置权限可以保护系统安全,防止未授权访问,同时确保合法用户能够正常完成工作。