用户管理

用户和用户组

1583571865_ab05a7218d58cc85bbfc02fbec2d730f

  • 用户

    • 用户对硬件资源的操作都需要通过操作系统,比如用户要读取硬盘中的一份关键数据。出于安全考虑,操作系统的开发者们都专门开发了安全机制,要使用操作系统必须事先输入正确的用户名与密码,根据用户给相应权限,这便是用户的由来
    • 用户是权限的化身,通常在公司是使用普通用户管理服务器,因为root权限过大,容易出问题
    • 每启动一个进程都会与一个用户关联
      • 进程 ===》用户 ===》权限(作用在文件身上)
  • 用户组

    • 主组:用户本身所在的组
    • 附属组:为用户添加的组

    用户与组的关系

    • 一对一:一个用户可以属于一个组,用户默认就在自己的主组下
    • 一对多:一个用户可以属于多个组,用户只有一个主组,但可以为用户添加多个附加组
    • 多对多:多个用户可以属于多个组
# linux系统中用户角色划分			
  系统用户:uid在 0-999 之间的是系统用户
		系统用户一般用在启动应用程序上,一般不需要登录系统。
		
  普通用户:uid在 1000及以上的是普通用户
		一般用在登录上。

用户与组相关文件

# 用户详情的文件
# 文件信息:/etc/passwd
[root@localhost ~]# cat /etc/passwd
 tony:x:1004:1004::/home/tony:/bin/bash
  tony    #用户名 
  x       #密码占位符
  1001    #用户uid
  1001		#用户组gid
  /home/tony #家目录
  /bin/bash	 #默认的解析器


# 用户密码的文件
# 文件信息:/etc/shadow
[root@localhost /]# cat /etc/shadow
 tony:!!:18978:0:99999:7:::  #用户密码
  tony  #用户名
  !!    #密码是一长串的字符串,!!表示没有密码
  18978 #最近一次变更密码,距离1970年到现在过了多少天
  0     #密码最少使用天数,0表示无限制
  99999 #密码最长使用天数,99999表示无限制
  7     #密码过期预警天数
  
  
# 用户组配置文件
# 文件信息:/etc/group
[root@localhost /]# cat /etc/group
 tony:x:1004:
  tony  # 用户组名
  x     # 用户组密码占位符
  1004  # 用户组id
 
 
# 用户组密码文件
# 文件信息:/etc/gshadow
[root@localhost /]# cat /etc/gshadow
 tony:!::
  tony  #用户组名
  !     #用户组密码,!或空表示没有密码
  :     #用户组管理者,可以为空,多个管理用,分割
  :     #显示用户组为哪个用户的附加组,多个用,分割 

用户管理命令

用户:相当于账号
  root  #root用户拥有最高权限  
  test
	
# 创建用户的命令:
	useradd [用户名]
	
  参数:
	 -g  #指定用户组(用户必须存在)
	 -r  #创建系统用户
	 -M  #不创建家目录
	 -u  #指定创建用户的ID的
	 -s  #指定解析器
	 
  [root@localhost /]# useradd tony  #默认将用户写进了/etc/passwd 这个文件
	ps:每创建一个用户都会创建一个该用户的主组,组名与用户名相同


# 切换用户的命令:
	su - [用户名]
	su [用户名]
	
	   
# 查看用户相关信息
  [root@localhost /]# id  #查看当前用户
   uid=0(root) gid=0(root) 组=0(root)
   
  [root@localhost /]# id test  #id [用户名] 查看指定用户信息
   uid=1001(test) gid=1001(test) 组=1001(test)

  [root@localhost /]# whoami  # 查看当前用户是谁
   root
   
  [root@localhost /]# who  #查看所有登录的用户
   root   pts/0    2021-12-17 19:37 (192.168.15.1)
   root   pts/1    2021-12-17 19:37 (192.168.15.1)
   
  
  
# 修改用户的命令:
  usermod [用户名]
  
  参数:
   -u  #修改用户的UID
	 –g  #指定⽤户所属的GID 
	 
 # 修改用户的UID
	[root@localhost ~]# tail -1 /etc/passwd
   user:x:1005:1005::/home/user:/bin/bash
  [root@localhost /]# usermod -u 1006 user  #显示无法修改
   usermod: user user is currently used by process 9001
  [root@localhost /]# kill -9 9001  #需要杀死正在使用用户的进程
  [root@localhost /]# 已杀死
  #这时候可以修改了
  [root@localhost ~]# usermod -u 1006 user
  [root@localhost ~]# tail -1 /etc/passwd  #修改成功
   user:x:1006:1005::/home/user:/bin/bash
 
 
 # 用户组必须是已经存在的,否则无法修改
  [root@localhost /]# usermod user -g 1001
  [root@localhost /]# tail -1 /etc/passwd
    user:x:1006:1001::/home/user:/bin/bash

  
# 删除用户的命令:
 userdel [用户名]
   参数:-r
  #删除⽤户test1,但不删除⽤户家⽬录和mail
  [root@localhost /]# userdel test1    
  
  [root@localhost /]# ll /home   #查看并没有删掉test1的家目录
   drwx------ 3 1003 1003 92 12月 17 21:02 test1 
  [root@localhost /]# ll /var/spool/mail/  #查看并没有删掉test1的mail
   -rw-rw---- 1 1003 mail 0 12月 17 21:02 test1
  [root@localhost /]# rm -rf /home/test1  #手动删除家目录
  [root@localhost /]# rm -rf /var/spool/mail/test1 #手动删除mail  
  
  
  #要想删彻底,加-r选项,其实是做了上面所有的操作
  [root@localhost /]# userdel -r test1 
  

手动创建用户

  • 不使用 useradd 创建用户
# 创建用户家目录
[root@localhost opt]# mkdir -p /home/test  

# 查看用户信息配置文件
[root@localhost opt]# cat /etc/passwd

# 创建test用户并写入用户信息配置文件
[root@localhost ~]# echo 'test:x:1001:1001::/home/test/:/bin/bash' >> /etc/passwd

# 再次查看用户信息配置文件
[root@localhost ~]# cat /etc/passwd
test:x:1001:1001::/home/test/:/bin/bash  #可以发现新增的用户

# 给用户添加属组
[root@localhost ~]# echo 'test:x:1001' >> /etc/group

# 给用户添加密码
[root@localhost /]# vim /etc/shadow

# 给用户家目录配置环境变量
[root@localhost ~]# cp /etc/skel/.bashrc  /home/test
[root@localhost ~]# cp /etc/skel/.bash_profile   /home/test
或
[root@localhost ~]# cp /etc/skel/.bash*  /home/test

# 修改用户家目录权限
[root@localhost home]# chown test.test test/  # 用户.用户组 用户家路径

# 切换用户
[root@localhost ~]# su - test

上一次登录:二 12月 14 19:05:50 CST 2021pts/0 上

# 成功切换用户
[test@localhost ~]$   

密码

  • 修改或添加Linux普通用户的密码。直接影响的文件是/etc/shado
 参数
  -d	#删除密码
  -l	#锁定用户密码,无法被用户自行修改
  -u	#解开已锁定用户密码,允许用户自行修改
  -e	#密码立即过期,下次登陆强制修改密码
  -k	#保留即将过期的用户在期满后能仍能使用
  -S	#查询密码状态

# 增加或修改密码
当用户密码不存在的时候即为增加密码,当用户密码存在时即为修改密码。

 [root@localhost home]# useradd user
 [root@localhost home]# tail -1 /etc/passwd
   user:x:1005:1005::/home/user:/bin/bash
 [root@localhost home]# tail -1 /etc/shadow
   user:!!:18701:0:99999:7:::
   
 [root@localhost home]# passwd user
 [root@localhost ~]# passwd user
   更改用户 user 的密码 。
   新的 密码:
   重新输入新的 密码:
   passwd:所有的身份验证令牌已经成功更新。
 [root@localhost home]# tail -1 /etc/passwd
   user:x:1005:1005::/home/user:/bin/bash
 [root@localhost home]# tail -1 /etc/shadow
 user:$6$RApJMwf1$jytlisorvavpdDmuZ4RGyuFLZaHd5C0uMqXJU0dFt/Vn7Oj8tSiN7/RswvXc3LIBh6JuDOq73u2K1Uf4up476/:18979:0:99999:7:::



# 免交互修改密码
[root@localhost /]# echo '123' | passwd --stdin user
Changing password for user user.
passwd: all authentication tokens updated successfully.

yhz

用户组管理命令

每个用户都有一个用户组,这样系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组:某些具有相同属性的账号的集合
	root
# 创建用户组的命令:
	groupadd 
	
	参数:
		-g  #指定用户组的GID
	  -r  #创建系统工作组,系统工作组的组ID小于1000
    -K  #覆盖配置文件“/ect/login.defs”
    -o  #允许添加组ID号不唯一的工作组
    
  #创建组  
   [root@localhost /]# groupadd group1
   [root@localhost /]# cat /etc/group   #查看组信息
    group1:x:1005:
    
  #指定GID创建组
   [root@localhost /]# groupadd -g 2001 group2
   [root@localhost /]# tail -1 /etc/group  #查看文件最后一行的内容
    group2:x:2001:

  #创建系统组
   [root@localhost /]# groupadd -r group4
   [root@localhost /]# tail -1 /etc/group
    group4:x:996:

# 修改组的命令:
  groupmod

  参数:
   -g  #设置欲使用的组GID
   -n  #设置欲使用的群组名称
  
  #修改组GID
   [root@localhost /]# groupmod -g 2222 group1  #将group1的组GID改为2222
   [root@localhost /]# tail -1 /etc/group
    group1:x:2222:

  #修改组名
   [root@localhost /]# groupmod -n new_group group1 #将组group1改名为new_group
   [root@localhost /]# tail -1 /etc/group  
    new_group:x:2222:

  
# 删除组的命令:
 groupdel
 
  [root@localhost /]# groupdel group2
  [root@localhost /]# tail -5 /etc/group #已经删除了
   mysql:x:27:
   tony:x:1004:
   group3:x:2005:
   group4:x:996:
   new_group:x:2222:
   
ps:用户组在系统中删除,如果一个组被用户占用则不能删除。用户被删除,用户基本组也会被删除

知识储备:
  tail  #tail 命令可用于查看文件的内容
	-f  #循环读取
  -q  #不显示处理信息
  -v  #显示详细的处理信息
  -c<数目>  #显示的字节数
  -n<行数>  #显示文件的尾部 n 行内容

WechatIMG1411

posted @ 2021-12-14 19:40  山风有耳  阅读(158)  评论(0编辑  收藏  举报