红帽Redhat—Linux用户管理


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么叫用户?

我们在系统中的各种操作都会以某个身份进行,这些操作的发起者就是系统中的用户。
系统中的每个进程(运行的程序)都是由某个用户运行。

1. 用户类别:

  • 管理员用户
  • 普通用户
  • 系统用户
  • 登陆用户

用户的标识: User ID(UID)
管理员:UID为0
普通用户:1­-65535
系统用户:UID为1-­499(RHEL6),1­-999(RHEL8)
系统中用于运行各种服务程序的用户,默认是不能登录系统的
登陆用户:500­-6000(RHEL6),1000­-60000(RHEL8)

2. 组类别:

组的标识: Group ID(GID)

  • 分类1
    管理员组:GID=0
    普通用户组:1­-65535
    系统组:1-­499(RHEL6),1­-999(RHEL8)
    登陆组:500-­6000(RHEL6),1000-­60000(RHEL8)

  • 分类2
    –­­基本组(主组):也叫主要组,每个用户都有且只有一个基本组。
    –附加组(附属组):也叫附属组或者补充组。

  • 分类3
    私有组:用户名和组名相同,并且该组中只包含了一个用户。
    公有组:组内包含多个用户。

3. 存放用户信息的配置文件

配置文件:/etc/passwd用户的主要配置文件,用于存储用户的信息。

[root@server ~]# cat /etc/passwd		//查看当前系统下所有用户
root:x:0:0:root:/root:/bin/bash
unbound:x:994:988:Unbound DNS resolver:/etc/unbound:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
rhel:x:1000:1000:rhel:/home/rhel:/bin/bash
[root@server ~]# id user				//查看具体的user这个用户
uid=1000(user) gid=1000(user) groups=1000(user) 
[用户名及UID]	[组名及组ID]		[所属组]

配置文件:/etc/group组配置文件。

[root@server ~]# cat /etc/group
rhel:x:1000:

配置文件:/etc/shadow 用户的密码文件,用户存储密码信息。

[root@server ~]# cat /etc/shadow
root:$6$7gOEpXW1Xl3UflMl$.2gqU9YCRaP8KPa0YcjIUhwWk5f7mTYbG3nbBFAGC32IaI.7GgMcJLWgstbsEXRWiWQOwzx2XwyFlMtZpUr/D1::0:99999:7:::
bin:*:18367:0:99999:7:::
daemon:*:18367:0:99999:7:::
adm:*:18367:0:99999:7:::
rhel:$6$toKUzEtHz9fukt4i$Mmf45i9TqRWshPrak8qfoskp/6otwTMGEmp9b5S6rUmo4rl6HdQy6E3vBuJuyApt1ViO6z/t96YDt/4YV9RUc0::0:99999:7:::

配置文件:/etc/gshadow组密码文件。

[root@server ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
rhel:!::

用户配置文件/etc/passwd 各字段含义

root:x:0:0:root:/root:/bin/bash
rhel:x:1000:1000:rhel:/home/rhel:/bin/bash

  1 :2: 3 : 4  : 5 :    6     :    7
  1. rhel:用户名 [user]
  2. passwd:密码位,X表示该用户登录系统必须使用密码,空值则表示无需密码 [X]
  3. UID:0 是系统用户,1000以上是普通用户 [1000]
  4. GID:基本组GID [1000]
  5. 注释/描述信息: [rhel]
  6. HOME DIR: 家目录 [/home/user]
  7. SHELL: 默认登录shell [/bin/bash]

用户密码文件:/etc/shadow各字段含义。

rhel:$6$t...0::0:99999:7:::
  1 :   2   :3:4:5:6:7:8:9

rhel:$6$toKUzEtHz9fukt4i$Mmf45i9TqRWshPrak8qfoskp/6otwTMGEmp9b5S6rUmo4rl6HdQy6E3vBuJuyApt1ViO6z/t96YDt/4YV9RUc0::0:99999:7:::
  1. 用户名 [rhel]
  2. 加密后密码 [$6$toKUzEtHz9fukt4i$Mmf45i9TqRWshPrak8qfoskp/6otwTMGEmp9b5S6rUmo4rl6HdQy6E3vBuJuyApt1ViO6z/t96YDt/4YV9RUc0]
  3. 从1970.1.1至最后一次密码修改所经历的天数 ,安装好系统后没有修改过密码表示空值。 []
  4. 密码最短使用期限:0表示无期限 [0]
  5. 密码最长使用期限:99999表示永久 [99999]
  6. 密码过期前N天开始警告 [7]
  7. 密码过期后宽限时间,这个期限内登录会强制修改密码,超过这个期限则锁定账户.空值表示不强制操作时间
  8. 账户过期时间:空置表示不会过期
  9. 保留字段

4.管理用户

管理用户命令:useradd , userdel , usermod , passwd , id ,w,who, chage
添加用户:useradd

useradd [选项] username
常见选项:
-­u 指定UID
-­g 指定基本组(组ID/组名)
-­G 指定附加组(组ID/组名)
-­c 添加描述
-­d 指定用户家目录
-­s 指定默认登录shell
-­e 指定账户过期日期,格式YY­-MM-­DD
-­M 不创建家目录
-­r 添加为系统用户

用户家目录文件是由/etc/skel 目录中复制而来。
新建用户默认属性变量文件:/etc/login.defs

[root@server ~]# useradd bash
[root@server ~]# cat /etc/passwd
bash:x:1001:1001::/home/bash:/bin/bash
[root@localhost ~]# id bash				//查看bash用户
uid=1001(bash) gid=1001(bash) groups=1001(bash)

创建一个用户名为ansible且uid为2000。

[root@server ~]# useradd -u 2000 ansible
[root@server ~]# id ansible
uid=2000(ansible) gid=2000(ansible) groups=2000(ansible)

-­g 指定基本组(组ID/组名)
创建用户时候,同时创建相同名字的用户组,默认只有基本组。

[root@server ~]# groupadd -g 2001 share		//创建指定gid为2001的share用户
[root@server ~]# useradd -u 1500 test -g share		//创建指定uid为1500和指定share为基本组
[root@server ~]# id test
uid=1500(test) gid=2001(share) groups=2001(share)指定附加组
[root@server ~]# useradd user -G share		//指定user的附加组为share
[root@server ~]# id user
uid=2001(user) gid=2002(user) groups=2002(user),2001(share)
[root@server ~]# useradd -u 3000 -s /sbin/nologin -M web	//指定web的uid为3000和指定默认登录为/sbin/nologin和不创建家目录
[root@server ~]# id web			//查看web用户
uid=3000(web) gid=3000(web) groups=3000(web)
[root@server ~]# cd /home/
[root@server home]# su - web		//切换用户为web
su: warning: cannot change directory to /home/web: No such file or directory
This account is currently not available.
翻译:su:警告:不能将目录更改为/home/web:没有这样的文件或目录此帐户目前不可用。

删除用户userdel
userdel [选项] [用户名]
-­f 强制删除
-­r 删除用户时同时删除用户家目录

[root@server ~]# cd /home/		
[root@server home]# ls
ansible  bash  rhel  test  user
[root@server home]# userdel test
[root@server home]# ls
ansible  bash  rhel  test  user
[root@server home]# cat /etc/passwd
rhel:x:1000:1000:rhel:/home/rhel:/bin/bash
bash:x:1001:1001::/home/bash:/bin/bash
ansible:x:2000:2000::/home/ansible:/bin/bash
user:x:2001:2002::/home/user:/bin/bash
web:x:3000:3000::/home/web:/sbin/nologin
[root@server home]# cd /var/spool/mail/
[root@server mail]# ls
ansible  bash  rhel  rpc  test  user  web

直接使用userdel 不加参数删除用户,可以删除用户,但是不删除用户的家目录和邮件目录

[root@server mail]# userdel user
[root@server mail]# useradd user
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
useradd:警告:主目录已经存在。没有从skel目录复制任何文件到它。创建邮箱文件:文件已存在```
[root@server mail]# cd /home/
[root@server home]# ls
ansible  bash  rhel  test  user
[root@server home]# userdel -rf user
[root@server home]# ls
ansible  bash  rhel  test

管理组
groupadd添加组
-­g 指定GID

[root@server ~]# groupadd -g 2020 tech
[root@server ~]# cat /etc/group			//查看创建的组及组ID
rhel:x:1000:
bash:x:1001:
ansible:x:2000:
share:x:2001:
web:x:3000:
tech:x:2020:

groupdel删除组
查看账户属性信息 id
id username
-­u 显示UID
-­g 显示基本组GID
-­G 显示附加组GID
-­n 和u,g,G一起使用,显示具体名称,不显示id。

[root@server ~]# id rhel 
uid=1000(rhel) gid=1000(rhel) groups=1000(rhel)
[root@server ~]# id -nu rhel 
rhel
[root@server ~]# id -ng rhel 
rhel
[root@server ~]# id -nG rhel 
rhel

查看用户信息 w who
w:查看当前登录系统的所有系信息
who:查看当前登录用户

[root@server ~]# w
 09:43:08 up  3:11,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.2.89     08:15    1.00s  0.11s  0.00s w
[root@server ~]# who
root     pts/0        2020-12-23 08:15 (192.168.2.89)

修改账号属性usermod
usermod [选项] [用户名]
-­u 修改uid
-­g 修改基本组
-­G 修改附加组 ­­会覆盖原有的附加组
-­a ­G 添加附加组 ­­不会覆盖
-­s 修改登录shell
-­u 修改uid

[root@server ~]# id rhel 
uid=1000(rhel) gid=1000(rhel) groups=1000(rhel)
[root@server ~]# usermod -u 1111 rhel 
[root@server ~]# id rhel 
uid=1111(rhel) gid=1000(rhel) groups=1000(rhel)

-­g 修改基本组

[root@server ~]# usermod -g share rhel 
[root@server ~]# id rhel 
uid=1111(rhel) gid=2001(share) groups=2001(share)

-­G 修改附加组

[root@server ~]# id rhel 
uid=1111(rhel) gid=2001(share) groups=2001(share)
[root@server ~]# useradd student
[root@server ~]# usermod -G student rhel
[root@server ~]# id rhel 
uid=1111(rhel) gid=2001(share) groups=2001(share),3001(student)

-­s 修改登录shell

[root@server ~]# usermod -s /sbin/nologin ansible
[root@server ~]# su - ansible 
su: warning: cannot change directory to /home/ansible: Permission denied
This account is currently not available.
翻译:su:警告:无法将目录更改为/home/ansible: Permission denied这个帐号目前不可用。

passwd username
--­­stdin 从标准输入读取密码

echo “password” | passwd ­­--stdin username ­­

[root@server ~]# echo "1234567890" | passwd --stdin rhel 
Changing password for user rhel.
passwd: all authentication tokens updated successfully.
正在更改用户rhel的密码。
passwd:所有认证令牌更新成功。

使用标准输入更改密码

切换用户 su
­­­susu -的区别。
su username不会切换用户环境。
su - username切换用户环境,相当于用户正常登陆。

[root@server ~]# su rhel
[rhel@server root]$ exit
exit
[root@server ~]# su - rhel 
[rhel@server ~]$ 

­­­管理员与非管理员之间的切换

[root@server ~]# echo "12345678" | passwd --stdin rhel
Changing password for user rhel.
passwd: all authentication tokens updated successfully.
翻译:更改用户abcd的密码。passwd:所有身份验证令牌都已成功更新。
[root@server ~]# echo "12345678" | passwd --stdin bash 
Changing password for user bash.
passwd: all authentication tokens updated successfully.
翻译:更改用户abcd的密码。passwd:所有身份验证令牌都已成功更新。
[root@server ~]# su - rhel 				//切换到rhel用户
[rhel@server ~]$ su - bash				//切换到bash用户
Password: 								//看不见你输入的密码
[bash@server ~]$ su - root				//切换到root用户
Password: 								//看不见你输入的密码
[root@server ~]# 

从root用户切换到其他用户是不需要密码验证,从普通用户切换到任何用户都需要密码验证。

END

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值