Linux账号权限管理

发布时间 2023-07-23 17:22:34作者: Candy独角兽

本章结构

  • 管理用户账号和组账号
  • 管理目录和文件的属性

账号和权限管理

linux安全模型

3A 了解

linux 安全上下文

vim 查看文件 f1

cat 查看文件 f1

人是系统中的用户

1.用户账号和组账号概述

1.1用户账号类型

Linux基于用户身份对资源访问进行控制

  • 用户账号

    • 超级用户(权限最大)、普通用户(权限受限的用户)、程序用户(程序用)

      普通用户、超级用户都是可以登录到系统中

      程序用户:给程序使用,管理程序的用户

      程序用户:黑客攻破用户,不能操作系统,只能对程序破坏

  • 组账号:一类人拥有相同权限

    • 基本组(私有组),有且唯一
    • 附加组(公共组),可有可无,可多个
  • UID和GID

    • UID(User IDentity,用户标识号),唯一
    • GID(Group IDentity,组标识号),唯一

    用户权限以UID表示,唯一,UID=0就是超级管理员

    管理员:root 0

    Linux中每个用户是通过User Id(UID)来唯一标识的 新建普通用户 1-60000 自动分配

    程序用户:1-499(CentOS6以前),1-999(CentOS7以后)

    普通用户:500+(CentOS6以前),1000+(CentOS7以后)

1.2 用户账号文件/etc/passwd

所有文件都存在/etc/passwd下

  • 文件位置:/etc/passwd

    保存用户名称、宿主目录(家目录)、登录Shell等基本信息

    root :x :0 :0 :root :root :/bin/shell

    用户名 密码占位符 UID GID 备注 家目录 shell类型

  • 每一行对应一个用户的账号记录

1.3 用户账号文件/etc/shadow

  • 文件位置:/etc/shadow

    影子文件 保存用户密码,账号有效期等

1.4 添加用户账号

  • useradd命令

    基本格式
    useradd  [选项]  用户名
    
    对新建用户进行设置
    
  • 新建用户未设置密码不能登录

  • !!和*不能登录

    选项
    -u:指定用户的UID号,要求该UID号码未被其他用户使用
    
    -d:指定用户的宿主目录位置(当与-M一起使用时,不生效)
    
    -e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式
    
    -g:指定用户的基本组名(或使用GID号)
    
    -G:指定用户的附加组名(或使用GID号)
    
    -M:不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录
    
    -s:指定用户的登录 Shell /sbin/nologin 类型
    
    -r:创建系统用户CentOS 6之前:ID<500,CentOS 7以后:ID<1000  系统用户=程序用户
    
    -c:备注信息
    
  • 经常用的操作useradd -s /sbin/nologin -M -u 11111 ww

1.5 设置/更改用户口令passwd

  • passwd命令

    基本格式
    passwd [选项]  用户名
    
    useradd lisi=passwd
    
    useradd lisi=shadow
    
    
    passwd
    
    1. passwd   【passwd是一个命令(改密码)】
    
    2. cat /etc/passwd   【passwd是一个文件】
    
    
常用选项
-d:清除用户密码,仅使用用户名就可以登录

-l:锁定 不让用户登录

-u:解锁,使用-f强制解锁    对所有用户生效包括超级管理员

-S:查看用户账号状态(是否被锁)

1.6 修改用户账号的属性

  • usermod命令

    基本格式
    usermod [选项]  用户名
    对已有用户进行修改
    
常见选项
-l:更改用户账号的登录名称(Login Name)

-L 锁定用户账户

-u 修改用户的 UID 号

-U  解锁锁用户账户

-d:修改用户的宿主目录位置。

-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。

-g:修改用户的基本组名(或使用 GID 号)

-G:修改用户的附加组名(或使用 GID 号)

-s:指定用户的登录 Shell

1.7 用户账号的初始配置文件

文件来源

  • 新建用户账号,从/etc/skel目录中复制
  • cat /etc/default/useradd

主要用户初始配置文件

  • ~/.bash_profile
  • ~/.bashrc
  • ~/.bash_logout

文件/目录的权限和归属

访问权限:

  • 读取r:允许查看文件内容、显示目录列表
  • 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
  • 可执行x:允许运行程序、切换目录

归属

  • 属主 u
  • 属组 g
  • 其他人 o
  • 所有人 a

对文件的权限

一个文件是否可以被删除和本身权限没有关系,和所在文件夹有关

对目录的权限

执行权限是文件夹的最小权限,如果没有x权限,文件夹的rw权限没有用

面试题:

执行cp /etc/issue /data/dir/所需要的最小权限?


/bin/cp          #需要x权限

/etc/            #需要x权限

/etc/issue       #需要r权限

/data            #需要x权限

/data/dir        #需要wx权限

权限掩码umask

umask 作用控制新建文件或文件夹的权限

文件默认最大权限为666,因为x执行权限很危险,所以需要去掉 777-111=666

文件夹默认最大权限为777

新建文件权限=666-umask(umask中含有1 是不需要减去的)

新建文件夹权限=777-umask

umask是需要减去的权限

三种特殊权限

suid

SGID

Sticky