Linux权限管理体系
Linux作为一个多用户操作体系,其权限管理体系是保障体系安全的重要构成部分。通过合理设置文件和目次的权限,可以有效控制用户对体系资源的访问。
一、基本权限概念
Linux体系中的权限分为三类:
- 读权限(r):允许读取文件内容或列出目次内容
- 写权限(w):允许修改文件内容或在目次中创建、删除文件
- 实行权限(x):允许实行文件或进入目次
这些权限分别应用于三种用户类型:
- 文件所有者(u):创建文件的用户
- 用户组(g):与文件关联的用户组
- 其他用户(o):既不是所有者也不在用户组中的用户
二、查看文件权限
利用ls -l命令可以查看文件的详细信息,包罗权限:
- $ ls -l
- -rwxr-xr-- 1 user group 4096 Jan 1 10:00
- file.txt
复制代码
权限部分分析:
- 第一个字符:文件类型(-表现平凡文件,d表现目次,l表现符号链接等)
- 接下来的9个字符分为3组,每组3个字符:
- 第1-3位:所有者权限(rwx)
- 第4-6位:用户组权限(r-x)
- 第7-9位:其他用户权限(r--)
三、权限的数字表现
权限也可以用数字表现:
- r (读) = 4
- w (写) = 2
- x (实行) = 1
通过将每组权限的数字相加,可以得到一个三位数:
- 比方:rwxr-xr-- = 754
- 所有者:rwx = 4+2+1 = 7
- 用户组:r-x = 4+0+1 = 5
- 其他用户:r-- = 4+0+0 = 4
四、修改文件权限
1. chmod命令
chmod命令用于修改文件或目次的权限。有两种利用方式:
符号模式:
- chmod [用户类型][操作符][权限] 文件名
复制代码
- 用户类型:u(所有者)、g(用户组)、o(其他用户)、a(所有用户)
- 操作符:+(添加权限)、-(移除权限)、=(设置权限)
- 权限:r(读)、w(写)、x(实行)
比方:
- chmod u+x file.txt # 给所有者添加执行权限
- chmod go-w file.txt # 移除用户组和其他用户的写权限
- chmod a=r file.txt # 设置所有用户只有读权限
复制代码 数字模式:
比方:
- chmod 755 file.txt # 设置权限为rwxr-xr-x
- chmod 644 file.txt # 设置权限为rw-r--r--
复制代码
2. chown命令
chown命令用于修改文件的所有者和用户组:
比方:
- chown user1 file.txt # 修改所有者为user1
- chown user1:group1 file.txt # 修改所有者为
- user1,用户组为group1
复制代码
3. chgrp命令
chgrp命令用于修改文件的用户组:
比方:
- chgrp group1 file.txt # 修改用户组为group1
复制代码 五、特殊权限
除了基本的rwx权限外,Linux尚有三种特殊权限:
- SUID (Set User ID):当文件被实行时,进程的有效用户ID会被设置为文件所有者的ID
- 数字表现:4000
- 符号表现:s (更换所有者的x位置)
- SGID (Set Group ID):当文件被实行时,进程的有效用户组ID会被设置为文件用户组的ID
- 数字表现:2000
- 符号表现:s (更换用户组的x位置)
- Sticky Bit:重要用于目次,只有文件的所有者、目次的所有者或root用户才气删除或重命名目次中的文件
- 数字表现:1000
- 符号表现:t (更换其他用户的x位置)
设置特殊权限的例子:
- chmod u+s file # 设置SUID
- chmod g+s directory # 设置SGID
- chmod +t directory # 设置Sticky Bit
- chmod 4755 file # 设置SUID和rwxr-xr-x权限
复制代码
六、默认权限与umask
新创建文件和目次的默认权限由体系的umask值决定:
- 文件的最大默认权限是666 (rw-rw-rw-)
- 目次的最大默认权限是777 (rwxrwxrwx)
- 现实默认权限 = 最大默认权限 - umask值
查看当前umask值:
设置umask值:
常见的umask值:
- 022:文件默认权限为644 (rw-r--r--),目次默认权限为755 (rwxr-xr-x)
- 002:文件默认权限为664 (rw-rw-r--),目次默认权限为775 (rwxrwxr-x)
七、访问控制列表(ACL)
当基本权限不足以满意需求时,可以利用访问控制列表(ACL)提供更精细的权限控制:
查看文件的ACL:
设置文件的ACL:
- setfacl -m u:用户名:权限 文件名 # 为指定用户
- 设置权限
- setfacl -m g:组名:权限 文件名 # 为指定用户组
- 设置权限
复制代码
比方:
- setfacl -m u:john:rw file.txt # 给用户
- john添加读写权限
- setfacl -m g:developers:rx file.txt # 给
- developers组添加读和执行权限
复制代码
总结
Linux的权限管理体系是保障体系安全的重要构成部分。通过合理设置文件和目次的权限,可以有效控制用户对体系资源的访问。把握权限管理的基本概念和操作方法,对于体系管理和安全维护至关重要。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |