用户和组

一、用户:

是用来操作系统中不同功能的身份

Linux系统中用户的分类

  1. 超级用户:root uid=0
  2. 系统用户:不需要登陆系统,服务于应用程序,维护系统运行uid=1-999(bin的uid=1 )
  3. 普通用户:可以登录的用户uid>=1000(nobody的uid=65534)

添加用户:useradd username(创建时可以指定u、g、c等选项)
查看当前用户ID:id username
查看当前用户名字:whoami
设置用户密码:passwd username(普通用户只能通过passwd修改自己本身密码)
删除一个用户:userdel username(-r选项表示连同家目录一起删除)
创建组:groupadd groupname
删除组:groupdel groupname (用户的主要组不可以删除)
修改用户信息:usermod -[u,g,G等] username
修改组的信息:groupmod groupname
为组添加一个管理员:gpasswd -A username groupname
用组管理员为组添加一个用户成员:gpasswd -a usrname groupname
删除一个组成员:gpasswd -d username group
为组设定一个密码:gpasswd groupname

系统文件:

/etc/passwd:用户信息 
/etc/shadow:用户密码相关的信息

useradd user1
添加用户

1.会在/etc/passwd添加一行
2.会在/etc/group添加一行
3.会在/etc/shadow添加一行
4.会在/etc/gshadow添加一行
5.会在/home目录下建立一个与用户名同名的目录作为家目录,同时会从/etc/skel目录中复制出所有隐藏文件到该目录

修改权限

-u 指定用户uid
-g 指定用户的主要组,前提:组是必须存在的
-G 指定用户的附属组,可以有多个,但是这些附属组必须是系统内已经存在的
-c 注释性的描述信息
-d 指定用户的家目录
   默认情况下:
       root的家目录是/root
       普通用户的家目录是/home
-M 不建立家目录
-s 指定用户的登录shell
   /bin/bash:可登录shell,如果用户的shell是这个,那么该用户可以登录到系统中
   /sbin/nologin:非登录shell,如果用户的shell是这个,那么该用户是不允许登录到系统的
-e 指定用户过期时间,日期
-f 指定用户过期时间,天数
# head -1 /etc/passwd
# root:x:0:0:root:/root:/bin/bash
# 用户名:密码:uid:gid:注释性描述:用户的家目录:用户的登录shell
#            -u   -g     -c         -d           -s

usermod
修改用户
与useradd参数差不多,一个是在创建用户是设定,一个是在用户创建好

-u 修改用户uid
-g 修改用户的主要组
-G 修改用户的附属组,不管用户原来的附属组如何,直接覆盖
-d 修改用户的家目录
-s 修改用户的shell
-L 锁定账户
-U 接触锁定
-l 改名
-a 一般和-G联合使用,追加附属组

passwd
给用户设置密码

-l 锁定用户
-u 解锁用户
-n 密码最小使用期限 天数
-x 密码最大使用期限 天数
-w 密码过期前几天提醒 天数

userdel username
删除用户

# userdel username 删除的时候不会删除用户的家目录和邮箱,在添加同名用户时,能添加,但是会有提示信息
-r 可以干净的删除一个用户
# userdel -r username

查看用户相关信息
在这里插入图片描述
在这里插入图片描述

查看当前用户信息:whoami、who、w、users、id
修改用户相关信息:chfn username
修改用户相关信息:userinfo username X Windows下修改用户相关信息

查看用户密码相关信息
在这里插入图片描述

chage -l username 查看用户密码相关信息
chage -d 0 username 用户下次登录必须更改密码
chage -m 2 username 修改密码最少使用天数2天
chage -M 50 username 修改密码最大使用天数50天(密码过期时间)
chage -I 5 uername 密码过期后到账户失效的天数5天(密码过期后还能使用的天数)
chage -E "2020-12-12" username 修改的是账户的过期时间

二、组

用户和组的关系:组中可以没有用户、也可以有一个或者多个用户。用户只有一个主要组,可以同时属于多个组,但是除了主组以外的其他组称为附属组。

组的分类:从用户的角度分的,分为:
    主组:primary group、initial group、first group,用户的默认组,也就是gid所标识的组
    附属组:secondary group、supplementary group

groupadd groupname
添加组

# groupadd groupname
-g 添加组时,指定gid是多少
# groupadd -g gid groupname

groupmod
修改组

-g 修改组的gid
# groupmod -g gid groupname
-n 修改组名
# groupmod -n groupname1 groupname2

groupdel
删除组
注:不能够删除用户的主要组,能够删除用户的附属组

# groupdel groupname

gpasswd
组管理
管理/etc/group和/etc/gshadow文件的,每一个组可以有管理员,成员和密码
给组加密码:可以让知道组密码的人,临时的切换到该组中,能够使用该组的资源。

1.指定组的管理员列表:gpasswd -A username groupname
2.向组中添加成员:gpasswd -a username groupname
3.给组设置密码:gpasswd groupname
4.切换组(临时):newgrp groupname
5.将用户从组中删除:gpasswd -d username groupname

附录一

/etc/passwd: 保存用户信息的文件
/etc/shadow: 保存用户密码相关信息的文件
/etc/group: 保存组信息的文件
/etc/gshadow:保存组密码相关信息的文件

/etc/passwd

[root@localhost ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:uid:gid:描述信息:家目录:登录shell

/etc/shadow

[root@localhost ~]# tail -1 /etc/shadow
xiaoyu:$6$Gko.tXV7C1tCl9O8$ED5jXfZFfMU03r778sBQUbY8jSkzpuM9m8/kOFne4K741vRT3lw2N/R3UfZC.lnaLzALgdfgATgbcbzCFuPcs.:0:2:99999:7:::
注:$6$:加密算法是sha512
    $1$:加密算法是md5
1.用户名
2.加密后的密码(无密码用户为占位符"!!")
3.上一次密码修改时间(单位是天,是距离1970年1月1日多少天)
4.密码最小生存周期 单位:天 0表示随时可以修改密码;2表示两天内不能修改
5.密码最大生存周期 单位:天,密码使用的最长时间
6.密码到期前几天开始警告
7.密码过期之后到账户失效之前的时间限制 密码过期之后还可以用几天
8.账户过期时间
9.保留列

/etc/group

[root@localhost ~]# head -1 /etc/group
root:x:0:
组名:密码占位符:gid:用户列表

/etc/gshadow

[root@localhost ~]# head -1 /etc/gshadow
root:::
组名:加密后的密码:组管理员:组成员

附录二

和用户登录相关的文件或目录

/etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置
/etc/bashrc 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取
~username/.bashrc 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件
~username/.bash_profile 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
/etc/profile.d/*
profile类的文件:
    设定环境变量
    运行命令或脚本
bashrc类的文件:
    设定本地变量
    定义命令别名
站在用户登录的角度来说,SHELL的类型:
登录式shell: 正常通过某终端登录
    su - username
    su -l username
非登录式shell:
    su username(使用su切换用户,不带任何参数)
    GUI下打开命令窗口
    自动执行的shell脚本
    
登录式shell如何读取配置文件:
/etc/profile -->/etc/profile.d/*.sh -->~/.bash_profile -->~/.bashrc -->/etc/bashrc
非登录式shell如何读取配置文件:
~/.bashrc -->/etc/bashrc -->/etc/profile.d/*.sh

su - :完全登录shell,切换后用户拥有自己的一套环境变量
su:不完全登录shell,切换后用户使用的是其他用户的环境变量

和新创建用户相关的文件:/etc/login.defs /etc/default/useradd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值