Linux 杂记

  • 特殊权限管理
    • 特殊权限:SUID:表示程序在运行时,相应进程的属主 是程序文件自身的属主,而不是启动者属主;
      • chmod u+s FILE,或者chmod u-s FILE:赋予文件SUID权限,如果文件本身具有执行权限,则SUID显示为s,否则为S,SUID权限的危险性很大,很容易导致安全问题,对于文件/usr/bin/passwd:就是一个很明显的使用SUID权限的例子;
    • SGID:运行相应进程时,相应进程的属组,是程序文件自身的属组,而不是启动者的属组,通过chmod g+ | - s FILE ;
    • Sticky:在公共目录里面,每个人都可以创建自己的文件,删除自己的文件,但是不能够删除别人的文件,这个权限主要是对于目录来说的,chmod o+t DIR,chmod o-t DIR,通过sticky权限来防止恶意删除别人的文件;
    • 上面提到的三种特殊权限也可以使用数字来进行表示SUID: 4, SGID: 2,Sticky: 1;
    • 对于umask来说,四位含义本身表示的含义包括:1位特殊权限,以及三位普通权限;
  • 关于权限的一种情况:
    • 用户hadoop在运行一个命令时,假设是一个可执行文件/bin/ls,这个可执行文件的属主和属组都是root:
      • 首先应该判断期望执行这个可执行文件的用户是否为这个文件的属主或者属组;
      • 其次判断是否对于这个文件具有希望的权限;
      • 接下来判断是否具有特殊位的权限,使该用户执行这个文件;
      • 当上述任意条件满足时,就可以执行这个可执行文件,并且创建对应的进程,进程的属主和属组是发起执行这个可执行文件的属主和属组,并不是 这个文件的属主和属组;
      • 当这个进程在访问某些文件时,权限判断的标准,不再是进程对应的可执行文件的属主和属组,而是进程发起者的属组和属组;
  • 文件系统访问控制列表
  • 对于Linux来说需要实现实现让tom访问jerry的文件时,同时tom不属于jerry,的基本组,那么只能够修改tom其他用户的访问权限,这样相当于将权限扩展给了一类用户,而不是期望的一个用户,会导致安全风险会增大;
  • 所以引入了文件系统访问控制列表:FACL:Filesystem Access Control List:利用文件扩展属性,保存额外的访问控制权限,可以通过明确的指定jerry用户对于tom的文件具有某个权限,这样可以将权限尽可能具体的进行限定,避免了上述风险;
  • setfacl:
    • -m:可以用于设定在组上面或者是用户上面;
      • u:UID:perm:用于设定某个用户具有perm权限;
      • g:GID:perm:用于设定某个组具有perm权限;
      • d:u:UID:perm:用于设定某个用户具有perm权限,用于给某个目录设置默认的访问控制列表;
      • d:g:GID:perm:用于设定某个组具有perm权限,用于给某写个目录设置默认的访问控制列表;
    • -x:取消设定的访问控制列表
      • u:UID :用于取消用户权限;
      • g:GID:用于取消组权限;
  • 关于faclmask值:
  • 表示的含义是无论用户使用setfacl指定的权限是什么,都不可已超过这里指定的mask的值,如果超出,超出的就会被截断,通常这么mask需要手动指定,否则,这个mask值是会改变的;
  • 需要注意的一点是:文件在进行归档或者复制时,文件的扩展属性是不会被复制过去的;
  • getfacl:
    • 用于获取文件的访问控制列表;
    • 文件权限的匹配过程:
      • 用户访问文件时,启动的进程是属主是用户,属组是用户的基本组;
        • 1.进程的属主和文件的属主是否一致,一致应用属主进行权限访问;
        • 2.否则,检查用户是否属于文件的属组,如果属于就应用于属组的权限进行访问;
        • 3.否则,应用于other访问权限;
    • 当出现访问控制列表时,过程就会更改:
      • 1.进程的属主和文件的属主是否一致,一致应用属主进行权限访问;
      • 2.否则检查facl里面的user权限是否存在;
      • 3.否则,检查用户是否属于文件的属组,如果属于就应用于属组的权限进行访问;
      • 4.否则,检查facl里面权限是否存在定义;
      • 5.否则就应用于other权限进行定义;
  • 关于系统安全的几个命令
  • whoami:
    • 用于显示当权登录系统的有效用户;
  • who:
    • 显示当前登录到系统的用户以及用户登录的终端,时间;
    • -r:用于显示当前运行级别的;
    • -w:显示登录信息更加详细;
  • last:
    • 用于显示登录日志;
    • 实际上查看的内容是/var/log/wtmp文件的内容,用于显示登录历史信息
    • -n:表示只显示最近几次的登录内容;
  • lastb :
    • 显示/var/log/btmp文件,显示用户错误的登录尝试;
    • -n:显示最近几次;
  • lastlog :
    • 显示当前系统每一个用户上一次的登录时间
    • -u:可以用于指定用户名;
  • hostname :
    • 用于显示当前主机的主机名;
    • hostname NEWNAME:用于修改当前主机的主机名,
    • echo $HOSTNAME:用于显示主机名的环境变量;
  • 终端类型:
    • 控制台:console :表示直接联系到主机上面的物理设备,鼠标,显示器;
    • 物理终端pty:表示设备已经被识别出来,但是此时仍然和用户没有关联;
    • 虚拟控制台tty:登录用户的界面,通常是附加在某个物理界面上并且结合软件的方式虚拟实现的;
    • 伪终端pts/#:表示模拟出来的终端,图形界面的登录,ssh的连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值