第三章预习笔记
3.1 用户配置文件和密码配置文件
用户文件,是用户的核心配置文件
root:x:0:0:root:/root:/bin/bash
有冒号分割为七段
第一段是用户名,第二段早期版本的Linux会把密码存放到这里,第三段uid,第四段gid,第五段是用户的注释信息,第六段是用户的家目录,第七段是shell 可以和用户交互的窗口,常见的有/bin/bash./sbin/nologin
每创建一个用户就会多出一行
/etc/shadow
和用户文件是一 一对应的
第一段是用户名,第二段是加密的密码,不能反着编译,可以由一个明文的密码编译成一个加密的密码,但不能由加密的密码编译成明文的密码,第三段是个天数,最后一次更改密码的天数距离1970年7月1日的天数,第四段是代表多少天才可以更改密码,默认是零,不受限制。第五段是代表密码多少天后到期及在多少天内要更改密码。第六段代表密码到期前的警告,7的话代表密码七天后到期,第七段代表密码到期后,几天后锁定,第八段代表距离1970年1月1日有多少天,账号在这个日期前可以使用,到期后就被锁定了,最后是一个段是保留字段。
同时执行两个连续的命令,中间用分号隔开
man shadow 查看shadow的各段的解释。
3.2 用户组管理
/etc/group
/etc/shadow- 带减号的文件,是系统自动备份了一份文件,
groupadd grp1 创建一个组
创建组同时指定id号
删除一个组 groupdel grp1
如果要删除一个组,前提是组里面没有用户
3.3 用户管理
useradd user1
创建一个新用户
-u 指定uid
-g 指定组
-d 指定家目录
-s 指定登录shell
useradd -M 用户
-M 创建用户的时候不创建家目录
创建用户时,不指定gid的情况下,创建用户的gid是根据uid增加的
删除用户 userdel 用户
但是不会删除用户的家目录
userdel -r 加上r选项时用户的家目录也会一并删掉
3.4 usermod命令
更改用户属性的命令
usermod -u uid username
usermod -g gid/组名 username
usermod -d 家目录 username
usermod -s 登录shell /bin/bash /sbin/nologin username
useradd -G 创建用户的时候可以给用户添加扩展组
usermod -G 组名 username
如果想同时加入到两个组,组名之间用逗号隔开
id username 可以查看用户的uid和gid
3.5 用户密码管理
passwd 更改用户密码
!! 代表密码是空,*代表用户是锁定的 代表用户不能登录
passwd -l username
锁定一个用户
passwd -u username
解锁一个用户
usermod -L username 也可以锁定一个账号
前面是一个叹号
usermod -U username 解锁一个用户
--stdin 输入一次就可以更改密码
echo "112233" |passwd --stdin user1
免交互更改用户密码
\n 是换行符 \t是制表符
利用换行符更改密码,正常一般更改密码的时候需要输入两遍
3.6 mkpasswd命令
mkpasswd (make passwd)
生成密码的一个工具,可以生成一个随机的字符串,当作密码使用
安装一个expect包
mkpasswd 自动生成一个9位的随机字符串
-l 指定长度 后面跟位数
-s 指定特殊符号 后面跟个数 0代表没有特殊符号
运用在shell脚本里面批量创建密码的时候
3.7 su 命令
su - username
彻底的切换用户,包括配置,环境变量
su - -c
-c 以指定用户的身份执行一条命令
从普通用户切换到另一个普通用户的目录下,显示的前缀不一样,是因为用户的家目录不存在,没有用户的配置文件,所以就出现前缀不一样的情况,通过创建家目录和拷贝配置文件,恢复用户前缀
普通用户也可以切换到root下
3.8 sudo命令
sudo 命令可以使用户临时执行一条命令,以指定用户的身份去执行,一般是给用户授权root用户的身份
visudo
允许root用户执行所有的命令,在任何地方
第一个ALL代表在哪里,主机
第二个ALL代表用户
第三个ALL代表全部命令
用户aming和user1拥有ls mv cat 命令执行权限,写成绝对路径
NOPASSWD: sudo的时候不再让用户输入密码
定义主机别名
定义用户别名
定义命令别名
运用定义的命令别名
可以把一些用户加入到一个组里面,统一授权
3.9 限制root 远程登录
visudo 创建一个用户的别名
修改sshd_config配置文件
PermitRootLogin no
限制root远程登录
测试普通sudo 到root用户下