linux用户和组

linux用户和组

一、用户和组的定义

1、为什么要引入用户和组

1.1、用户和组为linux系统里的资源管控服务的--》谁能访问,谁不能访问
1.2、资源管控:文件的访问、读取、执行等操作,用户的身份会嵌入到进程里,内核对进程进行限制
二、用户和组的相关文件

1、/etc/passwd–>存放用户信息的
1.1、各个字段的解释

字段1:用户账号的名称
字段2:用户密码字符串或者密码占位符,但是后来放到/etc/shadow	
字段3:用户账户的UID号
字段4:所属基本组账号的GID号
字段5:用户描述信息
字段6:家目录
字段7:登录shell信息

1.2、文件里的x密码占位符的作用:如果有x就表示去检查/etc/shadow文件的密码
如果没有x,就直接登录,不需要密码验证,这种方式只能是本地登录,远程登录不行
1.3、用户的shell类型

/sbin/nologin  --》这个用户是不能用来登录系统的
/bin/bash      --》默认的用户shell--》正常的shell

2、/etc/shadow–》存放用户密码的

!!  说明没有设置密码
*  也是没有设置密码
密码字段前面加一个!号或者两个!!号,都是表示这个用户被禁用了

3、/etc/shadow-和/etc/passwd- --》是passwd和shadow的备份文件,总是和源文件差一次操作,可以是新建也可以是删除
4、/etc/login.defs 用户初始化属性设置文件

定义邮箱,密码日期、长度,是否创建家目录,
删除用户的时候,如果对应的组里没有成员了,将这个组也删除

5、/etc/skel 用户环境默认设置文件:用来初始化用户的环境变量和函数、别名的
5.1、家目录里的默认文件都是从/etc/skel目录下拷贝过来的,useradd新建用户的时候,会将/etc/skel目录下的所有文件拷贝到用户的家目录下
5.2、相关默认文件的作用

.bash_profile:用户每次登录时执行     		  -->去执行.bashrc,输出PATH变量为全局变量
.bashrc:每次进入新的bash环境时执行 		  --》去执行/etc/bashrc ,里面了很多的函数、环境变量、别名等
.bash_logout:用户每次退出登录时执行  		  --》当用户注销的时候,会执行这个脚本里的命令
.bash_history:记录存放上次注销前使用的命令  -->我们登录linux期间用过的命令

5.3、启动bash的时候有两种情况:

1.登录bash
	输入用户名和密码登录linux系统的时候产生的bash
	初始化需要执行的脚本:
	/etc/profile
	~/.bash_profile  -->~.bashrc  -->/etc/bashrc
2.非登录bash
	直接输入bash命令,产生的bash
	初始化脚本:
	~/.bashrc  -->/etc/bashrc

6、/var/spool/mail -->创建一个用户是会在这下面创建一个同名的文件

用户和组的相关命令

1、useradd:新建用户

相关的选项:
-g   主要组
-G   次要组
-u   指定uid号
-d   指定用户放的目录,默认是家目录
-s   指定用户登录的shell
-c   指定注释描述信息
-r   新建系统用户(程序用户),不会有新建家目录

2、usermod:修改用户–》选项和useradd的用法一样
3、userdel:删除用户–》一般和 -r 选项搭配使用,连同家目录和邮箱一起删除
4、groupadd:新建组
5、groupmems 对组成员进行修改,可以添加和删除

groupmems  -g 组名 -a 用户名  -->往这个组里添加用户
groupmems  -g 组名 -l  查看这个组里的用户

6、groupmod:修改组
相关的选项:
-g 修改gid
-n 指定新的组名

[root@kafka01 lianxi]# groupmod -g 6000 sanle
[root@kafka01 lianxi]# tail -n 1 /etc/group
sanle:x:6000:
[root@kafka01 lianxi]# groupmod -n sanle2 sanle
groupmod: group 'sanle2' already exists
[root@kafka01 lianxi]# groupmod -n sanle10 sanle
[root@kafka01 lianxi]# tail -n 1 /etc/group
sanle10:x:6000:

7、groupdel:删除组
8、passwd
8.1、交互式设置密码:

[root@xiaoliu lianxi]# useradd liang
[root@xiaoliu lianxi]# passwd liang
更改用户 liang 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

8.2、非交互式设置密码–》写脚本使用:

[root@xiaoliu lianxi]# echo 123|passwd liang --stdin
更改用户 liang 的密码 。
passwd:所有的身份验证令牌已经成功更新。

8.3、相关选项

-d :清除密码
[root@xiaoliu lianxi]# cat /etc/shadow|grep liang	liang:$6$nLift5EvT0TqMh2U$4j1w/33sEcUwldkzAKiyGc1EUSktJWz91QC7bWvKpmReop4R3I3Wp0IOroZYM6jZB9D1qA8x/WTOBOLniGo6k.:19075:0:99999:7:::
[root@xiaoliu lianxi]# passwd -d liang   清除密码--》本质上是去shadow文件里删除密码字段的内容
清除用户的密码 liang。
passwd: 操作成功
[root@xiaoliu lianxi]# cat /etc/shadow|grep liang
liang::19075:0:99999:7:::
-l:锁定用户
usermod禁用用户的时候,在shadow文件里的密码字段加1个!
passwd禁用用户的时候,在shadow文件里的密码字段加2个!
	[root@xiaoliu lianxi]# passwd -l liang
	锁定用户 liang 的密码 。
	passwd: 操作成功
	[root@xiaoliu lianxi]# cat /etc/shadow|grep liang
	liang:!!:19075:0:99999:7:::
-u:取消锁定
-S:查看状态
	[root@xiaoliu lianxi]# passwd -S chenlin
	chenlin PS 2022-03-27 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
空密码是不允许远程ssh登录的,但是可以本地登录

8.4、密码复杂性

	1.密码长度,至少82.密码需要包含字符串大小写、特殊符号、数字
	3.不是回文:123321
			回文:从左边读过去和从右边读过去是一样的
			回文说明密码不安全,容易被破解

9、w: 查看已经登录到主机的用户信息

[root@xiaoliu ~]# w
 12:55:34 up  2:46,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
lhj      tty1     -                09:46    3:08m  0.01s  0.01s -bash
root     pts/0    192.168.243.1    09:47    2:22m  0.00s  0.00s -bash
root     pts/1    192.168.243.1    12:55    2.00s  0.00s  0.00s w

10、last和lastlog

[root@xiaoliu ~]# last
root     pts/1        192.168.243.1    Sun Apr 10 12:55   still logged in
root     pts/0        192.168.243.1    Sun Apr 10 09:47    gone - no logout
lhj      tty1                          Sun Apr 10 09:46    gone - no logout
reboot   system boot  4.18.0-305.3.1.e Sun Apr 10 09:28   still running
root     pts/1        192.168.243.1    Sat Apr  9 16:52 - 21:20  (04:28)
root     pts/0        192.168.243.1    Sat Apr  9 09:27 - 21:20  (11:53)
lhj      tty1                          Sat Apr  9 09:27 - 21:20  (11:53)
reboot   system boot  4.18.0-305.3.1.e Sat Apr  9 09:26 - 21:20  (11:53)
root     pts/1        192.168.243.1    Fri Apr  8 14:42 - 21:02  (06:20)
root     pts/0        192.168.243.1    Fri Apr  8 08:40 - 16:54  (08:14)
lhj      tty1                          Fri Apr  8 08:39 - 21:02  (12:23)
reboot   system boot  4.18.0-305.3.1.e Fri Apr  8 08:39 - 21:02  (12:23)
[root@xiaoliu ~]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/1    192.168.243.1410 12:55:32 +0800 2022
unbound                                    **从未登录过**
sssd                                       **从未登录过**
sshd                                       **从未登录过**
liuhongjie       pts/01030 10:28:07 +0800 2021
chenxiongwei     pts/01030 12:13:03 +0800 2021
caohx                                      **从未登录过**
twj              pts/01114 11:24:21 +0800 2021
chenxw           pts/0113 19:21:28 +0800 2021
pcp                                        **从未登录过**
lhj              tty1                      日 410 09:46:46 +0800 2022
lilanqing        pts/01226 11:48:52 +0800 2021
shimengmeng      pts/01113 16:48:39 +0800 2021
zhangjian        pts/11120 10:18:58 +0800 2021
czm              pts/1    192.168.243.11213 23:44:20 +0800 2021
四、手工建一个用户

1、需求:

用户名叫wangchen  uid   gid
组的名字  shanxi
注释      sanchuang student
shell     /bin/bash
家目录     /home/wangchen

2、步骤:

	1.修改/etc/passwd,在末尾追加
		wangchen:x:1059:1059:sanchuang student:/home/wangchen:/bin/bash
	2.修改/etc/shadow,在末尾追加
		wangchen:!!:19078:0:99999:7:::
	3.修改/etc/group,在末尾追加
		shanxi:x:1059:
	4.新建家目录
		mkdir  /home/wangchen
	5.复制/etc/skel目录下的环境变量配置文件到家目录下
		cp /etc/skel/.bash* /home/wangchen
	6.创建邮箱文件
		touch /var/spool/mail/wangchen
 	7.验证wangchen用户是否可以su 切换登录
		[root@xiaoliu mk_user]# su - wangchen
		[wangchen@xiaoliu ~]$ pwd
		/home/wangchen
		[wangchen@xiaoliu ~]$ ls -a
		.  ..  .bash_logout  .bash_profile  .bashrc
		[wangchen@xiaoliu ~]$ mkdir wang
		mkdir: 无法创建目录 “wang”: 权限不够          因为wangchen这个目录是root用户新建的,所有这个文件的拥有者和组都是wangchen
chown:修改拥有者
	8.使用root用户去修改/home/wangchen文件夹所有者为wangchen,组为shanxi
		[root@xiaoliu mk_user]# chown -R wangchen:shanxi /home/wangchen
			-R 递归修改目录里的所有的文件和文件夹的所有者
		[root@xiaoliu mk_user]# ll -d /home/wangchen
		drwxr-xr-x. 2 wangchen shanxi 62 329 16:30 /home/wangchen
	9.修改邮箱的权限
		[root@xiaoliu mk_user]# cd /var/spool/mail
		[root@xiaoliu mail]# chown wangchen:mail wangchen    修改邮箱的属主为wangchen,组为mail
		[root@xiaoliu mail]# ll wangchen
		-rw-r--r--. 1 wangchen mail 0 329 16:31 wangchen
	10.修改文件的权限
			[root@xiaoliu home]# chmod 700 /home/wangchen
五、ftp服务

1、安装启动vsftpd服务

第一步:
	[root@xiaoliu ~]# yum install vsftpd -y          安装ftp服务软件
第二步:
	[root@xiaoliu ~]# service vsftpd restart	 	 重启vsftp服务
		Redirecting to /bin/systemctl restart vsftpd.service

	[root@xiaoliu ~]# cat /etc/passwd|grep ftp
		ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
第三步:
	[root@xiaoliu ~]# yum install ftp lftp -y		安装客户端命令ftp和lfpt
第四步:清除防火墙规则
	[root@xiaoliu ~]# iptables -F 		清除规则
	[root@xiaoliu ~]# service firewalld stop  停止防火墙服务
	Redirecting to /bin/systemctl stop firewalld.service
第五步:登录
	[root@xiaoliu ~]# ftp 192.168.243.128

centos8里默认不允许匿名登录,可以新建用户本地用户登录
	[root@xiaoliu ~]# useradd qiankai
	[root@xiaoliu ~]# echo 123456|passwd qiankai --stdin
	更改用户 qiankai 的密码 。
	passwd:所有的身份验证令牌已经成功更新。
	[root@xiaoliu ~]# ftp 192.168.243.128
	Connected to 192.168.243.128 (192.168.243.128).
	220 (vsFTPd 3.0.3)
	Name (192.168.243.128:root): qiankai
	331 Please specify the password.
	Password:
	230 Login successful.
	Remote system type is UNIX.
	Using binary mode to transfer files.
	ftp>

2、允许匿名用户登录ftp

第一步:修改配置文件
	vim /etc/vsftpd/vsftpd.conf
	anontmous_enable=yes		-->将no修改为yes
第二步:刷新服务
	service vsftpd restart
六、linux里面的加密算法

1、linux默认采用的加密算法是sha512–》sha512算法是hash算法的一种
2、hash算法: md5 sha256 sha512

把任意长度的输入,变成固定的长度输出
单向加密技术

/etc/shadow文件里的密码字段: 加 密 算 法 i d 加密算法id id盐值$真正的密文
加密底层使用crypt加密算法

七、查看组中有哪些成员(shell脚本)
#!/bin/bash
group_name=$1
#获得需要查询的组的id和次要组成员
group_msg=`awk -F: -v group_awk=$group_name '$1==group_awk{print $3,$4}' /etc/group`
group_lst=($group_msg)
group_id=${group_lst[0]}
group_user_1=${group_lst[1]}
#再通过组id去/etc/passwd里查找它的主要组成员
group_user_2=`awk -F: -v group_id=$group_id '$4==group_id{print $1}' /etc/passwd| tr "\n" ","`
echo $group_user_2$group_user_1

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值