千锋Linux云计算-文件权限管理

  1. 掌握基本权限ugo的命令(chmod、chown),列举2条设置权限命令并解释每个单词含义。
  2. 掌握基本权限acl的命令(setfacl、getfacl),列举2条设置权限命令并解释每个单词含义。
  3. 了解特殊权限含义(suid、chattr、umask),列举2条设置权限命令并解释每个单词含义。

1.   设置传统权限ugo

  权限对象:

  • u(user)文件或目录的所有者,属主
  • g(group)文件或目录的所属的组,属组
  • o(other)所有其他用户,其他人
  • a(all)所有人,u+g+o

  权限类型:

  • r(read)读取文件内容或列出目录内容,读,r=4
  • w(write)修改文件内容或修改目录中的文件,写,w=2
  • x(execute)执行文件或访问目录中的文件,执行,x=1

  chmod [options] mode filename更改文件或目录权限change mode

  • 使用符号模式
cd /tmp  # 切换至/tmp目录
touch f1  # 在/tmp目录下创建名为f1的空文件
ls -l f1  # 长格式列出f1文件的详细信息
# -rw-r--r--. 1 root root 0 11月 6 13:57 f1
chmod ug+x,o-r f1  # 为属主和属组添加执行文件权限,其他人删除读取文件权限
ls -l f1
# -rwxr-xr--. 1 root root 0 11月 6 13:57 f1,f1变为绿色表示可执行文件
chmod g=-,o+rx f1  # 设置属组无任何权限,为其他人添加读取和执行权限
# -rwx---r-x. 1 root root 0 11月 6 13:57 f1
  • 使用数字模式
chmod 750 f1  # 设置属主权限为读、写、执行,属组权限为读、执行,其他人无权限
ls -l f1
# -rwxr-x---. 1 root root 0 11月 6 13:57 f1
mkdir d1  # 新建名为d1的目录
touch d1/f2 d1/f3  # 在d1目录下创建f2和f3文件
chmod -R 750 d1  # 递归更改d1目录及其所有子目录和文件的权限,如果不添加选项-R,则只更改目录d1的权限,目录d1下的子目录和文件权限不变

  chown [options] [user].[group] filenamechown [options] [user]:[group] filename更改文件或目录的属主和属组

chown alice.root f1  # 设置f1文件的属主为alice,属组为root
chown -R :alice d1  # 设置d1目录及d1目录下的子目录和文件的属组为alice

2.   设置扩展权限acl(access control list,访问控制列表)

acl是对传统ugo文件权限模型的扩展,ugo只能为1个用户,1个组和其他人设置权限。而acl提供更细粒度的权限控制,它允许为特定用户而不止是文件的所有者、为特定组而不止是文件所属组设置权限,能设置掩码限制所有组的权限,为新建文件和子目录设置默认权限。acl权限优先级高于ugo,如果一个文件既有ugo又有acl权限,acl权限将决定最终访问权。acl保留了ugo模型的基本结构同时增加了更多灵活性。

  getfacl filename查看acl权限

  setfacl -m u:username:jurisdiction filenamesetfacl -m g:groupname:jurisdiction filename修改或添加acl条目

  setfacl -x u:[username] filenamesetfacl -x g:[groupname] filename删除特定或所有用户或组的acl条目

  setfacl -b filename删除所有acl

  setfacl -R [other options] rules dictname递归地为目录及其子目录和文件设置acl权限

添加acl权限后使用llls -l查看会看到权限后面有1个+,表示该文件或目录有扩展地acl权限,删除acl权限后使用ll命令查看时,权限后是一个.,表示该文件或目录有SELinux安全上下文。

3.  其它特殊权限suid,sgid,stick,chattr,umask

  • suid允许用户在执行某个程序时暂时获得该程序所有者的权限,这是一种强大的机制,但也可能带来安全风险,因此需要谨慎使用。当一个文件被设置了suid权限时,任何用户执行该文件,都会以文件所有者的身份运行,而不是以执行该文件的用户的身份运行。

  chmod u+s filename设置suid权限,chmod u-s filename移除suid权限

  • sgid类似于suid是一种特殊的文件权限,但作用于组而不是用户。sgid允许用户在执行某个程序时暂时获得该程序所属组的权限,这在需要共享资源或执行需要特定组权限的任务时非常有用。

  chmod g+s filenamechmod g+s dictname设置sgid权限,chmod g-s filenamechmod g-s dictname移除sgid权限。

  • stick
  • chattr用于更改文件或目录属性的命令,允许设置和取消各种文件属性。chattr [options] [attributes] filename

  chattr +i f1添加文件不可更改(删除、重命名、修改),chattr -i f1移除不可更改属性。

  • umask用户文件创建模式掩码,用于设置新创建文件和目录的默认权限。文件的默认权限通常为666(rw-rw-rw-),表示所有用户都有读取和写入权限但是没有执行权限,目录的默认权限通常是777(rwxrwxrwx),表示所有用户都有读取写入和执行权限。umask是一个权限掩码,用于从默认权限中移除某些权限位,umask的值表示要移除的权限位。
posted @ 2024-11-06 23:57  松鼠q  阅读(6)  评论(0编辑  收藏  举报