Linux的用户和组

目录

Linux中用户和用户组的关系

用户

用户类别

用户标识

组类别

用户标识:UserID,UID

认证信息

相关命令


Linux中用户和用户组的关系

        Linux是多用户多任务操作系统,Linux系统支持多个用户在同一时间内同时登录,不同的用户可以执行不同的任务并且互不影响。

        不同用户具有不问的权限,毎个用户在权限允许的范围内完成不间的任务,Linux 正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

        用户管理对于组织或企业非常重要,它可以确保系统中的数据和功能仅被授权用户访问,从而保护组织或企业的隐私和安全

用户

用户类别

用户类别一般分为管理用户和普通用户,而普通用户又分为系统用户和登录用户

  • 管理用户:root用户

  • 普通用户:

    • 系统用户:用来运行系统自带的进程,默认已创建

    • 登录用户:普通用户,正常可以登陆系统的用户权限比较小能执行的任务有限

用户标识

多用户通过16bits二进制进行对用户的标识

  • 16bits二进制数字:0-65535

    • 管理员:0

    • 普通用户:1-65635

      • 系统用户:1-499(CentOS6),1-999(CentOS7)

      • 登录用户:500-60000(CentOS6),1000-60000(CentOS7)

  • 名称解析: 名称转换

    • Username <--->UID

    • 根据名称解析库进行:名称解析文件为/etc/passwd

用户组,可以理解为用户的容器,通过组将多个用户进行归类

组类别

  • 组类别1

    • 管理员组:管理员组是一个有权管理计算机系统、网络或应用程序的群组,通常由具有高级权限的用户名和密码的专业人员组成。

    • 普通用户组:普通用户组是指那些没有管理员权限的用户群体,通常由普通用户和实习生等人员组成

      • 系统组:系统组通常是指那些负责维护、管理和升级计算机系统、网络和应用程序的专业人员

      • 登录组:登录组通常是指那些具有登录计算机系统、网络或应用程序权限的用户群体

  • 组类别2:

    • 用户的基本组:用户的基本组是指用户在登录到计算机系统、网络或应用程序时所默认的登录组

    • 用户的附加组:附加组是指用户可以添加到其基本组之外的分组中

  • 组类别3:

    • 私有组:组名同用户名,且只包含一个用户

    • 公共组:组内包含了多个用户

用户标识:UserID,UID

组也是通过16bits二进制进行对组的标识

  • 16bits二进制数字:0-65535

    • 管理员:0

    • 普通用户:1-65635

      • 系统用户:1-499(CentOS6),1-999(CentOS7)

      • 登录用户:500-60000(CentOS6),1000-60000(CentOS7)

  • 名称解析: 名称转换

    • Username <--->UID

    • 根据名称解析库进行:名称解析文件为/etc/passwd

认证信息

通过对比事先存储的信息,与登录时提供的信息是否一致:

  • password:

    • /etc/shadow(用户)

    • /etc/gshadow(组)

  • 密码使用策略:

    • 使用随机密码

    • 最短长度不要低于8位

    • 应该使用大写字母、小写字母、数字、和标点符号四类字符中至少三类

    • 定期更换

  • 加密算法:

    • 对称算法:加密和解密使用同一个密码

    • 非对称算法:加密和解密使用的一对密钥:

      • 密钥对:

        • 公钥:public key

        • 私钥:private key

    • 单向加密:只能加密,不能解密,提取数据特征码:

      • 定长输出:

      • 雪崩效应:一个系统或组织中的一小部分发生问题时,这些问题可能会迅速扩散并导致整个系统或组织的崩溃或失败

  • 常见算法:

    • md5:message digest,128bits

    • sha:secure hash algorithm,160bits

    • sha224

    • sha256

    • sha384

    • sha512

  • 再计算之前加入salt,添加随机数

  • /etc/passwd:用户的信息库

    name:password:UID:GID:GECOS:directory:shell

    name:用户名

    password:可以是加密的密码,也可以是占位符x

    UID:

    GID:用户所属的主的ID号

    GECOS:用户的家目录

    shell:用户默认shell,登录是默认shell程序

  • /etc/shadow:用户密码

    用户名:加密密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段

  • /etc/group

    group_name:password:GID:user_list

    • user_list:该组的用户成员:以此组为附加组的用户的用户列表:

相关命令

useradd、userdel、usermod、passwd、groupadd、groupdel、groupmod、gpasswd、chage、chsh、id、su......

1、安全上下文

  • 进程以其发起者的身份运行;

    • 进程对文件的访问权限,取决于发起此进程的用户的权限;

  • 系统用户:为了能够让后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户;这类用户从不用登录系统

2、groupadd

  • groupadd [ 选项] group_name

    • -g GID: 指定GID:默认是上一个组的GID+1

    • -r:创建系统组

3、groupmod:修改组属性

  • groupmod [选项] group

    • -g GID:修改组ID

    • -n new_name:修改组名

4、 groupdel:删除组

  • group [选项] group

5、useradd:创建用户或更新

  • useradd [选项] 登录名

    • -u :--uid UID:指定UID

    • -g:--gid GROUP:指定基本组ID,此组需要事先存在

    • -G:--groups GROUP1[,GROUP2,...[GROUP]]:指明用户所属的附加组,多个组之间用“,”分隔开

    • -c:--comment COMMENT: 知名注释信息

    • -d:--home HOME_DIR: 以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名实现:指定的家目录路径如果事先存在,则不会为用户复制环境配置文件:

    • -s:--shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中

    • -r: --system:创建系统用户

    • -m:自动建立用户的登入目录

    • -M:不为用户创建主目录

    • -D:显示创建用户的默认值

      -D 选项:修改默认选项

      • 修改的结果保存于/etc/default/useradd文件中

6、usermod:修改用户属性

  • usermod [选项] 登录

    • -u,--uid UID修改用户的ID为此处指定新的UID

    • -g,--gid GUOUP:修改用户所属的基本组

    • -G,--groups GROUP1[,GROUP2,...[GROUP]]:修改用户所属的附加组,原来的附加组会被覆盖

    • -a,--append:与 -G一同使用,用于用户追加新的附加组,

    • -c,--comment COMMENT:修改注释信息

    • -d,--home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置

    • -m,--move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录

    • -l,--login NEW_LOGIN:修改用户名

    • -s,--shell SHELL:修改用户的默认shell

    • -L,--lock:锁定用户密码;即在用户原来的密码串之前添加一个“!”

    • -U,--unlock:解锁用户的密码;解锁“!”

7、userdel:删除用户

  • userdel [选项] 登录

    • -r,删除用户时一并删除其家目录

8、passwd:密码管理

    • passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

      • passwd:修改用户自己的密码

      • passwd USERNAME:修改指定用户的密码,但仅root有此权限;

      • -l,锁定用户

      • -u,解锁用户

      • -d,清除用户密码

      • -e,指定用户的过期期限,日期

      • -i DATE,非活动期限,时间范围

      • -n DAYS,密码的最短使用期限

      • -x DAYS,密码的最长使用期限

      • -w DAYS,警告期限

      • --stdin:

        用法:
        echo "PASSWORD" | passwd --stdin USERNAME

9、gpasswd

  • gpasswd [选项] group

    • -a USERNAME:向组中添加用户

    • -d USERNAME:从组中移除用户

10、nwegrp:临时切换指定组的基本组

  • newgrp [-] [group]

    -:会模拟用户重新登陆以实现重新初始化工作环境;

11、chage: 修改帐号和密码的有效期限

  • chage [options] LOGIN

    • -m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。

    • -M:密码保持有效的最大天数。

    • -w:用户密码到期前,提前收到警告信息的天数。

    • -E:帐号到期的日期。过了这天,此帐号将不可用。

    • -d:上一次更改的日期。

    • -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

    • -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

12、id:显示用户的真实和有效id

  • id [OPTION]... [USER]

    • -u:仅显示有效的UID

    • -g:仅显示基本组id

    • -G:仅显示用户所属的所有组id

    • -n:显示名称而非id

13、su:切换用户

    • 登陆式切换:会通过重新读取用户的配置文件来重新初始化

      • su - USERNAME

      • su -l USERNAME

    • 非登陆式切换:不会读取目标用户的配置文件进行初始化

      • su USERNAME

    • 注意:管理员可无密码切换至其他任何用户

    • -c “COMMAND“ :仅以指定用户的身份与运行此处指定的命令

14、其他几个命令

  • chsh:用来更换登录系统时使用的shell

  • chfn:用来改变finger命令显示的信息

  • finger:用于查找并显示用户信息

  • whoami:打印当前有效的用户ID对应的名称

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值