环境:centos7.5(主要),win7
Linux/Centos(权限篇)
一、概述
Linux操作系统,设计用于支持多用户和处理多任务的服务器环境,实施了一套严密的权限控制系统。这一系统主要通过两个核心要素——用户身份和文件权限——来管理和限制对资源的访问。在Linux中,资源的访问权限是基于用户身份来控制的。
- 用户账号类别:
- 超级用户——root,权限最高
- 普通用户——自定义用户 匿名用户(nobody)类似于Windows中的
Guest
- 程序用户——控制程序和服务的,无法登陆
- 组账号——用户的集合(其实可以认为是用户权限的集合)
- 基本组(私有组)——伴随着用户创建而创建 与用户同名(也可以自己设置) 但创建一个用户的时候必有其组
- 附加组(公有组)——直接创建空组,可以添加已有的用户,给组设置权限,该组中所有用户都具备此权限
- UID和GID
- UID(User IDentity) ——用户标识号 (默认情况下0表示root 1~999 表示(系统)程序用户 1000~60000 表示(登录)普通用户)
- GID(Group IDentity)——组标识号
二、用户账号文件
- /etc/passwd——保存用户名称、宿主目录、登录shell等基本信息
[root@localhost ~]# tail -3 /etc/passwd
zongjingli:x:1002:1002::/home/zongjingli:/bin/bash
fujingli:x:1003:1003::/home/fujingli:/bin/bash
zongjingli
: x
: 1002
: 1002
:: /home/zongjingli
: /bin/bash
——以冒号分割进行解释
- zongjingli——用户账号名称
- x——使用加密算法加密的密码,这里是不会显示的
- 第一个“1002” —— 用户UID号
- 第二个"1002" —— 用户所属本组账号的UID
- zongjingli —— 用户全名,可以填写用户详细信息
- /bin/bash —— 指定用户的登录Shell
- /etc/shadow —— 保存用户的密码、账号有效信息
root:$6$oFniodbZANlO7MGa$NficCTUCbLKh8c7B4G8rgPslWrOFHk2/V/6i5SjemoGkW59f1S.hcCSGxx2eEsdv17WB8DyrnAcFoZWMAjCuP/::0:99999:7:::
bin:*:18353:0:99999:7:::
root
: 密码密文
: 18353
: 0
: 99999
: 7
: : :——以冒号分隔,下面逐一解释
- root——这是超级用户账户的名称。
- 密码密文——表示加密算法加密的密码,这里未显示,登录输入该密码是无效的
- 18353——这表示密码记录的最后修改日期的内部计数
- 0——这表示密码的最短有效期限天数。设置为0意味着密码没有最短有效期限,可以随时更改。
- 99999——这表示密码的最长有效期限天数。这个数字通常设置得非常高,以表示密码在一定时间后必须更换。
- 7——这表示系统会在密码到期前7天开始提醒用户更换密码
- :::——连续的冒号通常用于表示某些字段没有设置或不适用,例如密码和账号过期后的具体操作。
三、管理用户账号
- 添加用户账号——useradd命令选项
- -u ——此选项用于分配给新用户一个特定的用户ID(UID),需要确保该UID尚未被系统中的其他用户占用。
- -d ——通过此参数可以为用户指定一个自定义的主目录路径。注意,如果与 -M 选项一起使用,此设置将被忽略。
- -e——设置用户账号的失效日期或账户的过期时间,超过这个日期后,用户将无法登录。
- -g——指定用户的主要用户组,即用户创建文件时默认所属的组。
- -G——此选项允许为用户指定一个或多个附加用户组,用户将同时属于主要用户组和这些附加组。
- -M——不创家目录
- -s ——此选项用于指定用户的登录shell,即用户登录时使用的命令行界面或shell程序。
[root@localhost ~]# groupadd caiwubu
[root@localhost ~]# useradd -d /home/mike -G caiwubu -s /sbin/nlogin mike
[root@localhost mike]# tail -2 /etc/passwd
fujingli:x:1003:1003::/home/fujingli:/bin/bash
mike:x:1004:1005::/home/mike:/sbin/nlogin
[root@localhost mike]# tail -2 /etc/group
caiwubu:x:1004:mike
mike:x:1005:
[root@localhost mike]# tail -2 /etc/shadow
fujingli:$6$Lnt7cll6$xeBotkG/mGhEXftIugKffR5r4ww7T0tDLkZT4wbPsw5BkttVQhct8PSgtiPF2bBEEPG/wcdCa1UQrYrjLtl2u.:19868:0:99999:7:::
mike:!!:19868:0:99999:7:::
[root@localhost mike]# id mike
uid=1004(mike) gid=1005(mike) 组=1005(mike),1004(caiwubu)
[root@localhost mike]# ls /home/
fujingli mike www zongjingli
- 设置/更改用户口令(密码)passwd
passwd 选项 … 用户名
- -d 清除密码
- -l 锁定
- -S 查看是否锁还是未锁 (大写!!!)
- -u 解锁
[root@lokott ~]# useradd -d /opt/lisi -s /sbin/nologin lisi
[root@lokott ~]# tail -2 /etc/passwd
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
lisi:x:1001:1001::/opt/lisi:/sbin/nologin //这里/sbin/nologin是表示用户无法登录
[root@lokott ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码: //需要你输入密码
无效的密码: 密码少于 8 个字符 //因为输入了简单密码,可以继续输入一次也行,当然复杂密码就没问题
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@lokott ~]# su - lisi
最后一次失败的登录:四 10月 31 18:49:45 CST 2019从 :1:1 上
最有一次成功登录后有 1 次失败的登录尝试。
This account is currently not available. // 无法登录,因为登录的shell是/sbin/nologin
[root@lokott ~]# pwd
/root
[root@lokott ~]# vim /etc/passwd //进入passwd文件中将该用户的/sbin/nologin改为/bin/bash
[root@lokott ~]# su - lisi //root切换用户时不需要输入密码
上一次登录:四 10月 31 18:52:42 CST 2019pts/2 上
[lisi@lokott ~]$ pwd //登录lisi用户
/opt/lisi
[lisi@lokott ~]$ su //相当于su - root 下面的结果表明普通用户切换root时需要密码,输入的密码不会显示
密码:
[root@lokott lisi]# pwd
/opt/lisi
[root@lokott lisi]# cd
[root@lokott ~]# pwd //表明切换到root用户
/root
[root@lokott ~]#passwd -l lisi //锁定lisi的密码
锁定用户 lisi 的密码 。
passwd: 操作成功
[root@lokott ~]# passwd -S lisi //查看lisi用户的密码状态
lisi LK 2019-10-31 0 99999 7 -1 (密码已被锁定。)
[root@lokott ~]# su - lisi
上一次登录:四 10月 31 19:01:10 CST 2019pts/2 上
[lisi@lokott ~]$ pwd //可以看出虽然被锁定了但是root可以切换登录且无需密码
/opt/lisi
[lisi@lokott ~]$
[root@lokott ~]# passwd -u lisi
解锁用户 lisi 的密码。
passwd: 操作成功
[root@lokott ~]# passwd -S lisi
lisi PS 2019-10-31 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
- 修改用户账号的属性usermod
- -u 修改用户的UID号
- -d 修改用户的宿主目录
- -e 修改用户账户失效事件
- -s 指定用户的登录shell
- -l 更改用户登录账户名称
- -L 锁定----相当于passwd -l
- -U 解锁----相当于passwd -u
[root@lokott ~]# usermod -l zhangsan lisi
usermod: user lisi is currently used by process 67027
[root@localhost ~]# ps -u kali
PID TTY TIME CMD
67027 pts/0 00:00:00 bash
[root@lokott ~]# kill -9 67027
Session terminated, killing shell... ...已杀死。
[root@lokott ~]# usermod -l zhangsan lisi
[root@lokott ~]# tail -2 /etc/passwd
mike:x:1001:1001::/opt/mike:/sbin/nolgin
zhangsan:x:1002:1003::/opt/lisi:/bin/bash
[root@lokott ~]#ls /opt
demo.txt zongjingli mike
[root@lokott ~]#
- 删除用户账号userdel
-r 宿主目录一起删除,下面的演示接着上面的操作
[root@localhost /]# cd home/
[root@localhost home]# ls
fujingli kali mike www zongjingli
[root@localhost home]# userdel mike
[root@localhost home]# ls
fujingli kali mike www zongjingli
[root@localhost home]# su mike
su: user mike does not exist //用户切换失败,删除成功
这里删除mike用户提示已经删除,但是宿主目录却没有删除
重新新建用户
[root@localhost home]# useradd mike
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
正在创建信箱文件: 文件已存在
使用 -r 删除宿主目录
[root@localhost home]# ls
fujingli kali mike www zongjingli
[root@localhost home]# userdel -r mike
[root@localhost home]# ls
fujingli kali www zongjingli
[root@localhost home]# su mike
su: user mike does not exist //删除成功
四、管理组账号
- 组账号文件——与用户账号文件类似
- /etc/group:保存组账号基本信息
- /etc/shadow:保存组账号的密码信息(一般不会设置)
注:通常使用cat
,tail -n
,head -n
,n表示显示的数量,查看数据,比如head -5 /etc/group
查看用户的分组信息
- 添加组账号groupadd命令
groupadd 【选项】【组名】
添加组test
[root@localhost ~]# groupadd test
[root@localhost ~]# tail -2 /etc/group
kali:x:1006:
test:x:1007:
-g ——指定GID
(Group ID,简称GID)
[root@localhost ~]# groupadd test2 -g 1111
[root@localhost ~]# tail -2 /etc/group
test:x:1007:
test2:x:1111:
- 添加组成员和删除组成员
添加——gpasswd
小提示:添加和组相同名称的用户需要使用 -g 参数,命令如下:
[root@localhost ~]# groupadd jishubu //向组中添加 技术部
[root@localhost ~]# useradd jishubu //添加和组相同名称的 用户
useradd:jishubu 组已经存在 - 如果您想将此用户加入到该组,请使用 -g 参数。
[root@localhost ~]# useradd -g jishubu jishubu
[root@localhost ~]# tail -2 /etc/passwd
kali:x:1005:1006::/home/kali:/bin/bash
jishubu:x:1006:1112::/home/jishubu:/bin/bash
-a 向组中添加一个用户 不会覆盖成员(也就是不会把原来已经在组里面的用户给踢出去,而是添加用户)
[root@localhost ~]# gpasswd -a kali jishubu
正在将用户“kali”加入到“jishubu”组中
[root@localhost ~]# id kali
uid=1005(kali) gid=1006(kali) 组=1006(kali),1112(jishubu)
-d 从组中删除一个用户
[root@localhost ~]# gpasswd -d kali jishubu
正在将用户“kali”从“jishubu”组中删除
[root@localhost ~]# id kali
uid=1005(kali) gid=1006(kali) 组=1006(kali)
-M 逗号分隔设置组的成员列表,会覆盖组成员,将原有的给踢出
[root@localhost ~]# tail -3 /etc/passwd
fujingli:x:1003:1003::/home/fujingli:/bin/bash
kali:x:1005:1006::/home/kali:/bin/bash
jishubu:x:1006:1112::/home/jishubu:/bin/bash
[root@localhost ~]# gpasswd -M jishubu,kali,fujingli jishubu
[root@localhost ~]# tail -3 /etc/group
test:x:1007:
test2:x:1111:
jishubu:x:1112:jishubu,kali,fujingli
- 删除——groupdel 组账号
groupdel 命令的使用是有一定限制的,它仅能用于删除那些没有被设置为任何用户主组的群组。换言之,如果一个群组仍然是某个用户的主群组,那么就不能通过 groupdel 命令来将其删除,例如。
[root@localhost ~]# tail -3 /etc/passwd
fujingli:x:1003:1003::/home/fujingli:/bin/bash
kali:x:1005:1006::/home/kali:/bin/bash
jishubu:x:1006:1112::/home/jishubu:/bin/bash
[root@localhost ~]# tail -3 /etc/shadow
fujingli:$6$Lnt7cll6$xeBotkG/mGhEXftIugKffR5r4ww7T0tDLkZT4wbPsw5BkttVQhct8PSgtiPF2bBEEPG/wcdCa1UQrYrjLtl2u.:19868:0:99999:7:::
kali:$6$N4l9Dp65$pb77cx85m7GOttF6Z5Oo.QXiB7/Hgl7b6jkUzspsPZ3t10JjD5uAUjPjZLsiTcttYr1KWs09PzWik4YglZm8W/:19868:0:99999:7:::
jishubu:!!:19868:0:99999:7:::
[root@localhost ~]# groupdel kali
groupdel:不能移除用户“kali”的主组
若需要删除该组,则使用
[root@localhost ~]# userdel kali
[root@localhost ~]# groupdel kali
groupdel:“kali”组不存在 //删除成功
命令lastb
是用来查看最近登录的信息
四、文件/目录的权限及归属
- 访问权限
- 读取
r
:允许查看文件内容、显示目录列表 - 写入
w
:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录 - 可执行
x
:允许运行程序、切换目录
- 归属(所有权)
- 属主:用于该文件或目录的用户账号
- 属组:用于文件或目录的组账号
例如
[root@localhost home]# ls -l
总用量 0
drwx------ 2 fujingli fujingli 62 5月 25 23:48 fujingli
drwx------ 2 jishubu jishubu 62 5月 26 05:43 jishubu
drwx------ 2 1007 1113 62 5月 26 06:17 kali
drwxr-xr-x 2 www www 6 5月 26 00:01 www
drwx------ 2 zongjingli zongjingli 83 5月 26 00:44 zongjingl
我们拿drwxr-xr-x 2 www www 6 5月 26 00:01 www
举例
- d:表示文件类型(
d
表示目录、l
表示链接文件、c
表示字符设备(输入输出)文件、b块设备(存储)文件 ,-
表示 普通文件) - rwx,r-x,r-x分别代表着属主权限(可读,可写,可执行),属组权限(可读,可执行),other权限(可读,可执行)
- 2:表示子目录数量
- 第一个www:文件属主
- 第二个www:文件属组
- 6:表示文件大小
- 5月 26 00:01:创建时间
- www:目录名称
- 设置文件和目录的权限chmod 命令(-R 递归)
chmod 【ugoa】【±=】【rwx】
【ugoa】:
数字 | 含义 |
---|---|
u | 代表文件所有者(Owner) |
g | 代表与文件所有者同组的用户(Group) |
o | 代表其他用户(Others) |
a | 代表所有用户(All),即u、g、o的集合 |
chmod nnn 文件或目录(优先选择)
nnn:
数字 | 含义 |
---|---|
7(4+2+1) | 读、写、执行权限(rwx) |
6(4+2) | 读、写权限(rw-) |
5(4+1) | 读、执行权限(r-x) |
3(2+1) | 写、执行权限(-wx) |
2 | 写权限(-w-) |
1 | 执行权限(--x) |
[root@localhost abc]# chmod u+x 2.sh //为属主添加 x 可执行权限
[root@localhost abc]# ls -l
总用量 0
-rwxr--r-- 1 root root 0 5月 26 07:45 2.sh
[root@localhost abc]# chmod ug+x 2.sh //为属主和属组添加可执行权限
[root@localhost abc]# ls -l
总用量 0
-rwxr-xr-- 1 root root 0 5月 26 07:45 2.sh
[root@localhost abc]# chmod ugo+x 2.sh //为属主、属组和其他用户添加可执行权限
[root@localhost abc]# chmod a+w 2.sh //为所有用户添加可写权限
[root@localhost abc]# ls -l
总用量 0
-rwxrwxrwx 1 root root 0 5月 26 07:45 2.sh
[root@localhost abc]# ls -l
总用量 0
-rwxr-xr-x 1 root root 0 5月 26 07:45 2.sh
[root@localhost abc]# chmod 777 2.sh
[root@localhost abc]# ls -l
总用量 0
-rwxrwxrwx 1 root root 0 5月 26 07:45 2.sh
- 更改所有者和所属组chown 命令(-R 递归)
[root@localhost /]# chown -R root:caiwubu abc/
[root@localhost /]# ls -l abc/
总用量 0
-rwxrwxrwx 1 root caiwubu 0 5月 26 07:45 2.sh
小知识:linux系统使用 ll 可以直接查看该目录下所有文件以及文件夹的所有权限信息
linux/centos其他命令
systemctl stop firewalld
: 关闭防火墙
pwd
:查看当前所在目录的路径
rm 文件名
:删除指定文件(会提示是否删除)
rm -f 文件名
:强制删除指定文件(不会有提示)
rm -r 目录名
:删除指定目录(会提示是否删除)
rm -rf 目录名
:强制删除指定目录(不会有提示)
cp
:文件名 复制后的名称
cp -r
: 目录名 复制后的名称
mv
:重命名|剪切
cat
:查询文件所有内容。--不适合文件内容多的。
more
:查看当前窗口大小的内容。空格表示翻页 回车表示下一行。
head
:查看前n行内容。
tail
:查看后n行内容。
head -n 行数 文件名(head -5 文件名)
: 查看前五行内容
tail -n 行数 文件名 (tail -5 文件名)
:查看后五行内容
find 指定目录 -name 文件名
:查找
压缩:
tar -zcvf
压缩后的名称 被压缩的目录或文件名
z:表示解压缩固定标志
c:表示压缩
v:显示压缩详情
f:文件
解压:
tar -zxvf
压缩的文件名 (默认解压到当前目录)
-x:解压
tar -zxvf 压缩的文件名 -C /解压后的目录
Windows系统(概要)
常见的简单用户管理命令
#查看当前登陆用户
whoami
#查看所有用户
net user
#查看admin用户信息
net user admin
#新增用户
net user username password /add
#修改用户密码
net user username password
#删除用户
net user username /delete
#查看电脑名称
hostname
#查看系统信息
systeminfo
#查看所有组
net localgroup
#查看某一个组所有用户
net localgroup groupname
#新增组
net localgroup groupname /add
#删除组
net localgroup groupname /delete
#向组中添加用户
net localgroup groupname username /add
#向组中删除用户
net localgroup groupname username/delete
其他问题
一.哈希值的两种破解方式?
1.暴力破解
2.撞库
二.什么是用户账号sid?
用户账号的SID(Security Identifier)是一个唯一的、系统定义的值,用于在安全上下文中标识用户、组、计算机账户或其他安全主体。SID是由系统分配的,用于在安全策略中标识特定的账户,而不是使用用户名。
SID通常具有以下特点:
- 唯一性:每个用户或组的SID在Windows系统中是唯一的,即使两个用户具有相同的用户名,他们的SID也会不同。
- 不可预测性:SID是由系统动态生成的,不是基于用户名或其他容易预测的信息。
- 持久性:用户的SID在账户的整个生命周期内保持不变,即使用户被删除,只要账户对象仍然存在于
Active Directory
中,其SID也不会改变。 - 安全性:SID用于访问控制和安全策略的实施,它允许系统准确地控制对资源的访问。
- 透明性:对于普通用户来说,SID是透明的,用户通常不需要直接处理SID。
三.什么是Guest(来宾用户)?
是一个在操作系统中预先配置好的用户账户,通常具有受限的权限和访问能力。来宾用户账户的目的是为临时或偶尔的用户提供访问计算机系统的便利,而无需为他们创建独立的用户账户。
四.事件查看器的作用 ?
使用命令eventvwr.msc
调出事件查看器
,它的作用有俩面型
- 系统管理员通常用来架空系统活动,诊断问题,安全审计,性能分析,配置管理,和查看应用程序日志。
- 而黑客则不同,它可利用事件查看器来进行
信息收集
、寻找漏洞
、追踪攻击路径
、清楚痕迹
、分析用户行为
、监控系统活动以及利用系统错误
从而造成不必要的安全隐患.
在各种远程桌面连接不上的时候思路的考虑?
--拒绝通过远程桌面服务登录
每日小知识
在计算机中时间是从什么时候开始计算的?
答:1900年
什么是socket?
参考:https://blog.csdn.net/zhangay1998/article/details/123504421
欢迎关注我的公众号“小羽网安”,原创技术文章第一时间推送。