2018.8.2课堂笔记

article/2025/6/19 11:17:05

一.用户配置文件与密码配置文件

1.1 /etc/passwd是由 “ :” 分割7个字段,每个字段的含义如下:


[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
第1个字段为用户名;
第2个字段为该账号的口令,存储的是密码;
第3个字段为一个数字,这个数字代表用户标识号,也称为“uid”,在这里,用户标识号是从1000开始,如果我们创建一个普通用户,该账号的uid是从1000以后往下排序的;
第4个字段也是数字,该字段标识组标识号,称gid,这个字段对应着/etc/group中的一条记录,其实/etc/group和/etc/passwd相似;
第5个字段标识注释信息;
第6个字段为普通用户的家目录,root的家目录就是/root,普通用户的家目录则/home/username,用户的家目录也是可以修改的,在/etc/passwd配置文件中修改;
第7个字段为用户的shell,用户登录后,要启动一个进程们用来将用户下达的命令传给内核,实现一个交互的作用,这就是shell。

1.2 /etc/shadow含义,专门放用户的密码的配置文件;/etc/shadow与/etc/passwd类似由:分割成9段示例命令如下:

root:$6$zwh0z1JRQZGvf7mF$QL9hItHHPHFQ8SaXwKwiDF2fyuEbcvST5QYJTpdtMutC/vKNnBD5Ulqamzar2Zkc7fMT0mJHF9RR.GkHPeyCl1::0:99999:7:::
bin:*:16659:0:99999:7:::
daemon:*:16659:0:99999:7:::
adm:*:16659:0:99999:7:::
lp:*:16659:0:99999:7:::
sync:*:16659:0:99999:7:::
shutdown:*:16659:0:99999:7:::
halt:*:16659:0:99999:7:::
mail:*:16659:0:99999:7:::
operator:*:16659:0:99999:7:::
games:*:16659:0:99999:7:::
ftp:*:16659:0:99999:7:::
nobody:*:16659:0:99999:7:::
avahi-autoipd:!!:17662::::::
systemd-bus-proxy:!!:17662::::::
systemd-network:!!:17662::::::
dbus:!!:17662::::::
polkitd:!!:17662::::::
tss:!!:17662::::::
postfix:!!:17662::::::
sshd:!!:17662::::::
 

第1个字段为用户名与/etc/passwd对应
第2个字段为用户密码,是该账户的真正密码已经加密
第3个字段为上次更改密码的日期
第4个字段为要过多少天才可以更改密码,默认为0,即不受限制
第5个字段为密码多少天后到期
第6个字段为密码到期前的警告期限
第7个字段为帐号失效期限
第8个字段为帐号的生命周期
第9个字段为保留用的,没有意义.

用户组配置文件:
/etc/group
用户组信息文件
组的名称:密码:组id:用户组成员

322ff680b4b08d78d77992ef74101184141.jpg


组密码文件:/etc/gshadow:

3c72b4532eb46ffd28fb1d9d2f2c929e461.jpg

 

二.用户与用户组管理

2.1用户组管理:

新增组的命令groupadd:
命令groupadd的格式为groupadd [-g GID] groupname示例命令如下:
[root@localhost ~]# groupadd shiyan1
[root@localhost ~]# tail -n1 /etc/group
shiyan1:x:1000:
如果不加-g选项,则按照系统默认的gid创建组。跟uid一样gid也是从1000开始的。我们也可以自定义gid
[root@localhost ~]# groupadd -g 1004 shiyan2
[root@localhost ~]# tail -n2 /etc/group
shiyan1:x:1000:
shiyan2:x:1004:

 

删除组命令groupdel:
groupdel没有特殊情况,但有一种情况无法删除如下所示
[root@localhost ~]# useradd wang -g shiyan1
[root@localhost ~]# groupdel shiyan1
groupdel:不能移除用户“wang”的主组
因为shiyan1组中有一个wang用户,只有删除或转移这个用户才能继续删除.

2.2用户管理:

增加用户的命令useradd:
命令介绍:
useradd 增加用户 格式 : useradd 后面跟想创建的用户名
还有一种给创建的用户,增加组名及家目录什么的;
格式如下:useradd [-u UID] [-g GID] [-d HOME] [-M] [-s] ,
-u 表示自定义UID 
-g 表示使新增用户属于已经存在的某个组,后面可以跟组的id,也可以跟组名
-d 表示自定义目录的家目录
-M 表示不建立家目录
-s 表示自定义shell

 

如果useradd不加任何选项,直接跟用户名,则会创建一个跟用户名同名的组,当然很多时候需要我们自己去定义uid,gid与所属的组:示例命令如下:
[root@localhost ~]# useradd -u 1004 -g 1005 -M -s /sbin/nologin wang3
useradd:“1005”组不存在
[root@localhost ~]# useradd -u 1004 -g 1006 -M -s /sbin/nologin wang3
useradd:“1006”组不存在
[root@localhost ~]# useradd -u 1004 -g 1001 -M -s /sbin/nologin wang3
[root@localhost ~]# useradd-u 1006 -g shiyan1 wang4
-bash: useradd-u: 未找到命令
[root@localhost ~]# useradd -u 1006 -g shiyan1 wang4
[root@localhost ~]# tail -n2 /etc/passwd
wang3:x:1004:1001::/home/wang3:/sbin/nologin
wang4:x:1006:1000::/home/wang4:/bin/bash
[root@localhost ~]# tail -n2 /etc/group
shiyan2:x:1004:
wang2:x:1001:

删除帐号的命令userdel:
格式:userdel [-r] username 
其中-r选项的作用是,当删除用户时,一并删除用户的家目录。
我们先来查看wang4的家目录示例命令如下:

[root@localhost ~]# ls -ld /home/wang4
drwx------ 2 wang4 shiyan1 59 5月  21 17:21 /home/wang4
[root@localhost ~]# userdel wang4
[root@localhost ~]# ls -ld /home/wang4/
drwx------ 2 1006 shiyan1 59 7月  31 17:21 /home/wang4/

这里只删除了用户并没有删除这个用户下的家目录
 

 

usermod 设置扩展组:
概念:更改用户属性的一个命令。
用法:usermod [选项] 后面跟你需要操作的内容 [用户名]

  •  创建用户不指定ID,会根据最后一名用户ID来递增
  •  创建用户不指定组,会创建同名组。组的ID和用户ID一致;但是,如果组ID同已有组冲突则会根据上一个自定义组ID来递增。

选项:
  -c,    --comment 注释            GECOS 字段的新值
  -d,   --home HOME_DIR           用户的新主目录
  -e,   --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
  -f,    --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
  -g,   --gid GROUP               强制使用 GROUP 为新主组
  -G,  --groups GROUPS           新的附加组列表 GROUPS
  -a,  --append GROUP            将用户追加至上边 -G 中提到的附加组中,
  -l, --login LOGIN             新的登录名称
  -L, --lock                    锁定用户帐号
  -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
  -o, --non-unique              允许使用重复的(非唯一的) UID
  -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL             该用户帐号的新登录 shell
  -u, --uid UID                 用户帐号的新 UID
  -U, --unlock                  解锁用户帐号
  -Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射

 

举个例子,我们先来查看一下wang4的uid和gid还有扩展组:
[root@localhost ~]# id wang4
uid=1006(wang4) gid=1000(shiyan1) 组=1000(shiyan1)
然后在这里,我们想让wang4再属于另外一个组,叫扩展组:
[root@localhost ~]# usermod -G shiyan2 wang4
[root@localhost ~]# id wang4
uid=1006(wang4) gid=1000(shiyan1) 组=1000(shiyan1),1004(shiyan2)

三.用户密码管理

如何设置用户密码,格式 passwd [username] (这里username填写你的用户),假设新建一个用户wang6
[root@localhost ~]# useradd wang6
[root@localhost ~]# passwd wang6
更改用户 wang6 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
在这里,只有root才可以修改其他账户的密码,普通账户只能修改自己的密码。

我们可以用tail命令查看配置文件后十行信息
[root@localhost ~]# tail /etc/shadow
systemd-bus-proxy:!!:17662::::::
systemd-network:!!:17662::::::
dbus:!!:17662::::::
polkitd:!!:17662::::::
tss:!!:17662::::::
postfix:!!:17662::::::
sshd:!!:17662::::::
wang:!!:17672:0:99999:7:::
wang4:!!:17672:0:99999:7:::
wang6:$6$a/1GugZW$S68ubfIEjVsA0k8dLCigAAaJpgHEL0PpaPDXUpDMZlA4K4MuHwHf7lZ0N1VhjsQCtMwyRqtKGg//D5PTY5J1S0:17672:0:99999:7:::
这里我们可以看见有加密的字符串,这里是设置过密码的用户,然后"!!"表示密码为空。

 

如何锁定一个用户登录,-l,-L两种选项
[root@localhost ~]# passwd -l wang4
锁定用户 wang4 的密码 。
passwd: 操作成功
[root@localhost ~]# tail -n2 /etc/shadow
wang4:!!:17672:0:99999:7:::
wang6:$6$a/1GugZW$S68ubfIEjVsA0k8dLCigAAaJpgHEL0PpaPDXUpDMZlA4K4MuHwHf7lZ0N1VhjsQCtMwyRqtKGg//D5PTY5J1S0:17672:0:99999:7:::
注意,在这里 密文密码前方有2个“!”,表示锁定用户。
如何解锁一个用户登录,-u,-U两种选项
[root@localhost ~]# passwd -u wang6
解锁用户 wang6 的密码。
passwd: 操作成功
[root@localhost ~]# tail -n2 /etc/shadow
wang4:!!:17672:0:99999:7:::
wang6:$6$a/1GugZW$S68ubfIEjVsA0k8dLCigAAaJpgHEL0PpaPDXUpDMZlA4K4MuHwHf7lZ0N1VhjsQCtMwyRqtKGg//D5PTY5J1S0:17672:0:99999:7:::
注意看,这里密文前面没有“!”,表示解锁成功。

--stdhin的用法,用passwd直接修改wang6用户的密码
[root@localhost ~]# passwd --stdin wang6
更改用户 wang6 的密码 。
wangwangwang
passwd:所有的身份验证令牌已经成功更新。
--stdin是用来强制设定一个用户的密码

用echo,通过管道符一条命令设置密码
[root@localhost ~]# echo "wangwangwang"|passwd --stdin wang6
更改用户 wang6 的密码 。
passwd:所有的身份验证令牌已经成功更新。
这条命令的含义是,echo(显示) “123123” 通过管道符,把前面命令的结果,传递(输出)给后面的命令。

mkpasswd命令:
首先安装一个expect包,这个包可以实现随机的字符串
[root@localhost ~]#yum install -y expect
[root@localhost ~] mkpasswd 
?UnsAu31b
这个就是随机生成的字符串了

我们也可以指定密码长度。-l

[root@localhost ~]# mkpasswd -l 20
m2zov@itxghcwIVq2spe
 

我们还可以指定密码长度同时指定有几个特殊字符和数字

[root@localhost ~]# mkpasswd -l 20 -s 2 -d 3
Rz1Eyxm83at]iv=itixm
这里-l表示字节,-s表示特殊符号,-d表示有几个数字。

# yum intstall -y expect  # 安装工具
# mkpasswd
\vw1SG3wf                   # 默认长度9
# mkpasswd -l 12
ooWpxgm4c)1Q                # 指定长度12
# mkpasswd -l 12 -s 4
ht>3^!d<PB9c                # 指定长度12,指定特殊符号4

# 简单说明
# mkpasswd -l(长度) 12 -s(字符) 4 -C(大写) 1 -c(小写) 1 -d(数字) 1

 

四.切换用户与限制远程登录

su命令:

格式:su [-] username
后面可以跟-,也可以不跟,加上-之后可以彻底切换过去,包括把各种变量也切换过去。
切换用户
[root@localhost ~]# su - wang6
[wang6@localhost ~]$ 
如何切换用户的同时执行一条命令呢 su - -c “命令” 用户
[root@localhost ~]# su --c "touch /tmp/wang.txt" wang6
[root@localhost ~]# su - wang6
上一次登录:一 5月 21 19:10:27 CST 2018pts/0 上

sudo命令 指定命令:
概念:使用sudo命令执行一个只有root才能执行的命令,仅此一个。
但是还是需要输入密码,这个密码是用户本身的密码。
只有root用户才能使用sudo命令,普通用户想要使用sudo是需要root预先设定的,我们可以使用visudo命令编辑相关的配置文件,/etc/sudiers。

安装命令:yum install -y sudo

如何设定一个用户临时拥有sudo命令,需要root预先设定
首先查看sudo的配置文件
visdo #查看这个配置文件直接在里面编辑
找到,root ALL=(ALL)   ALL这一行          (:set nu 显示行数),
输入i进入编辑模式,编辑完后,按ESC 再输入:wq保存退出。
这里,后面的是要写绝对路径,用逗号分隔后,后面需要加一个空格。
在下一行添加一个用户临时拥有root权限,第一个ALL默认模仿上面的,括号里面的是用户,将被授予哪个用户的权限,默认就可以了,
第二个ALL 是所有的命令。


限制root远程登陆
只可以限制远程登陆。
远程服务的配置文件在 /etc/ssh/sshd_config,sshd服务配置文件
修改配置文件:
[root@localhost ~]# vi /etc/ssh/sshd_config
在这里找到permintRootlogin 把#去掉把yes改成no 禁止root用户登陆
最后重启服务
[root@localhost ~]# systemctl restart sshd.service
然后就远程登陆不上了.

 

转载于:https://my.oschina.net/u/3856250/blog/1921408


http://chatgpt.dhexx.cn/article/2AYl6Y3x.shtml

相关文章

python爬虫反虫之setcookie

作者原文传送littleywww.littley.top 反爬表现 在使用python或rust进行爬虫的时候的有时会遇到请求返回一段含有只含有js代码的html页面如图&#xff1a; 分析及优化文件 首先解决转义字符\x63\x73\x4b&#xff0c;转义字符可以通过console.log()打印出来&#xff0c;最方…

java 数据抓取 动态获得cookies里变动的属性_Java爬取CSDN博客遇到setCookie问题

最近有一个需求就是爬取CSDN上的数据&#xff0c;但是目前遇到了一个问题就是关于获取CSDN的cookie的问题。到目前为止并没有什么好的办法。希望大家可以给我留言&#xff0c;我们一起探讨。。 在我没有设置cookie的时候&#xff0c;会报以下错误。 function setCookie(name,va…

js的cookie操作

cookie.js: //这个cookie的js代码借用的老外的&#xff0c;我加了中文注释--原文:http: //www.echoecho.com/jscookies02.htm ///设置cookie function setCookie(NameOfCookie, value, expiredays) { //参数:三个变量用来设置新的cookie: //cookie的名称,存储的Cookie值, …

蓝牙 宽带通话 (wide band speech)WBS 剖析(一) -- profile层

一.概述 WBS&#xff08;wide band speech&#xff09;通俗来讲就是蓝牙宽带通话&#xff0c;通话数据frequency 16K&#xff0c;采用msbc编解码&#xff08;chip中实现&#xff09; 和NBS&#xff08;narrow band speech&#xff09;相对&#xff0c;NBS通俗来讲是窄带通话&a…

通话参数配置的经验和技巧

整体的通话信号流程如下&#xff1a; MIC采集信号 -> 放大器 -> ADC采集 -> 通话MIC数字增益 -> AEC算法 -> ANS降噪算法 -> 通话MIC后端数字增益 -> 通话EQ -> 蓝牙上行。 配置中如图所示&#xff1a; MIC去直流fliter配置&#xff1a;MIC高通flite…

CHOLAN:一种模块化实体链接方法

CHOLAN: A Modular Approach for Neural Entity Linking on Wikipedia and Wikidata 论文链接&#xff1a;https://arxiv.org/abs/2101.09969 (EACL 2021) 代码实现&#xff1a;https://github.com/ManojPrabhakar/CHOLAN ABSTRACT 本文作者提出了实现在知识库上进行端到端…

高清语音技术(WBS)及其在手机和蓝牙耳机中的实现

高清语音也被称为宽带语音&#xff0c;是一种能为蜂窝网络、移动电话和无线耳机传输高清、自然语音质量的音频技术。与传统的窄带电话相比&#xff0c;高清语音很大程度上提高了语音质量&#xff0c;减少了听觉负担。 通信产业链上的所有网络和设备都需支持高清语音才能体现出该…

蓝牙编码格式Codec的优先级配置

【Bluetooth】Android版本所支持的蓝牙协议code查询 Android版本所支持的蓝牙协议code查询方法&#xff1a; 协议配置文件有2个&#xff0c;一个是谷歌源生的&#xff0c;一个是高通自己添加的。 优先级&#xff1a;高通 > 谷歌。对于同一种协议会进行覆盖。 其中&#xff…

基于Android Q的蓝牙通话无声问题

分享一下这几天改蓝牙通话无声的bug&#xff0c;文章有点长&#xff0c;希望各位看官看完能帮助到大家—今天分析的主题是蓝牙通话没有声音之运行流程分析 一. 结果说在前面 ​ 蓝牙通话分别有七个阶段&#xff0c;基本上每个阶段都会走到底层&#xff0c;把数据回调到上层&a…

BQB pts测试

测试BQB的pts dongle是在蓝牙SIG官网买的,链接是 https://store.bluetooth.com/12210888/orders/d3b63cfd9d3d5a22c2e08ad9711a91c4 pts dongle最新的测试结果 ACS-BV-07-I/ACS-BV-12-I/ACS-BI-13-I 这三个是接完电话就fail ICA-BV-02-I/TCA-BV-01-I 这两个是挂不了电话 ICR-B…

蓝牙btsnoop log,HFP协议连接流程详解,以及RFCOMM连接和常用AT指令

HFP&#xff08;Hands-Free&#xff09;&#xff1a;蓝牙免提协议,两个角色AG&#xff0c;HF端&#xff0c;AG端通常是手机设备&#xff0c;HF免提端一般为耳机车载等&#xff0c;hfp的连接首先要进行SDP&#xff0c;然后建立RFCOMM&#xff0c;然后SLC连接完成&#xff0c;HFP…

蓝牙协议HFP(Hands-Free Profile)电话免提协议 Connection management 连接管理HFP SLC 的建立跟释放

零. 概述 本文章主要讲下电话免提协议HFP&#xff08;Hands-Free Profile&#xff09;Connection management。包括connection establishment 跟connection realease&#xff0c;那connection establishment又会涉及到HFP SLC的建立过程。 本节讲解的内容就是一下HFP fea…

蓝牙A2DP和HFP编解码

一、A2DP A2DP全名是&#xff08;Advanced Audio Distribution Profile&#xff09; 蓝牙音频传输模型协定&#xff0c;提供通过蓝牙连接传输音频流的能力&#xff0c;比如手机播放音乐&#xff0c;蓝牙耳机通过蓝牙连接听歌。 mp3和flac音频编码都是在PCM音频编码基础上二次编…

Rockchip安卓11.0 16k wbs msbc HFP PCM语音通话支持

Rockchip安卓11.0 16k wbs/msbc HFP PCM语音通话支持 调试平台: 安卓11.0, rk3328, 博通ap6212芯片, HFP 8K已经调通的情况下. SDK修改支持16k wbs/msbc HFP PCM语音注意点如下: 1. bluedroid(system/bt) 博通方案中, ESCO_DATA_PATH_PCM 为1代表蓝牙芯片作为pcm master, 6…

蓝牙电话之HFP-电话音频

蓝牙电话之HFP协议中的电话音频 蓝牙技术通信的内容多种多样&#xff0c;其中音频部分包含媒体音频和电话音频。 媒体音频&#xff1a;播放蓝牙音乐的数据&#xff0c;这种音频对质量要求高&#xff0c;数据发送有重传机制&#xff0c;从而以l2cap的数据形式走ACL链路。编码方…