二、Unix 安全概览

原文:Unix Security Basics

译者:飞龙

1 用户和用户组

  • 用户

    • root:超极用户(UID = 0)

    • daemon:处理网络。

    • nobody:不拥有文件,用作非特权操作的默认用户。

      • Web 浏览器可在这个模式下工作。
    • 用户需要使用密码登录。加密的密码储存在/etc/shadow

    • 用户信息储存在/etc/passwd,之前(不再)用于储存密码的地方。下面是这个文件的一个条目的示例:

      john:x:30000:40000:John Doe:/home/john:/usr/local/bin/tcsh
      
  • 用户组

    • 有时候,如果我们把权限授予一组用户,会更加方便,例如,我们打算基于用户组来授予权限。

    • 用户拥有基本组(在/etc/passwd中列出),并且它和用户创建的文件相关。

    • 任何用户都可以是多个组的成员。

    • 组信息储存在/etc/group中。

      %  groups uid (display the groups that uid belongs to)
      
    • 对于使用 NIS(网络信息服务,最开始叫做黄页(YP))的系统,我们可以使用命令ypcat来获取组信息:

      % ypcat group (can display all the groups and their members)
      

2 文件权限

  • 文件权限
    • Unix 中权限位的含义
      • 所有者(u)、用户组(g)和其它(o)
      • 可读(r)、可写(w)、可执行(x)
      • 示例:-rwxrwxrwx(777)
  • 目录上的权限
    • r:可以列出目录
    • w:可以在目录中创建或删除文件或目录
    • x:可以进入目录
  • 修改权限:chmod
  • 完全访问控制列表:getfaclsetfacl
  • 默认文件权限
    • 授予新创建的文件的默认文件权限是什么?

    • 默认权限储存在umask环境变量中

    • umask:你不想要的权限

    • 一些系统中的默认值:022

      • 它会将新文件的权限设为rw-r--r--.
    • 最安全的值:077

      • 将新文件的权限设为rw-------
    • 通过执行这个命令检查你自己的设置:

      % umask
      
    • 修改umask值。你可以执行下列命令,或者将其放入你的.profile文件中。

      % umask 077
      

3 安全相关的命令

  • 切换用户

    • 将你的用户 ID 切换为xyzsu意思是“替代用户”。

      % /bin/su xyz
      
    • 切换为root。这是获得超级用户访问权的常见方式。一旦你进入了超级用户账户,提示符就会变成静好(#)。

      % /bin/su -
      
    • 使用超级用户权限来执行命令。有时,我们只想要使用超级用户权限执行命令。我们不执行su来切换root,而是执行命令,我们可以使用sudo命令。

      (view the shadow file as a superuser) 
      % sudo more /etc/shadow
      
    • 为了能够只用sudo作为超级用户执行命令,(root)需要向用户授予权限。这通过/etc/sudoers文件完成。

  • 变更文件所有者

    • chown命令

      % chown wedu file
      
    • Q:我能允许用户将文件所有者变更为另一个用户吗?

      • 不能,实际上,只有root才可以使用chown,为什么呢?
      • 我们会在学习Set-UID之后了解原因。
  • 变更文件组

    • chgrp命令

      % chgrp seed /home/seed/785
      
    • Q:我可以允许用户将文件组变更为另一个组吗?

      • 可以/不行。如果你想要变更为组xyz,你必须是xyz组的成员。
      • 原因类似于chown命令,(Set-GID)。
  • 杂项

    % whoami (to print out your current user name) 
    % /usr/bin/id (display both uid and gid) 
    % man chmod (find the manual for the chmod command)
    

书籍推荐