欢迎光临升邦信息网
详情描述
Unix 文件管理与权限设置教程

一、文件系统基础

1. 文件系统结构

/           # 根目录
├── bin     # 基本命令程序
├── etc     # 系统配置文件
├── home    # 用户主目录
├── usr     # 用户程序和数据
├── var     # 可变数据(日志等)
├── tmp     # 临时文件
└── ...

2. 路径类型

  • 绝对路径:从根目录开始,如 /home/user/file.txt
  • 相对路径:从当前目录开始,如 ./file.txt../parent/file.txt

二、基本文件管理命令

1. 目录操作

# 查看当前目录
pwd

# 切换目录
cd /path/to/directory
cd ..           # 上级目录
cd ~            # 返回家目录
cd -            # 返回上一个目录

# 列出目录内容
ls              # 简单列表
ls -l           # 详细列表
ls -a           # 显示隐藏文件
ls -lh          # 人类可读的文件大小
ls -lt          # 按时间排序

# 创建目录
mkdir dirname
mkdir -p dir1/dir2/dir3  # 创建多级目录

# 删除目录
rmdir dirname            # 删除空目录
rm -r dirname            # 递归删除非空目录

2. 文件操作

# 创建文件
touch filename.txt
echo "content" > filename.txt

# 查看文件
cat filename.txt         # 显示整个文件
less filename.txt        # 分页查看
head -n 10 filename.txt  # 查看前10行
tail -n 10 filename.txt  # 查看后10行
tail -f filename.txt     # 实时查看日志文件

# 复制文件
cp source.txt dest.txt
cp -r sourcedir/ destdir/  # 复制目录

# 移动/重命名文件
mv oldname.txt newname.txt
mv file.txt /target/directory/

# 删除文件
rm filename.txt
rm -i filename.txt      # 删除前确认
rm -f filename.txt      # 强制删除

三、文件权限系统

1. 权限表示法

a) 符号表示法(rwx)
-rwxr-xr--  1 user group  1024 Jan 1 12:00 file.txt
↑ ↑↑↑↑↑↑↑↑
│ │└─其他用户权限
│ └───同组用户权限
└─────所有者权限

权限字符含义:

  • r = 读取 (4)
  • w = 写入 (2)
  • x = 执行 (1)
  • - = 无权限 (0)
b) 数字表示法(八进制)
rwx r-x r--  =  7  5  4
421 401 400
↓   ↓   ↓
7   5   4

常见权限组合:

  • 755 = rwxr-xr-x (所有者完全权限,其他人读执行)
  • 644 = rw-r--r-- (所有者读写,其他人只读)
  • 777 = rwxrwxrwx (完全开放 - 不安全!)

2. 查看文件权限

ls -l filename.txt
stat filename.txt

输出示例:

-rwxr-xr--  1 alice  staff  1024 Jan 1 12:00 script.sh
drwxr-xr-x  2 bob    dev    4096 Jan 1 12:00 mydir/

3. 修改文件权限

a) chmod - 修改权限
# 符号模式
chmod u+x file.txt          # 给所有者添加执行权限
chmod g-w file.txt          # 移除同组用户的写权限
chmod o=r file.txt          # 设置其他用户只读
chmod a+x file.txt          # 所有人添加执行权限
chmod u=rwx,g=rx,o=r file.txt

# 数字模式
chmod 755 file.txt
chmod 644 file.txt
chmod 700 file.txt          # 仅所有者完全访问

# 递归修改目录
chmod -R 755 directory/
b) chown - 修改所有者和组
# 修改所有者
chown username file.txt

# 修改组
chown :groupname file.txt

# 同时修改所有者和组
chown username:groupname file.txt

# 递归修改目录
chown -R username:groupname directory/
c) chgrp - 修改组(替代方案)
chgrp groupname file.txt
chgrp -R groupname directory/

四、特殊权限

1. SetUID (SUID)

# 设置SUID:用户执行文件时,以文件所有者的身份运行
chmod u+s /usr/bin/passwd
chmod 4755 /usr/bin/passwd

# 查看SUID(显示为 s 而不是 x)
ls -l /usr/bin/passwd
# -rwsr-xr-x 1 root root ...

2. SetGID (SGID)

# 设置SGID:目录中新创建的文件继承目录的组
chmod g+s directory/
chmod 2755 directory/

# 查看SGID
ls -ld directory/
# drwxr-sr-x 2 user group ...

3. Sticky Bit

# 设置粘滞位:只有文件所有者才能删除/tmp目录中的文件
chmod +t /tmp
chmod 1777 /tmp

# 查看粘滞位
ls -ld /tmp
# drwxrwxrwt 2 root root ...

五、默认权限与umask

1. 查看当前umask

umask          # 显示当前掩码
umask -S       # 符号格式显示

2. 设置umask

# 临时设置
umask 022

# 永久设置(添加到 ~/.bashrc 或 ~/.bash_profile)
echo "umask 022" >> ~/.bashrc

3. 权限计算

文件默认权限 = 666 - umask
目录默认权限 = 777 - umask

示例:umask 022
文件权限 = 666 - 022 = 644 (rw-r--r--)
目录权限 = 777 - 022 = 755 (rwxr-xr-x)

六、访问控制列表(ACL)

1. 检查ACL支持

# 检查文件系统是否支持ACL
mount | grep acl

# 检查文件ACL
getfacl filename.txt

2. 设置ACL

# 给特定用户添加权限
setfacl -m u:username:rwx file.txt

# 给特定组添加权限
setfacl -m g:groupname:rx file.txt

# 设置默认ACL(对新创建的文件有效)
setfacl -d -m u:username:rwx directory/

# 删除特定ACL条目
setfacl -x u:username file.txt

# 删除所有ACL条目
setfacl -b file.txt

七、实用示例

示例1:安全脚本配置

# 1. 创建脚本
echo '#!/bin/bash' > backup.sh
echo 'echo "Backup completed"' >> backup.sh

# 2. 设置安全权限
chmod 750 backup.sh        # 所有者完全,同组读执行,其他人无权限
chown root:admin backup.sh # 设置所有者和组

# 3. 设置SUID(如果需要以root运行)
chmod 4750 backup.sh

示例2:项目目录权限设置

# 创建项目目录结构
mkdir -p project/{src,doc,bin,log}

# 设置目录权限
chmod 755 project/          # 所有人可进入
chmod 770 project/src/      # 团队成员可读写
chmod 750 project/bin/      # 团队成员可执行
chmod 777 project/log/      # 所有人可写日志

# 设置SGID使新文件继承组
chmod 2770 project/src/

示例3:批量修改权限

# 所有.sh文件添加执行权限
find . -name "*.sh" -exec chmod +x {} \;

# 修改所有目录权限为755
find . -type d -exec chmod 755 {} \;

# 修改所有文件权限为644
find . -type f -exec chmod 644 {} \;

八、权限检查与调试

1. 检查当前用户权限

# 检查当前用户对文件的权限
[ -r file.txt ] && echo "可读"
[ -w file.txt ] && echo "可写"
[ -x file.txt ] && echo "可执行"
[ -d directory ] && echo "是目录"

2. 查看用户身份

whoami          # 当前用户名
id              # 用户ID和组信息
groups          # 当前用户所属组

九、最佳实践

最小权限原则:只授予必要的最小权限 避免使用777:尽量使用更严格的权限 定期审计:定期检查关键文件的权限 使用组管理:通过组管理权限而不是个人用户 敏感文件保护:配置文件通常设置为600或640 脚本安全:需要执行的脚本设置为755,不需要执行的设置为644

十、问题排查

# 如果遇到权限问题:

# 1. 查看文件详细信息
ls -la file.txt

# 2. 检查用户所属组
id username

# 3. 测试权限
sudo -u otheruser ls file.txt

# 4. 检查父目录权限(需要目录的x权限才能访问)
ls -ld /path/to/parent/

# 5. 检查SELinux/AppArmor(如果启用)
getenforce          # SELinux状态
sestatus            # SELinux详细信息

这个教程涵盖了Unix/Linux系统中最常用的文件管理和权限设置操作。记住,正确的权限管理是系统安全的基础!

相关帖子
即墨区车子抵押企业生意贷款@按揭房二次贷款,公司经营贷
即墨区车子抵押企业生意贷款@按揭房二次贷款,公司经营贷
从社会观念角度看,育儿假延长对促进家庭内部平等分担养育责任有何影响?
从社会观念角度看,育儿假延长对促进家庭内部平等分担养育责任有何影响?
作为数字游民,在全球旅居工作中如何维持稳定的生活节奏与亲密关系?
作为数字游民,在全球旅居工作中如何维持稳定的生活节奏与亲密关系?
2026通勤效率提升指南:如何利用碎片时间自我充电?
2026通勤效率提升指南:如何利用碎片时间自我充电?
青岛市生意周转贷款|车子抵押贷款公司办理,住房抵押贷款
青岛市生意周转贷款|车子抵押贷款公司办理,住房抵押贷款
恩平市典当行抵押贷款-工程车借款,房屋装修银行贷款
恩平市典当行抵押贷款-工程车借款,房屋装修银行贷款
毕节市按揭车贷款@抵押车贷款,个人应急信用贷款
毕节市按揭车贷款@抵押车贷款,个人应急信用贷款
榆次区应急周转贷款|车辆抵押贷款押本不押车,房屋一押二押贷款
榆次区应急周转贷款|车辆抵押贷款押本不押车,房屋一押二押贷款
针对热门线路和车次,加速包的抢票策略会有何不同调整?
针对热门线路和车次,加速包的抢票策略会有何不同调整?
江阴市典当行信用贷款@汽车抵押借款押证,住房一押二押银行贷款
江阴市典当行信用贷款@汽车抵押借款押证,住房一押二押银行贷款
在办理跨省年检业务时,可能会产生哪些具体的检测费用和服务费?
在办理跨省年检业务时,可能会产生哪些具体的检测费用和服务费?
硚口区车辆抵押贷款办理押证不押车@银行房屋抵押贷款,附近个人贷款
硚口区车辆抵押贷款办理押证不押车@银行房屋抵押贷款,附近个人贷款
威海市精准获客@企业网站开发设计,优秀设计团队
威海市精准获客@企业网站开发设计,优秀设计团队
启东市个人债务重组|车辆抵押贷款办理押大本,住房装修贷款
启东市个人债务重组|车辆抵押贷款办理押大本,住房装修贷款
门头沟区本地助贷公司@车辆抵押贷款押车大本,商铺银行抵押贷款
门头沟区本地助贷公司@车辆抵押贷款押车大本,商铺银行抵押贷款
白银市车子抵押经营贷#车辆抵押大本贷款,农户贷
白银市车子抵押经营贷#车辆抵押大本贷款,农户贷
明光市附近银行信贷办理|汽车贷款押证,专业办理房抵贷
明光市附近银行信贷办理|汽车贷款押证,专业办理房抵贷
2026年对补贴资金的发放和使用,有哪些具体的监管与审计措施?
2026年对补贴资金的发放和使用,有哪些具体的监管与审计措施?
新宁县个人信贷办理-车辆红本抵押银行贷款,房屋抵押贷款
新宁县个人信贷办理-车辆红本抵押银行贷款,房屋抵押贷款