linux命令之用户与用户组

1.1用户与组的概念
1.理解Linux多用户、多任务的特性
不同用户具有不同的权限,每个用户在权限允许的范围内完成不同的任务,
Linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

2.Linux下用户的角色分类
在Linux下用户是根据角色定义的,具体分为三种角色
每个用户都有一个UID,并且是唯一的,通常UID号的取值范围是0~65535,
a.管理员(超级用户):拥有对系统的最高管理权限 ,默认是root用户【0】

b.系统用户(虚拟用户): 也叫“伪”用户,这类用户最大特点是不能登录系统,
它们的存在主要是为了方便系统管理,满足相应的系统进程对文件属主的要求。
例如,系统默认的bin、adm、nobody用户等,一般运行的web服务,默认使用的就是nobody用户,
但是nobody用户是不能登录系统的【1-499】 (运行后台程序,daemon守护进程)

c.普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限
例如,上面提到的crx用户,A,B用户等【500+】

查看用户信息

  1. id[用户名] 查看用户UID和GID信息
  2. who 查看当前所有登录的用户列表
  3. whoami 查看当前登录用户的帐户名

eg:
id用来查询当前用户的一些信息 对应/etc/group 查看

[crx@master ~]$ id
uid=500(crx) gid=501(crx) groups=501(crx) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[root@master Desktop]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

3.用户和组的概念
我们知道,Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员
申请一个帐户,然后通过这个帐户进入系统。这个帐户和用户是一个概念。
通过建立不同属性的用户,一方面,可以合理利用和控制系统资源;
另一方面,也可以帮助用户组织文件,提供对用户文件的安全性保护.
每个用户都用一个唯一的用户名和用户密码,在登录系统时,只有正确输入了用户名和密码,
才能进入系统和自己的主目录。

用户组是具有相同特征用户的逻辑集合。
通过定义用户组,在很大程度上简化了管理工作.

eg:查看windows下用户和用户组

■用户和组的关系:
用户和用户组的对应关系有:一对一、一对多、多对一、多对多
一对一:一个用户可以存在一个组中,也可以是组中的唯一成员。
一对多:一个用户可以存在多个用户组中,此用户具有多个组的共同权限
多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限
多对多:多个用户可以存在多个组中,其实就是上面三个对应关系的扩展

为了方便用户管理,提出了“组”的概念,可以给组分配权限,把相同用户的权限放在同一个组中


1.2用户配置文件概述
1.用户和组相关的配置文件
1)/etc/passwd文件
系统用户配置文件,是用户管理中最重要的一个文件,这个文件记录了Linux系统中每个用户的
一些基本属性,并且对所有用户可读。/etc/passwd中每一行记录对应一个用户,每行记录又被
冒号分割。其格式如下:

用户名:密码:用户标识号:组标识号:注释性描述:主目录:默认shell
[root@slave2 Desktop]# cat /etc/passwd
在这里插入图片描述

下面是每个字段的详细含义:
用户名:是代表用户帐号的字符串

密码: 存放着加密后的用户密码,虽然这个字段存放的只是用户密码加密串,
不是明文,但是由于/etc/passwd文件是对所有用户都可读的,因此这仍是一个安全隐患。
因此,现在许多linux版本都使用了shadow技术,把真正加密后的用户密码存放到/etc/shadow
文件中,而在/etc/passwd文件的密码字段只存放一个特殊的字符,例如用“x"或者"*"来表示。

用户标识号:就是用户的UID,每个用户都有一个UID,并且是唯一的,
通常UID号的取值范围是065535,0是超级用户的标识号,199由系统保留,作为管理帐号,
普通用户的标识号从100开始。而在Linux系统中,普通用户UID默认从500开始。
UID是Linux下确认用户权限的标志,用户的角色和权限都是通过UID来实现的,因此多个用户公用
一个UID是非常危险的,会造成系统权限和管理的混乱,
例如,将普通用户的UID设置为0后,这个普通用户就具有了root用户的权限,这是极度危险的操作。
因此要尽量保持用户UID的唯一性。

组标识号:就是组的GID,与用户UID类似,这个字段记录了用户所属的用户组,
它对应/etc/group文件中的一条记录.

注释性描述:字段是对用户的描述信息,比如用户的住址,电话,姓名等。

主目录:也就是用户登录系统之后默认所在的目录,也可以叫做用户的主目录,家目录,根目录等。

默认shell:就是用户登录系统后默认使用的命令解释器,shell是用户和Linux内核之间的接口,
用户所做的任何操作,都是通过shell传给系统内核的。Linux下常用的shell用sh、bash、csh等,
管理员可以根据用户的习惯,为每个用户设置不同的shell

2)/etc/shadow文件
由于/etc/passwd文件是所有用户都可读的,因此就导致了用户的密码容易出现泄露,
于是,Linux将用户的密码信息从/etc/passwd中分离出来,单独放到一个文件中,
这个文件就是/etc/shadow。该文件只有root用户拥有读权限,从而保证了用户密码的安全性。

passwd
[crx@master]$ cat /etc/passwd | less
在这里插入图片描述
[crx@master]$ cat /etc/shadow
cat: /etc/shadow: Permission denied

[root@master Desktop]# cat /etc/shadow
root: 6 6 6ZS2TO4VXvo8kccDY$yhqAEqdWVfvlZc8b0svpqUY4qiQr7z4HFo9aD7IJQT89wSGcFpEoaK3fV6ryPctt9P1B5nyweDkaIhhcJVQ2F0:17769:0:99999:7:::
crx:$6 318 q d s 7 X b J T 5 I N k l 318qds7XbJT5INkl 318qds7XbJT5INklR08hARiEfH2sXWAwFyup.JkPXdL5KuTn23oT96LesPxIu1INr4FQKo7aibNjKbHXCBDThHQmwdyJkaq91HHu8/:17769:0:99999:7:::

用户名:与/etc/passwd文件中的用户名有相同的含义

加密密码:存放的是加密后的用户密码字串,如果此字段是“*”“!”“x”等字符,
则对应的用户不能登录系统

最后一次修改时间:表示从某个时间起到用户最近一次修改密码的间隔天数。
可以通过passwd来修改用户的密码,然后查看/etc/passwd中此字段的变化。

最小时间间隔:表示两次修改密码之间的最小时间间隔。

最大时间间隔:表示两次修改密码之间的最大时间间隔,这个设置能增强管理员管理用户的时效性。

警告时间:表示从系统开始警告用户到密码正式失效之间的天数。

不活动时间:表示用户密码作废多少天后,系统会禁用此用户,也就是说,系统不再让此用户登录,
也不会提示用户过期,属于完全禁用。

失效时间:表示该用户账号生存期,超过这个设定时间,帐号失效,用户就无法登录系统了,
如果这个字段的值为空,帐号永久可用。

保留字段:Linux的保留字段,目前为空, 以备Linux日后发展之用。

3)/etc/group文件
组名:密码:组标识号:组内用户列表
[root@slave2 Desktop]# cat /etc/group
在这里插入图片描述
linux账户管理
/etc/passwd
#查看账号(如果删除账号这里不存在)
[root@master crx]# head -n 4 /etc/passwd

#more命令查看
[root@master crx]# more /etc/passwd

■用户管理命令【useradd、usermod、userdel】
(1)创建用户useradd
格式:useradd 选项 用户名
-c 描述此用户
-d 指定家目录
-s 指定shell
-u 指定用户的UID
-g 指定私有组
-G 指定附加组
-r 创建系统用户

■添加用户 (root)
useradd hadoop

添加用户后查看
[root@master crx]# useradd aaa
[root@master crx]# more /etc/passwd

也会创建一个相同用户的组
[root@master home]# more /etc/group
#默认会建立用户家目录,/home/crx 且权限为700!这是重点!

#-u 指定用户的UID
[root@master home]# useradd -u 557 crx2
[root@master home]# ls
crx crx2

[root@master home]# more /etc/passwd|grep crx
在这里插入图片描述
#-s 指定shell
#shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序。
#你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。
#查看/bin/ sh和bash不同的shell
[root@master home]# useradd -s /bin/sh crx3
[root@master home]# ls
crx crx2 crx3

[root@master home]# more /etc/passwd|grep crx
在这里插入图片描述
创建用户需要指定密码才生效u
su hadoop 需要输入密码(注意:没有设置密码的用户不能使用 切到root下)
■修改用户的密码
passwd 用户名
输入密码123456

■用户切换 (普通用户需要密码登录成功,root用户切换普通用户不需要密码)
普通用户—>root用户 —>密码 —>切换成功
root用户—>普通用户 —>切换成功
普通用户—>普通用户 —>密码 —>切换成功

[crx@master]:su hadoop

[hadoop@master]:su - crx

su命令和su -命令区别就是:
su只是切换了用户身份,但Shell环境仍然是当前用户的Shell;
而su -连用户和Shell环境一起切换成用户的身份了。【su pwd】

■查看都有哪些用户
[hadoop@master home]$ ls
hadoop hello crx

可以通过passwd查看有哪些用户
vim /etc/passwd

$> cat -n /etc/passwd | grep crx
在这里插入图片描述

id用来查询当前用户的一些信息
[root@master Desktop]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[crx@master ~]$ id
uid=500(crx) gid=501(crx) groups=501(crx) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

$> id crx
uid=500(crx) gid=500(crx) groups=500(crx)

(2)删除用户userdel
格式:userdel -r 用户名
-r 删除用户家目录

■【userdel 删除账户】
userdel 用户名 删除账户命令
userdel rose 删除rose帐号
userdel -r rose 删除账户登录目录及目录下的文件

删除账户,连同home目录一起删除
[root@master home]# ls
hadoop hello crx

[root@master home]# userdel -r hello
[root@master home]# ls
hadoop crx

[root@master crx]# more /etc/passwd

(3)修改账户usermod
格式:usermod 选项 用户名
-c 注释修改对这个用户的描述
-d 修改家目录 (需要mv 家目录到修改后的路径)
-s 修改shell 【/bin/sh、/bin/bash、/bin/csh】
-u 修改用户的UID,此值必须为唯一的ID
-g 修改私有组
-G 修改附加组
-l 修改用户帐号为新的名称

■【usermod 修改账户】
usermod -l newname oldname
[root@master home]# usermod -l crx1 crx

修改家目录
[root@master home]# usermod -d /home/crx1 crx1

修改家目录, 将原来家目录文件夹修改为新的帐户名
[root@master home]# mv crx crx1

切换用户
su - crx1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值