用户的建立与群组

使用者识别码: UID 与 GID

虽然我们登陆 Linux 主机的时候,输入的是我们的帐号,但是其实 Linux 主机并不会直接认识你的“帐号名称”的,他仅认识 ID 啊 (ID 就是一组号码啦)。 由于计算机仅认识 0 与 1,所以主机对于数字比较有概念的;至于帐号只是为了让人们容易记忆而已。 而你的 ID 与帐号的对应就在 /etc/passwd 当中哩。(具体的看下篇博客)

有几种 ID呢每个登陆的使用者至少都会取得两个 ID ,一个是使用者 ID (User ID ,简称 UID)、一个是群组 ID (Group ID ,简称 GID)。判别他的拥有者与群组呢

每一个文件都会有所谓的拥有者 ID 与拥有群组 ID ,当我们有要显示文件属性的需求时,系统会依据 /etc/passwd与 /etc/group 的内容, 找到 UID / GID 对应的帐号与群组名称再显示出来。
通过属组和属主才能对应起其访问的权限

认证(你是谁)–授权(你有什么权限)–审计Audition(监督权限使用)

一.什么是用户:

用户是操作着在系统中的身份
用户是系统最底层的安全机制的一部分
用户在系统中以字符和文件的形式存在

在这里插入图片描述把用户名称会转换为UID
有一个地方保存一一对应的关系
在这里插入图片描述

在这里插入图片描述
比如用户是daemon 对应的UID就是2 (第一个数字)

组讲解

同理组也是需要有一一对应的
解析是在/etc/group
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

用户密码存放位置

早期用户密码在/etc/passwd
不安全
后来移动到/etc/shadow 密文存放

组密码在gshadow
在这里插入图片描述
为了避免用户使用相同的密码后加密值是一样的,需要添加随机数加密在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
详细的文件信息参考上一篇链接哦

1.查看当前正在使用的用户:
whoami 查看当前用户

[root@localhost ~]# whoami
root
[root@localhost ~]# 

2.查看系统中用户的信息:

id  查看正在使用的用户的id信息
id -u  查看用户的uid
    -g     查看用户的gid
    -G     查看用户所在组的所有id,(用户所属附加组的身份证号)
    -n     显示名字而不显示id数字   注意-n前面必须要有-G

在这里插入图片描述

[root@localhost ~]# su - student  
[student@localhost ~]$ groups     #kiosk所支持的群组
student wheel
[student@localhost ~]$ id -G -n student
student wheel
[root@localhost ~]# groups student
student : student wheel

uid相当于身份证号
gid相当于逻辑容器,更方便对系统中文件处理,又叫主组,初始组 例如一家人 只有我家人可以用这个东西而不用指明点姓。
再后面还有附加组,附加身份,是西部的学生,有权利。

3.切换用户:
在这里插入图片描述
gnome–session–quit–force ##注销当前用户,用其他用户登陆

su - 用户名称(前提是该用户在系统当中已经存在,若不存在需要现在超级用户模式下新建立用户)

su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境

[root@localhost ~]# su - student
[student@localhost ~]$    ##变成了$
[student@localhost ~]$ su -
Password: 
Last login: Sat May  9 08:13:07 EDT 2020 from 172.25.254.63 on pts/0
Last failed login: Sat May  9 11:06:19 EDT 2020 on pts/0
There was 1 failed login attempt since the last successful login.

由超级用户切换到普通用户不需要密码
由普通用户切换到超级用户需要密码
平级用户切换切换也需要密码

在这里插入图片描述

vim /etc/passwd
查看id和怎样建立一个id

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ls -l /home/
查看家目录下文件属性

[root@localhost ~]# ls -l /home/
total 8
drwx------. 4 hello   hello     88 Dec 28 18:23 hello
drwx------. 5 student student 4096 May  9 11:04 student
drwx------. 4 user1   user1     88 Dec 30 17:14 user1
drwx------. 5 zhan    zhan    4096 Dec 31 13:26 zhan

在这里插入图片描述
中间加分号表示是两条命令
在这里插入图片描述
watch -n 1 +命令 比如date 表示过一秒执行一次
在这里插入图片描述
再新打开一个shell观察每次的变化。

userdel -r westos 一次删干净 删除用户
useradd westos 建立用户
system_user系统内部使用的不给外部
在这里插入图片描述

二.用户建立与群组建立

组的建立是因为相当于用户组,用户容器。把多个用户归纳为一个组对文件具有某种访问权限。便于实现权限分配。
用户信息监控命令

  watch -n 1表示每隔1秒执行一次
  watch -n 1 'tail -n 3 /etc/passwd /etc/group;ls -l /home'

useradd ##建立用户

创建用户的时候会自动创建一个和Uid同名的组gid=uid作为私有组,如果被占用了,则会自动+1 这个组只包含这一个用户
在这里插入图片描述在这里插入图片描述

-u后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个帐号;
-g后面接的那个群组名称就是我们上面提到的initial group (初始)啦~该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。
-G后面接的群组名称则是这个帐号还可以加入的群组。这个选项与参数会修改 /etc/group 内的相关数据喔,最后的一列是哪些用户的附加组!
-m强制!要创建使用者主文件夹!(一般帐号默认值)
-c这个就是 /etc/passwd 的第五栏的说明内容啦
-d指定某个目录成为主文件夹,而不要使用默认值。务必使用绝对路径!
-r:创建一个系统的帐号,这个帐号的 UID 会有限制 (参考 /etc/login.defs)
-s后面接一个 shell ,若没有指定则默认是 /bin/bash 的啦~
  userdel    用户名     ###删除用户但不删除用户的配置文件
  userdel -r 用户名     ###删除用户的同时还会删除用户的配置文件

CentOS 这些默认值主要会帮我们处理几个项目:

在 /etc/passwd 里面创建一行与帐号相关的数据,包括创建 UID/GID/主文件夹等;
在 /etc/shadow 里面将此帐号的密码相关参数填入,但是尚未有密码;
在 /etc/group 里面加入一个与帐号名称一模一样的群组名称;
在 /home 下面创建一个与帐号同名的目录作为使用者主文件夹,且权限为 700

建立用户时,读取/etc/login.defs文件内容确定规则
对同一个用户例如westos,每useradd时要先userdel.

useradd -u 8888 westos ##指定用户的uid
在这里插入图片描述
useradd -g 21 westos ##指定用户的初始组id,“21用户组必须是存在的
useradd -g xx此处是组名字或者组的id号都是可以的 xxxx
在这里插入图片描述
如果不存在会报错的

在这里插入图片描述
useradd -G 21 westos ##指定用户的附加组id“21用户组必须存在
在这里插入图片描述在这里插入图片描述最后一个字段表示用户列表,以此组为附加组的用户列表

useradd -c “hello” westos ##指定用户的说明
在这里插入图片描述
useradd -d /home/lee westos ##指定用户的家目录
在这里插入图片描述

在这里插入图片描述
如果指定用户家目录提前已经存在了呢?
在这里插入图片描述在这里插入图片描述在这里插入图片描述

实际上指定家目录就是从拷贝/etc/skel目录,然后重命名完成的

此处因为已经存在该目录了,所以拷贝失败,并不会存在任何文件。

useradd -s /bin/sh westos ##指定用户的默认shell
在这里插入图片描述
cat /etc/shells查看所有的shell
在这里插入图片描述
建立用户的同时会建立他的组信息,家目录信息;
当建立一个用户的时候,若显示已经存在,则直接删除再建立

小知识:
创建一个系统帐号,名称为 vbird3

[root@study	~]#	useradd	-r	vbird3
[root@study	~]#	ll	-d	/home/vbird3
ls:	cannot	access	/home/vbird3:	No	such	file	or	directorya			<==不会主动创建主文件夹
[root@study	~]#	grep	vbird3	/etc/passwd	/etc/shadow	/etc/group
/etc/passwd:vbird3:x:699:699::/home/vbird3:/bin/bash
/etc/shadow:vbird3:!!:16636::::::
/etc/group:vbird3:x:699:

我们在谈到 UID 的时候曾经说过一般帐号应该是 1000 号以后,那使用者自己创建的系统帐号则一般是小于 1000 号以下的。 所以在这里我们加上 -r 这个选项以后,系统就会主动将帐号与帐号同名群组的 UID/GID 都指定小于 1000 以下, 在本案例中则是使用 699(UID) 与699(GID) 啰!此外由于系统帐号主要是用来进行运行系统所需服务的权限设置, 所以系统帐号默认都不会主动创建主文件夹的!

useradd 参考档

[root@study	~]#	useradd	-D  默认配置属性信息!!!
GROUP=100					<==默认的群组,新建帐号的初始群组使用,GID为100者,zhan的初始群组为	zhan。这是因为针对群组的角度有两种不同的机制所致.
HOME=/home					<==默认的主文件夹所在目录
INACTIVE=-1					<==密 码失效日,在	shadow	内的第	7	栏
EXPIRE=						<==帐号失效日,在	shadow	内的第	8	栏
SHELL=/bin/bash			    <==默认的	shell
SKEL=/etc/skel				<==使用者主文件夹的内容数据参考目录
CREATE_MAIL_SPOOL=yes		<==是否主动帮使用者创建邮件信箱(mailbox)每创建一个用户就会在/var/spool/mail下创建一个油桶 接受邮件的

在这里插入图片描述useradd -D的配置在这个文件
在这里插入图片描述

在这里插入图片描述包含用户创建的时候很多默认的配置信息
在这里插入图片描述密码信息,比如什么时候过期等等 id号信息取值范围 加密使用的算法等等

groupadd ##建立用户组

每一个进程在访问资源时,是代表某个用户在运行
进程的权限实际上是发起这个命令的人的权限。
系统用户就是某些开机进程以发起人身份运行,开机守护类进程都是,从来不需要登录系统,所以被劫持也没关系
系统组的值在1-999之间

在这里插入图片描述
在这里插入图片描述-g 更改gid -n更改组名

在这里插入图片描述

用户信息监控命令
watch -n 1 “tail  -n  3  /etc/passwd  /etc/group ; ls  -l  /home “
注意:ctrl+c可以退出,watch -n 1 表示每秒更新一次。

在这里插入图片描述在这里插入图片描述在这里插入图片描述
groupadd -g 888 westos ##建立用户组并指定用户组的id
在这里插入图片描述
groupdel ##删除用户组
用户组不能重复建立,一定要先删除才可以建立!!!!!;
注意:

如果想要自己指定uid,则先删除刚才建立的用户组,在建立的同时指定uid   ###  groupadd -g uid 用户组名字;
建立用户组的同时也会建立它的家目录,同样删除用户组的同时也会删除它的家目录(这一点与用户的管理不一样);
用户组不能重复建立,一定要先删除才可以建立!!!!!;
在建立用户之前,可以查看/etc/login.defs这个文件,查看所有内容的规则(id范围等等),但是这些建立用户的时候都可以指定修改;

vim /etc/login.defs
在这里插入图片描述
总结:以上改用户组和用户的信息都需要先删除,在新建立的同时指定信息

但是如果某个组就不能删除呢(groupdel)?原因很简单,“有某个帐号
(/etc/passwd) 的 initial group 使用该群组!

三.更改用户信息(不需要删除)

[root@study ~]# usermod [-cdegGlsuLU] username
选项与参数:

-c后面接帐号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些帐号的说明。
-d后面接帐号的主文件夹,即修改 /etc/passwd 的第六栏;
-e后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据啦!
-g:后面接初始群组,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段!
-G后面接次要群组,修改这个使用者能够支持的群组,修改的是 /etc/group 啰~
-a与 -G 合用,可“增加次要群组的支持”而非“设置”喔!
-l后面接帐号名称。亦即是修改帐号名称, /etc/passwd 的第一栏!
-s后面接 Shell 的实际文件,例如 /bin/bash 或 /bin/csh 等等。
-u后面接 UID 数字啦!即 /etc/passwd 第三栏的数据;
-L暂时将使用者的密码冻结,让他无法登陆。其实仅改 /etc/shadow 的密码栏。
-U将 /etc/shadow 密码栏的 ! 拿掉,解冻啦!

提前先useradd westos
在这里插入图片描述

  1. usermod -l 新名称 westos ##更改用户的名称

在这里插入图片描述

  1. usermod -u 6666 westos ##更改用户uid

在这里插入图片描述

  • usermod -g 21 westos ##更改用户的初始组

在这里插入图片描述
usermod -G 21 westos ##更改用户的附加组

结果:/etc/group
tcpdump:x:72:
slocate:x:21:westos
westos:x:1001:

usermod -aG 72 westos ##添加用户的附加组

结果:/etc/group
tcpdump:x:72:westos
slocate:x:21:westos
westos:x:1001:

注意:使用-G时,如果已有附加组,则会代替;如果不想代替,想让两个都存在的话,使用-aG
在这里插入图片描述
usermod -G “” westos ##删除用户所在附加组的身份
在这里插入图片描述在这里插入图片描述
usermod -c “hahah” westos ##指定用户说明文字
在这里插入图片描述
usermod -d /home/lee westos ##更改用户家目录的指向
在这里插入图片描述
usermod -md /home/lee westos ##更改用户家目录

usermod -d /home/lee westos 更改用户家目录的指向。
usermod -md /home/lee westos  更改用户家目录  
注意:如果先执行了上一步,则需要(usermod -d /home/westos    westos让指向指回westos,然后再执行本条-md命令,则家目录和指向都会改变)】

在这里插入图片描述

家目录指向其实就像一个路径
什么是家目录 :用户的家目录 , 建立用户的时候直接指向了它在哪里(默认的位置)
更改家目录指向 -d
更改家目录指向及其名字 -md

在这里插入图片描述
usermod -L westos ##冻结用户 passwd -S student查看状态
usermod -U westos ##解锁用户
在这里插入图片描述

usermod -G 72,21 westos  同时建立两个附加组。

在这里插入图片描述
在这里插入图片描述

#######用户认证信息#####
只有普通用户的最短有效期才有用
passwd更严格,需要usermod两次
重新进入找以前的ctrl+r 例如watch,找到以watch开头的
passwd -S student 来查看 注意是student
然后用命令冻结,再看就被锁住了,用命令解冻,在看就好了

TEST
在这里插入图片描述tom,harry,leo都有支持次要群组,但该群组不见得会存在,因此需要先手动创建他!
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值