第五章 用户身份及文件权限 第5天 7月20日

  • 用户身份及文件权限
  • 操纵用户的命令
    • useradd
      • 格式为"useradd [选项] 用户名"。
    • groupadd
      • groupadd 命令用于创建用户组,格式为"groupadd [选项] 群组名"
      • usermod 命令用于修改用户的属性,格式为"usermod [选项] 用户名"。
    • usermod ( modify a user account)
      • usermod [选项] 用户名"。
      •    

    • userdel
      • userdel 命令用于删除用户,格式为"userdel [选项] 用户名"。
    • passwd
      • passwd [选项] [用户名]

           

  • Linux文件类型
  • 三种用户分类
    • 文件所有者
    • 文件所属组
    • 其他用户
  • 文件都有所属的所有者和组。
    • 可读,可写,可执行。
    • 可读表示可以读取里面的内容
    • 可写表示能够增加,修改,删除文件的实际内容。
    • 可执行表示能够执行脚本文件。
  • 目录也有相应的权限,但是表示方法不一样。
    • 主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方。
    • 可读 :表示可以读取目录,知道里面存在哪些文件,例如文件名和子目录名称
    • 可写:
      • 新建新的文件或子目录。
      • 删除以及存在的文件或子目录。(所以能否删除文件看到是是否对文件夹具有权限。
      • 重命名已经存在的文件或子目录。
      • 转移该文件或子目录的位置。
    • 可执行:拥有该目录x权限的用户可以进入该目录成为工作目录。能不能进入一个目录,只与该目录的x权限有关,如果用户对于某个目录不具有x权限,则无法切换到该目录下,也就无法执行该目录下的任何命令,即使具有该目录的r权限。且如果用户对于某目录不具有x权限,则该用户不能查询该目录下的文件的内容,注意:指的是内容,如果有r 权限是可以查看该目录下的文件名列表或子目录列表的。所以要开放目录给任何人浏览时,应该至少要给与r及x权限
    • 问题: 对目录只有可读权限,对文件有可写权限,能否修改文件内容?
  • -rwxrw-r-- 1 root root  2048 Jan 13 07:11 afile.exe 以上权限位置的含义
    • file permissions,

      number of links,

      owner name,

      owner group,

      file size,

      time of last modification, and

      file/directory name

      File permissions is displayed as following;

    • first character is - or l or d, d indicates a directory, a line represents a file, l is a symlink (or soft link) - special type of file

      three sets of characters, three times, indicating permissions for owner, group and other:

      r = readable

      w = writable

      x = executable

      In your example -rwxrw-r--, this means the line displayed is:

    • a regular file (displayed as -)

      readable, writable and executable by owner (rwx)

      readable, writable, but not executable by group (rw-)

      readable but not writable or executable by other (r--)

  • SUID,SGID,SBIT特殊权限位。
    • SUID(Set Owner User ID) 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。比如一个普通用户要执行passwd来修改密码,但是实际上,普通用户属于Other并没有权限,关键在于在执行过程中可以获得
      • SUID满足以下几点
      • SUID只对二进制文件有效
      • 调用者对该文件有执行权
      • 在执行过程中,调用者会暂时获得该文件的所有者权限
      • 该权限只在程序执行的过程中有效
      • 他的标志是,在文件所有者的权限位上,x表示为s
    • SGID
      • 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
      • 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
    • 使用什么命令来修改权限
      • chmod 修改权限
        • chmod [参数] 权限文件或目录名称 chmod 760 test
      • chown 修改所有者和所属组
        • chmod [参数] 权限文件或目录名称
    • SBIT
      • SBIT(Sticky Bit)特殊权限位了(也可以称之为特殊权限位之粘滞位)。
      • BIT 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT 粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。
      • 这个权限保护位是对目录使用的。
      • 标志在其他用户,文件的其他人权限部分的x 执行权限就会被替换成t 或者T,原本有x 执行权限则会写成t,原本没有x 执行权限则会被写成T。
      • chmod o+t 目录位置
  • 文件的隐藏属性
    • 无法被用户察觉。
    • chattr修改隐藏属性。
      • 如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加"+参数"。
      • 如果想要把某个隐藏功能移出文件,则需要追加"-参数"。
    • chattr [参数] 文件
    •    

    • lsattr用于显示文件的隐藏权限。
    • lsattr [参数] 文件
  • 一般权限、特殊权限、隐藏权限其实有一个共性—权限是针对某一类用户设置的。
  • 文件访问控制列表
    • ACL:用以对单个指定的用户进行单独的权限控制。基于普通文件或目录设置ACL 其实就是针对指定的用户或用户组设置文件或目录的操作权限。
    • 在所属用户和用户组不变的情况下,等于是为其他用户增加权限,相对细。
    • 命令 setfacl ( set file acl )
      • "setfacl [参数] 文件名称" 例子 setfacl -Rm u:linuxprobe:rwx /root
    • 命令 getfacl 获得文件的access control list
  • su 命令与sudo 服务:
    • su (run a command with substitute 替代 user and group ID)
    • 上面的su 命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)
    • sudo (execute a command as another user)给普通用户提供额外的权限来完成原本root 管理员才能完成的任务,格式为"sudo [参数] 命令名称"
      • sudo是一个服务
      • sudo的配置原则:用户的最小权限原则。
        • 限制用户执行指定的命令:
        • 记录用户执行的每一条命令;
        • 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
        • 验证密码的后5 分钟内(默认值)无须再让用户再次验证密码。
      • 如何配置sudo?
        • visudo 类似Vim界面
        • 谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
        • linuxprobe ALL=(ALL) ALL
        • ALL 意思是:某个普通用户拥有整个系统中所有命令的最高执行权

             

猜你喜欢

转载自www.cnblogs.com/Black-cat0987/p/12046665.html