Linux操作系统基础学习笔记(9)
前言
本期学习的内容是用户和权限管理包括:
用户组(GUID)的管理、用户(UID)的管理,通过查看/etc/group文件知道有多少个用户组,查看/etc/passwd文件知道有多少用户
存放用户组和用户信息的文件格式,密码的组成(加密方式),普通用户执行root用户才能执行的指令的方式
用户管理的命令id、w、who、users、whoami、su以及第三方命令finger(需安装)
用户和文件的关系
文件和目录的归属
文件和目录的权限,rwx和775的含义
权限的修改
9、用户和权限管理
(1)用户组Group
可以类比为一个公司的某一个部门
[root@localhost ~]# cat /etc/group
可以查看有多少个用户组
groups
可以查看当前的用户组是什么
su java
切换用户到java,高权限到低权限不用输密码,低权限到高权限需要输密码
[root@localhost ~]# groupadd redis
创建用户组
[root@localhost ~]# groupdel redis
删除用户组
(2)用户
在系统中,只要你添加的用户的UID=0,不管这个用户叫什么名字,他就是 root用户
[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
java:x:1000:1000:centos:/home/java:/bin/bash
X后面的叫GID,再后面的叫UID
自己创建的 用户java,UID为1000,GID=1000
[root@localhost ~]# useradd -g security alan
创建一个用户并添加到 security 组中,此时由于没有指定其他参数 ,该用户没有主目录和密码,所以不能登录
补充:指定了组security,所以会在home中有一个登录目录alan,这就是该用户的主目录
添加密码
[root@localhost home]# passwd alan
Changing password for user alan.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
删除用户
userdel alan
正在使用的用户 是删不了的,必须在用户退出后才能删除
(3)用户管理相关的文件
密码在gshadow中的第二位
密码都在shadow中的第二位
第五位是用户的描述,第七位是指使用的Shell的工具
密码的来历:
alan:$1$DAaBltp/$PxahahZVdzBuHzK1/a14R1:19935:0:99999:7:::
[root@localhost home]# date -d "1970-01-01 19935 days"
Wed Jul 31 00:00:00 PDT 2024
时间转换得到最后修改时间:Wed Jul 31 00:00:00 PDT 2024
密码格式:
盐(salt):加密方式 MD5 单向 哈希算法(摘要算法 )
123456 ——e10adc3949ba59abbe56e057f20f883e
(不加盐的加密)
可以通过事先在数据库存入加密后的值,然后与上述加密值对比从而确认密码(碰撞法)
加盐就是每次计算时加一个特定的字符 123456jj——6174e9ff48792330e4f7625f1d305023
[root@localhost home]# openssl passwd -1 -salt admin 123456
$1$admin$LClYcRe.ee8dQwgrFc5nz.
自己指定密码, -1指加密方式是MD5,-salt自己指定盐是 admin ,明文密码是123456
root用户:
sudoers中可以配置一些让某个用户能以root去执行的命令,配置好后,用sudo+执行的命令,然后输入密码就 可以执行该命令了,该文件的权限只有r,所以会出现修改不了的问题
解决办法:
visudo /etc/sudoers
可直接编辑sudoers文件,不需要修改权限
(4)用户管理的命令
[root@localhost home]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
finger:第三方命令,查看登录的用户
[root@localhost home]# finger
Login Name Tty Idle Login Time Office Office Phone Host
root root pts/0 Jul 30 17:13 (192.168.20.1)
[root@localhost home]# w
18:52:05 up 1:41, 2 users, load average: 0.02, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.20.1 17:13 5.00s 0.30s 0.03s w
[root@localhost home]# who
(unknown) :0 2024-07-30 17:11 (:0)
root pts/0 2024-07-30 17:13 (192.168.20.1)
[root@localhost home]# whoami
root
[root@localhost home]# users
(unknown) root
(5)用户和文件的关系
(6)文件和目录归属
[redis@localhost home]$ cd ~
[redis@localhost ~]$ mkdir test
[redis@localhost ~]$ ls
test
[redis@localhost ~]$ ll
total 0
drwxrwxr-x. 2 redis redis 6 Jul 30 19:05 test
[redis@localhost ~]$ chown -R alan:security test
chown: changing ownership of ‘test’: Operation not permitted
[redis@localhost ~]$ pwd
/home/redis
[redis@localhost ~]$ su root
Password:
[root@localhost redis]# chown -R alan:security test
[root@localhost redis]# ll
total 0
drwxrwxr-x. 2 alan security 6 Jul 30 19:05 test
(7)文件和目录权限
r=4,w=2,x=1
d rwx rwx r-x. 2 alan security 6 Jul 30 19:05 test
r+w+x=7,r+x=5
775是test文件夹的权限描述