十三、用户名密码管理

一、创建用户

命令

注释说明

useradd

adduser命令,执行此命令可在系统中添加用户

userdel

执行此命令可以删除用户及相关用户的配置或文件

passwd

执行此命令可以为用户设置密码

chage

修改用户密码有效期

usermod

修改用户的命令,可以通过usermod来修改登录名、用户的家目录等等

id

查看用户的UIDGID及所归属的用户组

su

用户切换工具

sudo

 Sudo通过另一个用户来执行命令(execute a command as another user)su是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo能在命令后面直接接命令执行,比如sudo ls /root,不需要root密码就可以执行只有root才能执行相应的命令或具备的目录权限,这个权限需要通过visudo命令或者直接编辑/etc/sudoers来实现

1、useradd命令使用

  useradd -u 2001 -s /sbin/nologin -M -c dddd -e 2025/9/01 pp

     -u 指定uid   -s 添加shell   -M 不创建家目录  -c 添加说明  -e 用户过期时间

  

  默认用户配置文件useradd

  创建用户调用这个文件 

  /etc/default/useradd


  [root@localhost.localdomain ~]# cat /etc/default/useradd
  # useradd defaults file   
  GROUP=100
  HOME=/home   #把用户的家目录创建在/home中
  INACTIVE=-1   #是否启用账号过期停权,-1表示不启用
  EXPIRE=    #账号终止日期,不设置表示不启用
  SHELL=/bin/bash     #新用户默认所用的shell类型
  SKEL=/etc/skel   #配置新用户家目录的默认文件存放路径
  CREATE_MAIL_SPOOL=yes 

  如果不指定参数,就默认使用useradd里面的参数

  

  chage -l tom      查看用户tom的有效期

二、用户组

groupadd命令的使用

groupadd kkk    添加组

groupadd -g 444 tom  指定GID

只记这个就可以了

三、修改用户密码

passwd命令的使用

passwd  tom  更改用户tom密码

echo 111 |passwd --stdin tom    非交互式给tom添加密码  写脚本时经常用到

要求tom用户7天内不能更改密码,60天以后必须修改密码,过期前10天通知tom用户,过期后30天后禁止用户登陆

[root@dingjian ~]# passwd -n 7 -x 60 -w 10 -i 30 tom

Adjusting aging data for user tom.

passwd: Success

[root@localhost.localdomain /etc/skel]# chage -l tom
Last password change : Sep 22, 2020
Password expires : Nov 21, 2020
Password inactive : Dec 21, 2020
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 10

 

chage命令使用

chage –E 2020/10/30 tom 修改tom的过期时间

或者

[root@dingjian ~]# usermod -e 01/28/2020 tom

userdel命令的使用

userdel  -r ddd  删除ddd用户 –r连家目录和邮件一起删掉

在工作中,在/etc/passwd里面把用户密码加注释,

在删用户时要考虑到用户的家目录中有没有重要数据,不要轻易删除

groupdel 444  删除组

无论使用useradd或者usermod等命令创建或者删除用户,都更改以下四个文件

/etc/group

/etc/gshadow

/etc/passwd

/etc/shadow

usermod -e 01/28/2020 tom

-e 账号停止日期  -g 更新用户新的起始登入用户组 -G 定义group  -s shell    -u uid  

usermod命令的使用

用户信息修改相关命令useradd

usermod命令相关的文件有:

/etc/passwd   用户账号资料文件

/etc/shadow   用户账号资讯加密文件

/etc/group    用户组资讯文件

参数选项

注释说明带※号的内容是最需要掌握的

-e expire_date

※加上用户账号停止日期,日期格式为MM/DD/YY

-f inactive_days

账号过期几日后永久停权。当值为0时账号则立刻被停权。而当值为-1时则关闭此功能。预设值为-1

-g initial_group

※更新用户新的起始登入用户组。用户组名须己存在。用户组ID必须参照既有的用户组,用户组ID预设值为1

-G group[…]

※定义用户为一堆groups的成员。每个用户组使用”,”逗号分隔开来,用户组名同-g选项的限制

-l login_name

变更用户login时的名称为login_name 。其余信息不变

-s shell

※指定新登入shell,如此栏留白,系统将选用系统预设shell,这个-s参数功能也可以使用chsh命令来修改,也可以手功修改/etc/passwd

-u   uid

※指定用户UID值,除非接-o能数,如usermod –u 505 –o tom ,否则ID值必须是唯一的数字(不能为负数)

[root@dingjian ~]# usermod -c tom -u 1806 -G root,sa -s /bin/tcsh -d /tmp/oldboy6 oldboy6

-c 更改说明  -u UID –G 修改组 –s 更改shell  -d 修改家目录

id tom 显示用户tom的信息

显示己经登陆的用户,并且都做了什么的信息

[root@localhost.localdomain ~]# w
17:51:50 up 2 days, 20:29, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 Mon21 2days 0.15s 0.15s -bash
root pts/0 192.168.200.2 13:49 1:32m 1.94s 1.94s -bash
root pts/1 192.168.200.2 17:36 6.00s 0.05s 0.00s w

[root@dingjian ~]# who     显示哪些用户在登陆,终端及登陆时间,来源于主机。 

[root@dingjian ~]# last        显示己登陆用户列表及登陆时间等

                          查看的信息和/var/log/wtmp  /var/log/btmp两个文件有关

[root@dingjian ~]# lastlog     报告最近的所有系统用户的登陆信息,安全检查或者被攻击检查   查看的信息和/var/log/lastlog日志有关

[root@dingjian ~]# users     显示当哪些用户在登陆 

[root@dingjian ~]# uptime

 07:58:01 up 6 days,  8:34,  1 user,  load average: 0.03, 0.04, 0.01

groups tom  查看所属组

显示第一个为主组,后面的是附加组

四、用户之间的切换

su 命令就是切换用户身份的命令,

通过su命令可以在用户之间切换,超级权限用户root向普通或虚拟用户切换不需要密码验证(这就是超级权限所在),其它普通用户之间或者普通用户切换到root,都需要切换用户的密码验证

env查看环境变量

su命令总结

1.普通用户切换到root用户,可使用su su – root 。必须输入root的密码才能完成切换

2.root用户切换到普通用户,可使用”su – 普通用户名的写法,不需要输入任何密码就能完成切换,切换到普通用户后,使用普通用户的PATH变量,

3.如果仅希望以某用户的角色执行命令,而不直接切换到该用户下操作,可以使用su – 用户名 –c “命令”

 

原文地址:https://www.cnblogs.com/mr-xiong/p/13730458.html