目录

  • 练习1
    • 示例1
    • 示例2:重复选择
    • 示例3:使用awk获取
  • 知识点2 user group 用户与组
  • 知识点2.1
  • 知识点2.2 为什么要引入这个用户和组?
  • 知识点2.3 用户和组
  • 知识点2.4 用户创建牵扯到哪些文件
  • 知识点2.5 /etc/passwd 文件详解
  • 练习2.6 找出系统中uid大于1000的用户,显示出它的名字,UID,家目录,shell
  • 练习2.7 找出/etc/passwd中有几种shell信息
  • 知识点3 用户和组的关系
  • 知识点4 用户和组的相关文件
  • 知识点5 用户和组的相关文件
  • 知识点6 添加与删除用户
    • 示例:-s /sbin/nologin
  • 练习6.2 显示出系统中uid大于1000并且用户名包含sanchuang的用户信息(用户名,用户Id,用户家目录)
    • 方法1
    • 方法2
  • 知识点7 进程
  • 知识点8 Python中使用os模块查看当前进程的用户信息
  • 知识点9 ftp协议(文件传输协议)
  • 知识点9.2
  • 知识点9.3 ftp常用命令
  • * 知识点9.4 ftp的2种工作模式
    • 1、主动模式(默认情况下是主动模式)
    • 2、被动模式
  • 知识点10 usermod userdel
    • 示例
  • 知识点10 useradd命令
  • 知识点11 用户
    • 示例:mysql uid
    • 示例
    • 示例
    • 示例
    • 示例:指定附加组
  • 知识点11.2 userdel 删除用户
    • 示例1
    • 示例2
  • 知识点12 usermod 用户修改
    • 示例:-L:锁定用户账户
  • 知识点13 /etc/shadow
  • 知识点14 passwd命令
    • 示例
    • 示例:usermod -L 和 passwd -d

博客cpen_web

练习1

示例1

menu(){echo "1、监控内存使用情况,如果内存使用率大于百分之80,给予提醒"echo "2、扫描局域网ip,检查哪些ip地址正在使用"echo "3、监控文件/etc/passwd是否被修改,每隔5分钟监控一次"echo "4、监控nginx进程是否存在,不存在就给予相应提醒"
}option_1(){total=`free -m|grep -i mem|tr -s " "|cut -d " " -f2`#free=`free -m|grep -i mem|tr -s " "|cut -d " " -f4`used=`free -m|grep -i mem|tr -s " "|cut -d " " -f3`used_rate=`echo "scale=4;$used/$total" |bc`#used_1=`echo "$total*0.8"|bc `result=` echo "$used_rate>0.8"|bc `#echo $resultif (( $result  == 1 ))thenecho -e "\e[31m使用率超过80%,请及时对内存扩容,以免不必要的损失\e[0m"elseecho  " nothing to do"fi
}option_2(){for ip in `seq 255`do( ip_full=192.168.0.$ipping -c 1 $ip_full &>/dev/null && echo $ip_full >>up.txt || echo $ip_full >>down.txt) &     # 注:放到后台子进程执行done
wait # 父进程等待子进程执行完成之后再退出
}option_3(){check_num=`diff /etc/passwd /lianxi/passwd |wc -l`[[ check_num -eq 0 ]] && echo "文件未被修改" || echo "文件已被修改"
}option_4(){pidof nginx && echo "nginx is running" || echo "nginx is down"
}menu
read -p "请输入你的选择:" option
case $option in
1)option_1;;
2)option_2;;
3)option_3;;
4)option_4;;
*)echo "请输入1-4"
esac

示例2:重复选择

重复选择

while :
do
done
echo "#########################"
echo "1.查看内存使用率"
echo "2.扫描局域网ip"
echo "3.查看文件是否被修改"
echo "4.查看nginx进程"
echo "5.退出"
echo "#########################"while :
doread -p "请输入你的选择:" optionscase $options in1)/root/shell/mem.sh;;2)/root/shell/scan_ip.sh;;3)/root/shell/passwd_test.sh;;4)/root/shell/ngnix_test.sh;;5)echo "退出"exit;;*)echo "1-4"esac
done

示例3:使用awk获取

case $options in1)memory_monitor(){total=`free -m |grep Mem |awk '{print $2}'`used=`free -m |grep Mem |awk '{print $3}'`use_rate=`echo "scale=2;$used/$total" |bc`result=`echo "$use_rate>0.8" |bc`if(( $result == 1 ))thenecho "内存使用率大于80%!!!"elseecho "内存使用状态良好!"fi}memory_monitor;;

知识点2 user group 用户与组

知识点2.1

id 查看
useradd 创建
userdel 删除
passwd 创建用户密码
su 切换用户
usermod 更改用户信息

知识点2.2 为什么要引入这个用户和组?

1、安全性
2、权限管理
3、资源管控

对文件的访问,读写可以管控
对进程的管理 --> 谁可以管理

知识点2.3 用户和组

每个用户有一个唯一的UID
每个组也有一个唯一的GID

一个用户可以属于不同组
一个组可以有不同用户 # 注:多对多的关系

用户和组 --> 权限资源管控
用户加入组,就可以有这个组的权限
默认情况下,创建用户,会添加一个和用户同名的组

[root@sanchuang-linux ~]# id chenpeng           # 注:id查看用户和组信息
uid=1030(chenpeng) gid=1030(chenpeng) 组=1030(chenpeng)
[root@localhost ~]# useradd sanchuang
[root@localhost ~]# id sanchuang
uid=1000(sanchuang) gid=1000(sanchuang) 组=1000(sanchuang)
[root@localhost ~]# less /etc/passwd
[root@localhost ~]# less /home/sanchuang/
[root@localhost ~]# passwd sanchuang
更改用户 sanchuang 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[sanchuang@localhost ~]$       # 注:登录后默认位置为用户家目录(使用用户sanchuang登录)
[root@localhost ~]# less /etc/shadow           # 注:shadow存放的是用户的密码信息
[root@localhost ~]# less /etc/shadow
shadow   shadow-
[root@localhost ~]# less /etc/passwd
passwd   passwd-
[root@localhost ~]# diff /etc/passwd /etc/passwd-  # 注:passwd-备份文件,每次都会少一个最新的操作
21d20                                       # 注:可以回滚上一个版本
< sanchuang:x:1000:1000::/home/sanchuang:/bin/bash
[root@localhost ~]# diff /etc/shadow /etc/shadow-  # 注:shadowd-备份文件,每次都会少一个最新的操作
21d20                                       # 注:可以回滚上一个版本
< sanchuang:$6$dKQsah/D$6sm6owwvDEnVs8BclDWQZ7meYSaMf5Y7AofxzxwxO0PPrvzqHHVCer1G656iY2gE.sUOarUl9beKi2usYdATQ1:18571:0:99999:7:::
[root@localhost ~]# less /etc/group                # 注:存放组信息
[root@localhost ~]# less /etc/gshadow              # 注:存放组密码信息[root@localhost ~]# cd /home/sanchuang/          # 注:新建用户,有三个隐藏文件
[root@localhost sanchuang]# ls
[root@localhost sanchuang]# ls -al     # 注:新建用户帐号时,从 /etc/skel 目录中复制而来
总用量 12
drwx------. 2 sanchuang sanchuang  62 11月  5 10:25 .
drwxr-xr-x. 3 root      root       23 11月  5 10:25 ..
-rw-r--r--. 1 sanchuang sanchuang  18 4月   1 2020 .bash_logout
-rw-r--r--. 1 sanchuang sanchuang 193 4月   1 2020 .bash_profile
-rw-r--r--. 1 sanchuang sanchuang 231 4月   1 2020 .bashrc
[root@localhost sanchuang]# cd /etc/skel/          # 注:模板,拷贝一份过去
[root@localhost skel]# ls -al
总用量 24
drwxr-xr-x.  2 root root   62 10月  6 16:33 .
drwxr-xr-x. 77 root root 8192 11月  5 10:27 ..
-rw-r--r--.  1 root root   18 4月   1 2020 .bash_logout
-rw-r--r--.  1 root root  193 4月   1 2020 .bash_profile
-rw-r--r--.  1 root root  231 4月   1 2020 .bashrc[root@localhost skel]# less /etc/login.defs       # 注:关于账户的设置信息
# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000                   # 注:最多可以创建59000个用户
UID_MAX                 60000
# System accounts
SYS_UID_MIN               201
SYS_UID_MAX               999[root@localhost skel]# ls /etc/group              # 注:组也有备份文件
group   group-
[root@localhost skel]# ls /etc/gshadow
gshadow   gshadow-  [root@localhost spool]# cd /var/spool/mail/        # 注:邮件目录
[root@localhost mail]# ls                  # 注:/var/spool/mail/ 下创建一个同名的文件
sanchuang[sanchuang@localhost ~]$ less /etc/shadow         # 注:普通用户没有权限查看 /etc/shadow存放密码信息
/etc/shadow: 权限不够                           # 注:只有root用户可读

知识点2.4 用户创建牵扯到哪些文件

账户信息相关文件
·/etc/passwd --> 存放用户相关信息的
·/etc/shadow --> 存放用户密码

·/etc/passwd- 和 /etc/shadow- 这是/etc/passwd 和 /etc/shadow的备份文件,总是比原文件少一次操作

组相关文件
·/etc/group --> 存放组信息的
·/etc/gshadow --> 存放组密码的

·/etc/group- 和 /etc/gshadow- 备份文件

用户环境默认设置
·创建用户时,会拷贝/etc/skel/下的文件到用户的家目录

用户的家目录
·默认情况下会在/home目录下创建一个同名文件夹

用户默认属性设置文件
·/etc/login.defs

邮件目录
·/var/spool/mail/ 下创建一个同名的文件

知识点2.5 /etc/passwd 文件详解

[root@localhost mail]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
sanchuang:x:1000:1000::/home/sanchuang:/bin/bash

·使用:分隔
·字段1:用户名
·字段2:密码占位符,通常为“x”或者“*”(因为这个文件谁都可读,所以真正的密码存放在/etc/shadow)
·字段3:用户id
·字段4:用户所属基本组id
·字段5:用户描述信息 # 注:新建用户没有设置一般没有
·字段6:家目录 # 注:家目录的绝对路径
·字段7:登录shell的信息

练习2.6 找出系统中uid大于1000的用户,显示出它的名字,UID,家目录,shell

[root@sanchuang-linux ~]# awk -F: '$3>1000{print $1,$3,$6,$7}' /etc/passwd
chenpeng 1030 /home/chenpeng /bin/bash#注:使用cat和直接使用awk消耗内存差不多
#注:语法:awk 选项 ‘模式+动作’ 文件      # 注:不接模式的话 全文截取

练习2.7 找出/etc/passwd中有几种shell信息

知识点2.8 useradd详解
Shell设置

[root@sanchuang-linux ~]# awk -F: '{print $7}' /etc/passwd |sort|uniq     # 注:排序去重
/bin/bash       # 注:系统默认用户的shell环境信息 --> 正常使用的shell
/bin/sync       # 注:将内存里的缓存刷新到磁盘 --> 类似于Python中fp.flush()
/sbin/halt  # 注:登陆就关机
/sbin/nologin   # 注:用户不能登录
/sbin/shutdown  # 注:登陆就关机

知识点3 用户和组的关系

·每个账户有一个唯一的UID
·每个组也有一个唯一的GID
·多个账户可以属于同一个组

知识点4 用户和组的相关文件

和账户相关文件
·/etc/passwd、/etc/shadow
和组相关文件
·/etc/group、/etc/gshadow
账户宿主目录中文件来源
·新建用户帐号时,从 /etc/skel 目录中复制而来
默认账户的属性文件
·/etc/login.defs
用于保存用户的帐号基本信息
·文件位置:/etc/passwd
·每一行对应一个用户的帐号记录

·字段1:用户帐号的名称
·字段2:用户密码字串或者密码占位符“x”
·字段3:用户帐号的UID号
·字段4:所属基本组帐号的GID号
·字段5:用户描述信息
·字段6:家目录
·字段7:登录Shell信息

知识点5 用户和组的相关文件

用户账户:
·超级用户root
·程序用户
·普通用户
UID (User Identity,用户标识号)
·超级用户root的UID为0
·程序用户的UID1-999
·普通用户的UID大于等于1000

知识点6 添加与删除用户

useradd命令
·格式:useradd [选项]… 用户名
常用命令选项
·-u:指定 UID 标记号
·-d:指定宿主目录,缺省为 /home/用户名
·-e:指定帐号失效时间
·-g:指定用户的基本组名(或GID号)
·-G:指定用户的附加组名(或GID号)
·-M:不为用户建立并初始化宿主目录
·-s:指定用户的登录Shell
·-c:用户注释描述信息
·-r: 新建系统用户,不会有新建家目录

#注:每次新建用户,uid都会在上一个用户uid基础上+1
#注:默认新建用户从1001开始

Shell设置
/bin/bash # 注:系统默认用户的shell环境信息 --> 正常使用的shell
/bin/sync # 注:将内存里的缓存刷新到磁盘 --> 类似于Python中fp.flush()
/sbin/halt # 注:登陆就关机
/sbin/nologin # 注:用户不能登录,ssh和su都不能登陆
/sbin/shutdown # 注:登陆就关机

示例:-s /sbin/nologin

#注:本机用来跑服务的,不能登录
[root@localhost mail]# useradd -s /sbin/nologin sanchuang2
[root@localhost mail]# echo 123456|passwd sanchuang2 --stdin
更改用户 sanchuang2 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost mail]# ssh sanchuang2@192.168.136.136 #注:ssh 登录本机sanchuang2
……………………………………
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.136.136' (ECDSA) to the list of known hosts.
sanchuang2@192.168.136.136's password:
This account is currently not available.    # 注:提示用户不可达,因为sanchuang2的Shell是nologin,不能直接登录
Connection to 192.168.136.136 closed.
[root@localhost ~]# su - sanchuang2        # 注:不能切换
上一次登录:四 11月  5 11:49:14 CST 2020从 192.168.136.136pts/2 上
This account is currently not available.
[root@localhost ~]# usermod -s /bin/bash sanchuang2     # 注:usermod -s 更改用户的shell信息
[root@localhost ~]# cat /etc/passwd|grep sanchuang2
sanchuang2:x:1001:1001::/home/sanchuang2:/bin/bash

练习6.2 显示出系统中uid大于1000并且用户名包含sanchuang的用户信息(用户名,用户Id,用户家目录)

[root@localhost ~]# awk -F: '$3>1000{print $1,$3,$6}' /etc/passwd
sanchuang2 1001 /home/sanchuang2

方法1

[root@localhost ~]# awk -F: '$3>1000{print $1,$3,$6}' /etc/passwd |grep sanchuang
sanchuang2 1001 /home/sanchuang2

方法2

[root@localhost ~]# awk -F: '$3>1000 && $1 ~ /sanchuang/{print $1,$3,$6}' /etc/passwd
sanchuang2 1001 /home/sanchuang2            # 注:$1 ~ /sanchuang/ 匹配sanchuang

知识点7 进程

进程:正在运行中的程序
程序:代码集合,放在磁盘上的

进程是计算机进行资源分配的基本单位
进程的组成核心:进程控制块(PCB)
PCB一般包括
1、pid 进程唯一标识符
2、有效用户信息 -euid,egid(通常情况下就是uid,gid) # 注:就是进程属于哪个用户
3、程序的状态
4、程序的优先级
5、程序的上下文

知识点8 Python中使用os模块查看当前进程的用户信息

>>> import os
>>> os.geteuid()                   # 注:获取当前进程用户的用户uid信息
0                               # 注:为0的都是root用户  root用户的uid
>>> os.getuid()                    # 注:通常情况下,uid和euid都是一样的
0

普通用户导入 os模块

[sanchuang2@localhost ~]$ python3
>>> import os
>>> os.geteuid()
1001
>>> os.getuid()
1001
[sanchuang2@localhost ~]$ id sanchuang2
uid=1001(sanchuang2) gid=1001(sanchuang2) 组=1001(sanchuang2)

知识点9 ftp协议(文件传输协议)

vsftpd服务与本地用户
ftp的服务 做文件传输的,上传或下载一个文件到指定的地方
ftp是一个文件传输服务,主要用于上传和下载文件,实现文件共享

匿名用户和本地用户都可以登录ftp服务,它们登录进去之后只能操作家目录下的文件或者文件夹
三种用户:
1、匿名用户
2、本地用户
3、虚拟用户

1、服务安装

[root@sanchuang-linux ~]# yum install vsftpd

2、启动服务

[root@sanchuang-linux ~]# service vsftpd restart
Redirecting to /bin/systemctl restart vsftpd.service
[root@sanchuang-linux ~]# ps -ef |grep vsftp           # 注:默认root用户启动
root        3377       1  0 14:51 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root        3379    3184  0 14:52 pts/1    00:00:00 grep --color=auto vsftp

3、安装客户端
#注:centos8里vsftpd服务默认不允许匿名用户登录
使用匿名用户(ftp)登录的话,修改/etc/vsftpd/vsftpd.conf里的配置 anonymous_enable=YES
#注:修改完配置文件重启vsftpd服务

登录上去之后,默认读取系统中ftp这个用户的家目录文件

[root@sanchuang-linux ~]# yum install lftp -y           # 注:lftp是vsftpd的客户端
[root@sanchuang-linux ~]# yum install ftp  -y          # 注:ftp也是vsftpd的客户端
#注:这两个都是ftp的客户端
[root@sanchuang-linux ~]# lftp ftp@192.168.0.27        # 注:以ftp用户取登录程序
密码:                                             # 注:ftp是默认用户
[root@localhost ~]# ftp 192.168.136.136                # 注:登录ftp服务
………………………………
Name (192.168.136.136:root): ftp                        # 注:匿名用户ftp登录
331 Please specify the password.
Password:                                           # 注:回车
230 Login successful.
………………………………
ftp>
[root@sanchuang-linux ~]# cat /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin         # 注:vsftpd的匿名用户,公共用户
#注:/var/ftp  ftp这个用户的家目录文件
[root@sanchuang-linux ~]# vim /etc/vsftpd/vsftpd.conf   # 注:Centos8中开启匿名用户允许登录
anonymous_enable=YES                               # 注:centos7不用设置
#注:修改完配置文件重启vsftpd服务

登录上去之后,默认读取系统中ftp这个用户的家目录文件
/var/ftp

[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# cd pub
[root@localhost pub]# ls                   # 注:/var/ftp/pub/下为空
[root@localhost pub]# touch aa bb          # 注:创建文件aa bb
ftp> ls                                   # 注:当前路径 /var/ftp
…………………………
drwxr-xr-x    2 0        0              26 Nov 05 07:20 pub
ftp> cd pub
…………………………
ftp> ls                                  # 注:显示出文件aa bb
…………………………
-rw-r--r--    1 0        0               0 Nov 05 07:20 aa
-rw-r--r--    1 0        0               0 Nov 05 07:20 bb
226 Directory send OK.
ftp> get aa                               # 注:下载文件
local: aa remote: aa
…………………………
ftp> !ls                                 # 注:查看当前所在系统命令有哪些文件
aa   addstr.py
ftp> !pwd                                    # 注:查看当前所在系统命令路径
/root
#注:匿名用户不能上传
[root@localhost ~]# ftp 192.168.136.136
Name (192.168.136.136:root): sanchuang      # 注:本地用户sanchuang登录
Password:
230 Login successful.                       # 注:230 代表登录成功
ftp> put first.py                             # 注:上传文件
local: first.py remote: first.py                # 注:匿名用户不能上传
…………………………
1097 bytes sent in 0.0157 secs (69.83 Kbytes/sec)
ftp> ls
…………………………
-rw-r--r--    1 1000     1000         1097 Nov 05 07:34 first.py
226 Directory send OK.
[root@localhost pub]# less /etc/services            # 注:# less /etc/services 查看默认端口号
ftp             21/tcp                          # 注:ftp服务默认是21号端口
ftp             21/udp          fsp fspd

知识点9.2

匿名用户和本地用户都可以登录ftp服务,它们登录进去之后只能操作家目录下的文件或者文件夹
三种用户:
1、匿名用户
2、本地用户
3、虚拟用户

知识点9.3 ftp常用命令

ftp常用命令:
上传文件:put # 注:匿名用户不能上传
下载文件:get
查看:ls
切换路径:cd

* 知识点9.4 ftp的2种工作模式

ftp的2种工作模式(面试)
问的时候:总结(要提到端口号)
主动模式和被动模式都会开启21号端口进行连接
区别是数据连接的方式
主动模式:服务器主动开启20号端口去和客户机主动建立数据连接,传输数据
被动模式:客户机拿到随机开放端口后向服务器进行一个数据传输,客户端向这个随机端口去建立连接,进行数据传输

1、主动模式(默认情况下是主动模式)

  1. 客户端登录时请求ftp服务器 命令连接端口(21号端口)
  2. 21号端口返回信息登录成功或者登录失败
  3. 登录成功后客户端请求传输数据(对21号端口发起一个请求),开启一个随机端口
  4. 服务器主动开启它的20号端口去把它的数据传递给客户端的随机端口
    服务器主动开启20号端口,向客户机主动发送数据

2、被动模式

  1. 客户端登录时请求ftp服务器 开启 命令连接端口(21号端口)
    #注:21号端口都是用来做命令连接的
  2. 21号端口返回信息登录成功或者登录失败
  3. 客户机请求数据传输(客户机向服务器请求数据传输时,向服务器发送一个pasv命令,告诉服务器端要以被动模式取接收命令。这时服务器端就开放一个端口,可以指定范围,返回给客户机,把这个端口号返回给客户端)
  4. 收到服务器开放端口号
  5. 开始连接服务器端口,进行数据传输(和5555号端口建立连接)
    假设开放的是5555,服务器就会把5555端口起来,端口处于监听状态,别人就可以连接过来,就可以和这个主机建立连接,就可以通过5555号端口传递数据

无论主动模式,还是被动模式,21号端口都必须起来
主动模式20号端口起来,被动模式20号端口不一定起来

知识点10 usermod userdel

usermod命令
格式:usermod [选项]… 用户名
常用命令选项
·-l:更改用户帐号的登录名称
·-L:锁定用户账户
·-U:解锁用户账户
·以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s

userdel命令
·格式:userdel [-r] 用户名
·添加 -r 选项时,表示连用户的宿主目录一并删除 # 注:建议接上

示例

[root@localhost ~]# useradd stu01
[root@localhost ~]# ls -ld /home/stu01/
drwx------ 2 stu01 stu01 4096 09-09 12:38 /home/stu01/
[root@localhost ~]# userdel -r stu01               # 注:删除用户帐号stu01
[root@localhost ~]# ls -ld /home/stu01/
ls: /home/stu01/: 没有那个文件或目录

知识点10 useradd命令

useradd命令
·格式:useradd [选项]… 用户名
常用命令选项
·-u:指定 UID 标记号
·-d:指定宿主目录,缺省为 /home/用户名
·-e:指定帐号失效时间
·-g:指定用户的基本组名(或GID号) # 注:基本组只能有一个
·-G:指定用户的附加组名(或GID号) # 注:附加组可以用很多个 无论基本组/附加组 用户都可以获得所有权限
·-M:不为用户建立并初始化宿主目录
·-s:指定用户的登录Shell
·-c:用户注释描述信息
·-r: 新建系统用户,不会有新建家目录

知识点11 用户

用户账户:
·超级用户root # 注:拥有最高权限
·程序用户 # 注:程序运行过程中需要使用的用户
·普通用户 # 注:手动创建的用户
UID (User Identity,用户标识号)
·超级用户root的UID为0
·程序用户的UID 1-999
·普通用户的UID大于等于1000

示例:mysql uid

[root@localhost ~]# id mysql
uid=1000(mysql) gid=1000(mysql) 组=1000(mysql)
[root@localhost ~]# id sanchuang2
uid=1001(sanchuang2) gid=1001(sanchuang2) 组=1001(sanchuang2)

示例

#注:默认情况不指定uid 在上一个用户前+1
[root@localhost ~]# useradd -u 1100 chenpeng1          # 注:指定用户id
[root@localhost ~]# id chenpeng1
uid=1100(chenpeng1) gid=1100(chenpeng1) 组=1100(chenpeng1)
[root@localhost ~]# useradd -u 1101 -g 1100 chenpeng2  # 注:指定用户id、基本组
[root@localhost ~]# id chenpeng2                   # 注:在chenpeng1这个组里面
uid=1101(chenpeng2) gid=1100(chenpeng1) 组=1100(chenpeng1)

示例

[root@localhost ~]# usermod -u 1200 chenpeng2           # 注:修改用户id
[root@localhost ~]# id chenpeng2
uid=1200(chenpeng2) gid=1100(chenpeng1) 组=1100(chenpeng1)

示例

[root@localhost ~]# useradd -d /var/log/sanchuang6 sanchuang6   # 注:指定用户家目录
[root@localhost ~]# cd /var/log/sanchuang6/
[root@localhost sanchuang6]# ls
[root@localhost sanchuang6]# less /etc/passwd
sanchuang6:x:1201:1201::/var/log/sanchuang6:/bin/bash   # 注:第6列 用户家目录

示例:指定附加组

[root@localhost sanchuang6]# useradd -g chenpeng1 -G sanchuang,sanchuang2 sanchuang7
[root@localhost sanchuang6]# id sanchuang7
uid=1202(sanchuang7) gid=1100(chenpeng1) 组=1100(chenpeng1),1000(sanchuang),1001(sanchuang2)
#注:基本组chenpeng1  附属组 sanchuang  sanchuang2
#注:-g指定基本组  -G指定附加组

·-c:用户注释描述信息
/etc/passwd 第5列可以查看描述信息

知识点11.2 userdel 删除用户

userdel命令
格式:userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除

示例1

[root@localhost ~]# useradd stu01
[root@localhost ~]# ls -ld /home/stu01/
drwx------ 2 stu01 stu01 4096 09-09 12:38 /home/stu01/
[root@localhost ~]# userdel -r stu01                       # 注:删除用户帐号stu01
[root@localhost ~]# ls -ld /home/stu01/
ls: /home/stu01/: 没有那个文件或目录

示例2

[root@localhost sanchuang6]# userdel sanchuang7
[root@localhost sanchuang6]# less /etc/passwd              # 注:删除了
[root@localhost sanchuang6]# cd /home/sanchuang7           # 注:没删
[root@localhost sanchuang7]# ls /var/spool/mail/sanchuang7 # 注:没删
/var/spool/mail/sanchuang7

知识点12 usermod 用户修改

usermod命令
格式:usermod [选项]… 用户名
常用命令选项
·-l:更改用户帐号的登录名称
·-L:锁定用户账户
·-U:解锁用户账户
·以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s

示例:-L:锁定用户账户

#注:锁上之后不能密码登录
#注:本质就是在shadow密码前面加一个!号,使得登录的时候密码验证失败
[root@localhost sanchuang7]# id sanchuang6
uid=1201(sanchuang6) gid=1201(sanchuang6) 组=1201(sanchuang6)
[root@localhost sanchuang7]# usermod -L sanchuang6     # 注:锁定用户账户
[root@localhost sanchuang7]# less /etc/shadow          # 注:密码密文前面加了1个感叹号
chenpeng2:!$6$P3yFUy.H$UOfUIbl8V3h1ng4J/OdVV1aWc3Cx3s5bldkysl33aDyrigsgK0VQ3nzrC4mojDNotpE9w61NbVQmZFqDDRfpl.:18571:0:99999:7:::
[root@localhost sanchuang7]# diff /etc/shadow /etc/shadow-
25c25
< chenpeng2:!$6$P3yFUy.H$UOfUIbl8V3h1ng4J/OdVV1aWc3Cx3s5bldkysl33aDyrigsgK0VQ3nzrC4mojDNotpE9w61NbVQmZFqDDRfpl.:18571:0:99999:7:::
---
> chenpeng2:$6$P3yFUy.H$UOfUIbl8V3h1ng4J/OdVV1aWc3Cx3s5bldkysl33aDyrigsgK0VQ3nzrC4mojDNotpE9w61NbVQmZFqDDRfpl.:18571:0:99999:7:::
#注:sha512加密技术  密文 明文
[root@localhost ~]# ssh chenpeng2@192.168.0.188
chenpeng2@192.168.0.188's password:                   # 注:锁上之后不能密码登录
Permission denied, please try again.
…………………………
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

知识点13 /etc/shadow

用于保存密码字串、密码有效期等信息
·文件位置:/etc/shadow
·每一行对应一个用户的密码记录

·字段1:用户帐号的名称
·字段2:加密的密码字串信息
·字段3:上次修改密码的时间
·字段4:密码的最短有效天数,默认值为0
·字段5:密码的最长有效天数,默认值为99999
·字段6:提前多少天警告用户口令将过期,默认值为7
·字段7:在密码过期之后多少天禁用此用户
·字段8:帐号失效时间,默认值为空
·字段9:保留字段(未使用)

知识点14 passwd命令

passwd命令
·格式:passwd [选项]… 用户名
常用命令选项
·-d:清空用户的密码,使之无需密码即可登录
·-l:锁定用户帐号
·-S:查看用户帐号的状态(是否被锁定)
·-u:解锁用户帐号
·–stdin:接收别的命令stdout做为stdin标准输入设置密码

root用户可以修改所有用户密码,不要求复杂性
普通用户只能改自己的密码,要求复杂性

示例

[root@localhost sanchuang7]# passwd -d sanchuang6       # 注:清空用户密码
清除用户的密码 sanchuang6。
passwd: 操作成功
[root@localhost sanchuang7]# useradd sanchuang5        # 注:注册 未给密码
[root@localhost mail]# less /etc/shadow
sanchuang6::18571:0:99999:7:::                      # 注:清除用户密码,密码字段为空
sanchuang5:!!:18571:0:99999:7:::                        # 注:未给密码 密码字段默认2个感叹号

#usermod和passwd锁定账户都是修改账户的shadow加密字段信息,使他们登录的时候密码匹配不上,达到一个锁定状态
#usermod 加一个!号
#passwd -d 加两个!
#注:查看用户有没有设置密码 看/etc/shadow信息

示例:usermod -L 和 passwd -d

[root@localhost mail]# useradd chen001
[root@localhost mail]# useradd chen002
[root@localhost mail]# useradd chen003
[root@localhost mail]# echo 123456|passwd chen001 --stdin
[root@localhost mail]# echo 123456|passwd chen002 --stdin
[root@localhost mail]# echo 123456|passwd chen003 --stdin
[root@localhost mail]# usermod -L chen002              # 注:chen002做 usermod -L 操作
[root@localhost mail]# passwd -d chen003               # 注:chen003做 passwd -d  操作
清除用户的密码 chen003。
passwd: 操作成功
[root@localhost mail]# less /etc/shadow
chen001:$6$y……k1q.yk8U1gOGp/:18571:0:99999:7:::
chen002:!$6$u……YF0.:18571:0:99999:7:::
chen003::18571:0:99999:7:::
[root@localhost ~]# ssh chen003@192.168.136.136        # 注:登录不上去
chen003@192.168.136.136's password:
…………
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[root@localhost ~]# ssh chen002@192.168.136.136       # 注:登录不上去
chen002@192.168.136.136's password:
…………
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[root@localhost ~]# ssh chen001@192.168.136.136       # 注:没做操作的 远程登录成功
chen001@192.168.136.136's password:
[chen001@localhost ~]$

16_linux笔记-用户与组相关推荐

  1. linux用户群组实验总结,linux基础概念和个人笔记总结(2)——账号和权限管理实验验证...

    特此感谢! 教员:张仁珑 班主任:傅春华 我想给予他们最崇高的敬意 防伪码:滴水之恩,涌泉相报 感想:当我今天在首页上看到了自己发的文章,这是我的第九篇文档,觉得心里特别开心,也真正理解了 " ...

  2. 《网络安全工程师笔记》 第五章:用户与组管理

    注:本笔记来自温晓飞老师的网络安全课程 第五章:用户与组管理 第一章:虚拟化架构与系统部署 第二章:IP地址详解 第三章:进制转换 第四章:DOS基本命令与批处理 第五章:用户与组管理 第六章:服务器 ...

  3. RHCE 学习笔记(5)- 本地用户和组的管理

    这一节跟老师学习了RHEL7的用户管理 在windows里面,用户信息和密码是保存C:\windows\system32\config\sam 中,类似的,RHEL是将信息保存在 /etc/passw ...

  4. 《Linux网络管理应用 大学笔记 》- 初学者 - 用户和组的管理

    Linux中用户和组的管理 了解用户和组群配置文件. 熟练掌握Linux下用户账户与密码的创建与管理. 熟悉掌握Linux下组群的创建.管理和维护 一 : 对用户账户的理解 1.系统中为什么要定义用户 ...

  5. jbpm 和 drools_jBPM和Drools工作台中的用户和组管理

    jbpm 和 drools 介绍 本文讨论了一项新功能,该功能允许使用集成在jBPM和Drools Workbenches中的直观友好的用户界面来管理应用程序的用户和组. 用户和组管理 在安装,设置和 ...

  6. jBPM和Drools工作台中的用户和组管理

    介绍 本文讨论了一项新功能,该功能允许使用集成在jBPM和Drools Workbenches中的直观友好的用户界面来管理应用程序的用户和组. 用户和组管理 在安装,设置和使用此功能之前,本文讨论了一 ...

  7. c语言用户自己建立数据类型,C语言程序设计学习笔记--用户建立数据类型

    C语言程序设计学习笔记--用户建立数据类型. 9.1定义和使用结构体变量 1.定义:C语言允许用户自己建立不同类型数据组合成的组合型数据类型就是结构体 2.形式: struct 结构体名 { 成员表列 ...

  8. linux无法删除用户的组,Linux无法使用userdel删除用户和组的解决办法

    转自:http://www.linuxidc.com/Linux/2013-07/87371.htm 简述: 今天在看书的时候,看到有个实例,手痒痒的跟着做了起来...但是,出现问题了..测试的用户和 ...

  9. 与用户和组相关的配置文件

    目录 前言 一./etc/passwd文件结构 1.查看配置文件帮助信息 2.各字段说明 二./etc/group文件结构 各字段说明 三./etc/shadow文件结构 1.各字段说明 2.部分字段 ...

最新文章

  1. 2021年大数据ELK(十一):Elasticsearch架构原理
  2. c语言函数库哪里keyk,[精品]C语言库函数(字母G-K)-教案.doc
  3. 微信小程序把玩(四)应用生命周期
  4. java神雕侠侣1古墓情缘游戏攻略_《神雕侠侣》古墓派平民玩法攻略
  5. 【转】The underlying connection was closed
  6. Docker入门-架构
  7. c语言中block做函数参数,c语言中的block
  8. 结合中国古典文化取名 华为意在把传说化为现实奇迹
  9. nginx配置和安装
  10. 【知识索引】【Java程序设计】
  11. 大学的最后一年有一门课程叫“人生”。
  12. js 数组 常用方法
  13. java(jeecg框架) 调用CXF WebService接口的两种方式
  14. 分享接手的Android项目如何打包
  15. 美团架构师熬夜整理:Netty权威指南2.0版+英雄传说项目
  16. Could not install from “tippy.js\dist\tippy.css“ as it does not contain a package.json file.
  17. C语言炫酷的文件操作
  18. python培训班深圳-深圳python人工智能培训班
  19. Linux添加环境变量,以配置MySQL环境怕变量为例
  20. zephir-你的第一个PHP拓展

热门文章

  1. Spring Boot Dubbo 入门
  2. frameset框架集实例
  3. SAP中仓库库位冻结导致无法移动物料的实例
  4. 【字节序】大端模式和小端模式
  5. 微信小程序完整脚本源码-20180624版
  6. 「GoCN酷Go推荐」Golang轻量级桌面程序wails2教学
  7. 泡泡猫三线辅助V1.1升级版
  8. 怎么查看自己电脑的IP地址
  9. Linux下JDK1.6升级1.8版本
  10. (六)Python:Pandas中的DataFrame