3.1 用户配置文件和密码配置文件

3.2 用户组管理

3.3 用户管理

3.4 usermod命令

3.5 用户密码管理

3.6 mkpasswd命令

3.7 su命令

3.8 sudo命令

3.9 限制root远程登录

 

  

3.1 用户配置文件和密码配置文件

 

1、用户配置文件(/etc/passwd)

第一行是root用户

添加的用户从最后一行开始

第三章、用户和组管理

user1:x:1000:1000::/home/user1:/bin/bash

用户:密码:uid:gid:注释信息:家目录:shell(交互窗口)

ps:密码放在别的地方,所以统一为x

 

2、密码配置文件(/etc/shadow)(与用户配置文件一一对应)

/etc/passwd内容含义:

分为九段:

  1. 用户名

  2. 密码(经过加密)

  3. 上次更改密码距离格林乔治时间几天

  4. 多少天后可以更改密码

  5. 多少天后要改密码

  6. 密码到期前多少天提示

  7. 密码到期后,没改密码多少天账户失效

  8. 账号使用期限在格林乔治时间后多少天

# root(用户名):$6$dAG6/8RmAOv603Ln$eDc6vFHvGC4snH3YJPVJkIP3OC7qbl0ax069YxFTlRb9TRjb0VqSimxoK2Eva6NKkZkV1YWZsOrqgtInheaCD1(密码'加密过'):(上次更改密码距离'格林乔治时间'天数):0(多少天之后可再更改密码):99999(多少天之后要更改密码):7(密码到期前多少天提示):(密码到期后没修改密码多少天账号失效):(账号使用期限'格林乔治时间后多少天'):(略)

# longlong02(用户名):!!(密码'没密码是!!'):17387(上次更改密码距离):0(多少天之后可再更改密码):99999(多少天之后要更改密码):7(密码到期前多少天提示):(密码到期后没修改密码多少天账号失效):(账号使用期限'格林乔治时间后多少天'):(略)

# xxx:*(密码被锁定):17110:0:99999:7:::

第三章、用户和组管理

即使密码设置的一样,但是加密的字符串是不一样的

head -n2 /etc/shadow; tail -n2  /etc/shadow

第三章、用户和组管理

第三章、用户和组管理

 

3.2 用户组管理

 

用户组管理文件(/etc/group)

#user3:x:1003:user3

#用户:密码:组ID:组成员

 

groupadd  组名                      #创建组

 

[[email protected] ~]# groupadd grp1

[[email protected] ~]# tail -n1 /etc/group

grp1:x:1002:

 

group  -g  1005 组名            #创建组,并将组gid设为1005

#组ID1000以内的都被系统预留了,要定义组ID,从1001开始

 

[[email protected] ~]# groupadd -g 1004 grp2

[[email protected] ~]# groupdel grp1

[[email protected] ~]# tail -n2 /etc/group

slocate:x:21:

grp2:x:1004:

 

groupdel   组名                      #删除组(组内要为空,无成员

 

[[email protected] ~]# groupdel grp1

[[email protected] ~]# tail -n2 /etc/group

slocate:x:21:

grp2:x:1004:

[[email protected] ~]# groupdel user1

groupdel:不能移除用户“user1”的主组

[[email protected] ~]# LANG=en

[[email protected] ~]# groupdel user1

groupdel: cannot remove the primary group of user 'user1'

 

 

3.3 用户管理

 

  1)useradd  用户名                #创建用户

-u   1003                                   #自定义uid=1003

-g     组名                                         #指定组

-d      目录                                        #自定义选择家目录

-s                                               #自定义选择shell

 

useradd -u 1004 -g grp2 -d /home/user3 -s /sbin/nologin user3

 

[[email protected] ~]# tail -n4 /etc/passwd

chrony:x:998:996::/var/lib/chrony:/sbin/nologin

xin:x:1000:1000::/home/xin:/bin/bash

user1:x:1001:1001::/home/user1:/bin/bash

user2:x:1002:1002::/home/user2:/bin/bash

[[email protected] ~]# useradd -u 1004 -g grp2 -d /home/user3 -s /sbin/nologin user3

[[email protected] ~]# tail -n4 /etc/passwd

xin:x:1000:1000::/home/xin:/bin/bash

user1:x:1001:1001::/home/user1:/bin/bash

user2:x:1002:1002::/home/user2:/bin/bash

user3:x:1004:1004::/home/user3:/sbin/nologin

 

-M    用户名                              #创建用户同时不创建家目录

第三章、用户和组管理

第三章、用户和组管理

 

userdel   用户名                  #删除用户(会保留该用户家目录)

第三章、用户和组管理

 

userdel  -r   用户名             #删除用户同时删除家目录

第三章、用户和组管理

 

#gid的数字不会根据gid自增,只会随着uid增加

第三章、用户和组管理

 

ps:如果用户没有家目录怎么办?

第三章、用户和组管理

/etc/skel/                           #系统家目录的模板目录地址

先退出,root用户再/home/m目录下创建user4的家目录,并将所有者和所属组改为user4,然后去/etc/skel/ 将模板目录的文件全部拷贝到/home/user4/,将所有文件的所有者和所属组改为user4,然后重新登录进去就可发现正常了

cp /etc/skel/.bash*   /home/user4

chown  user4:user4  !$

cp /etc/skel/.bash* /home/user4

chown -R user4:user4 !$

第三章、用户和组管理

第三章、用户和组管理

第三章、用户和组管理

 

操作失误问题

创建新用户出错Creating mailbox file:File exists的问题

第三章、用户和组管理

在Linux环境下安装oracle时需要创建oracle用户,提示上面这个错误;原因是没有正确删除用户

解决方法:

重新创建oracle用户:

useradd -oracle                  #创建oracle用户

userdel   -r oracle               #删除用户

然后创建别的用户就不会出错了

 

3.4 usermod命令

 

usermod(更改用户属性

-u  1002        用户名                 #改uid

-g  gid/组名      用户名            #改gid

-d   目录    用户名                   # 改家目录 

-s    /sbin/nologin  用户名    #改shell

第三章、用户和组管理

 

-G  组名      用户名            #替换一个扩展组

第三章、用户和组管理

 

-G  组名,组名      用户名        #可以替换多个组,中间用“,”隔开(g不行,只有大G才行)

第三章、用户和组管理

第三章、用户和组管理

 

id       用户名       #查看用户uid,gid,扩展组

第三章、用户和组管理

 

 

3.5 用户密码管理

 

passswd                 #什么不加就是改root密码,加username改用户密码

第三章、用户和组管理

 

/etc/shadow文件里密码那一段显示“!!”表示密码为空或者“*”都表示密码被锁定   (都不能够登陆)

第三章、用户和组管理

 

passwd   -l   username           #锁定用户(!!)

passwd  -u    username          # 解锁用户

第三章、用户和组管理

 

usermod  -L    username         #锁定用户(!)

usermod  -U    username          # 解锁用户

第三章、用户和组管理

 

passwd     --stdin    username        #更改密码,只用一次修改,且密码明文显示

第三章、用户和组管理

 

echo “1234”|passwd --stdin user1

第三章、用户和组管理

 

echo  -e "1234\n1234" |passwd user1         

第三章、用户和组管理

 

echo  -e  "123\n123"           echo  -e  "123\t123"        

               #\n是换行符 ,\t是table键(空格)

第三章、用户和组管理

 

锁定密码:usermod -L 与passwd -l的区别

/etc/shadow文件密码那里:

usermod -L 会产生1个!号

passwd -l    会产生2个!号

第三章、用户和组管理

#usermod和passwd的解锁、锁定可以互用

 

 

3.6mkpasswd 命令(密码生成器(生成随机字符))

  • -l(长度) 默认16位

  • -s(字符) 默认1

  • -C(大写) 默认4

  • -c(小写)默认3

  • -d(数字)默认2

yum install -y expect      #安装    

mkpasswd   -l      #指定长度

mkpasswd   -s     #指定特殊符号

 

[[email protected] ~]# mkpasswd -l 9  -s 2

m8Fd&(2Gt

[[email protected] ~]#

 

 

3.7 su命令

#普通用户显示为$符号,root用户显示为#符号。    

第三章、用户和组管理

 

echo  $?       #检查上条命令的执行结果是否成功   (常用于脚本)   

# 输出为0表示执行成功

 

pwd    #查看当前位置

 

su    username          #切换用户,但是位置在root目录下

su  - username          #位置在用户家目录

 

su  -  -c “touch /tmp/user1.111”user1    

#在root用户下创建文件将文件所属者给user1

第三章、用户和组管理

 

 

3.8 sudo命令

#让用户临时拥有root的权限

 

visudo    #打开sudo配置文件编辑  注意别用vi编辑,语法错了不会提示

visudo所在位置:/etc/sudoers.tmp

 

第一种设置方式

这是用户权限设置 

第三章、用户和组管理

 

例:user1   ALL=(ALL)  (NOPASSWD:)/usr/bin/ls,/usr/bin/mv,/usr/bin/cat

#命令需要用绝对路径;输入括号里的NOPASSWD:, (冒号后面要加空格)则可避免第一次sudo登录输入密码

第三章、用户和组管理

 

第一次sudo时需要输入用户密码

第三章、用户和组管理

sudo   命令/绝对路径   文件/目录 

sudo /usr/bin/ls   /root/            或sudo  ls   /root/ 

sudo /usr/bin/cat  /root/3.txt

第三章、用户和组管理

第三章、用户和组管理

 

第二种设置方式

第三章、用户和组管理

通过命名别名

第三章、用户和组管理

第三章、用户和组管理

第三章、用户和组管理

 

这是用户组权限设置(设置类似用户上面设置)

 

 

3.9 限制root远程登录

 

思路:通过visudo,将选择的普通用户可以实现免密登录root用户,然后通过/etc/ssh/sshd_config 将root远程登录禁掉;使用选择免密登录root的普通用户登录,然后直接sudo su - 切换到root用户

 

visudo                                  # 开sudo配置文件编辑     

 

遇到问题

[[email protected] ~]# visudo

visudo: /etc/sudoers 忙,请稍后重试

 

#应该还运行过一个visudo没有退出来。

ps aux |grep visudo 看下是否有进程。 如果有用这个命令停掉

killall visudo

yum  install psmisc       #安装kill命令

第三章、用户和组管理

第三章、用户和组管理

 

visudo                        开sudo配置文件编辑

 

User_Alias XINS = xin,user1,user2,user3

第三章、用户和组管理

 

XINS    ALL=(ALL)       NOPASSWD: /usr/bin/su

第三章、用户和组管理

 

实现普通用户免密登录root用户

第三章、用户和组管理

 

vi /etc/ssh/sshd_config                        #通过修改文件限制root远程登录

第三章、用户和组管理

将root远程服务改为no(一开始文件默认为yes),并将#去掉

systemctl restart sshd.service             #重启sshd服务

[[email protected] ~]# systemctl restart sshd.service

[[email protected] ~]#

通过xshellroot登录不了

第三章、用户和组管理

 

通过putty登录普通用户user1,然后sudo ,就进入root用户了

第三章、用户和组管理

 

一个防止root远程登录软件,别人猜密码时,在猜错3次后,这个连接的IP断30分钟(时间可以自定议)

安装fail2ban前需要安装epel-release扩展源

yum install  -y epel-release

 

yum install -y fail2ban

 

#fail2ban的主配置文件:/etc/fail2ban/jail.conf  

防猜sshd登录密码,只改这里就可以了。注意,前面不能有空格。

相关文章:

  • 2021-10-08
  • 2021-10-16
  • 2019-08-01
猜你喜欢
  • 2021-04-28
  • 2021-09-29
  • 2021-10-19
  • 2022-01-01
  • 2021-10-29
  • 2021-04-09
相关资源
相似解决方案