Linux文件权限和属性详解
概述
深入理解Linux权限系统的核心原理与实践应用
权限位详解
-rwxr-xr-- 1 root staff 1024 Jan 1 12:00 example.txt
Linux文件权限由10位字符组成,让我们逐位分析:
文件类型-
所有者读r
所有者写w
所有者执行x
组读r
组写-
组执行x
其他读r
其他写-
其他执行-
文件类型标识:
- 普通文件
d 目录
l 符号链接
b 块设备
c 字符设备
p 管道
s 套接字
八进制权限系统
Linux使用八进制数字表示权限,每个数字代表一组权限:
读权限(r) = 4
写权限(w) = 2
执行权限(x) = 1
常用权限组合:
7 (rwx) = 4+2+1 = 读写执行
6 (rw-) = 4+2 = 读写
5 (r-x) = 4+1 = 读执行
4 (r--) = 4 = 只读
0 (---) = 0 = 无权限
所有者权限
读取(4)
写入(2)
执行(1)
组权限
读取(4)
写入(2)
执行(1)
其他用户权限
读取(4)
写入(2)
执行(1)
计算结果
000
符号表示法:---------
chmod命令:chmod 000 filename
权限说明:
请选择权限以查看说明
实际应用示例
目录权限
chmod 755 /home/user/documents
所有者:读写执行 (7)组:读执行 (5)其他:读执行 (5)
配置文件
chmod 644 /etc/config.conf
所有者:读写 (6)组:只读 (4)其他:只读 (4)
可执行脚本
chmod 755 /usr/local/bin/script.sh
所有者:读写执行 (7)组:读执行 (5)其他:读执行 (5)
私有文件
chmod 600 ~/.ssh/id_rsa
所有者:读写 (6)组:无权限 (0)其他:无权限 (0)
Web文件
chmod 644 /var/www/html/index.html
Web服务器可读,所有者可写
日志文件
chmod 640 /var/log/application.log
所有者读写,组只读,其他无权限
高级权限控制
SUID (Set User ID)
权限位:4000
文件以文件所有者身份执行
chmod 4755 /usr/bin/passwd
SGID (Set Group ID)
权限位:2000
文件以文件所属组身份执行
chmod 2755 /usr/bin/wall
Sticky Bit
权限位:1000
只有文件所有者可删除
chmod 1777 /tmp
文件属性详解
除了权限外,Linux文件还有其他重要属性:
查看文件属性
ls -l filenamestat filenamelsattr filename
文件属性包含:
inode编号:文件系统中的唯一标识
硬链接数:指向此文件的硬链接数量
所有者/组:文件的所有者和所属组
文件大小:以字节为单位的文件大小
时间戳:访问时间(atime)、修改时间(mtime)、改变时间(ctime)
扩展属性:如不可修改(i)、仅追加(a)等