Linux下权限管理
useradd
- -d 用户的home目录
- -e 用户的过期时间,在此时间以前账号有效,过期后自动失效
- -g 指定用户所属的组,指定的组必须已经存在
- -m 如用户的起始home目录不存在,即建立
- -M 不创建用户起始home目录
- -D 显示或修改默认属性
userdel
- -r 将此用户起始目录及其中文件删除
usermod
修改用户属性,参数同useradd
su
该命令用于切换用户 原则上禁止切换至root用户 因此可在su配置文件(在"/etc/pam.d/“目录下)的开头添加下面两行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/Pam_wheel.so group=wheel
即只有wheel组的可切换为root
groupadd blue gpasswd -a -username groupname
添加wheel用户组、将指定用户添加至指定用户组内
chgrp
change group 即切换文件所属分组
chown
change owner 修改文件所有者
chmod
- r: 4(读权限
- w: 2(写权限)
- x: 1(执行权限)
使用数字更改权限
chmod xyz file/dir
使用字符更改权限
chmod u=wrx,go=rx file/dir chmod a+x file/dir
usermod
修改账户的信息
- -L 锁定账户
- -U 解锁账户密码
chattr
用于修改文件属性
+i
使文件只读、不可任意更改等
+a
使文件只可追加不可删除,适用于各类日志文件
Win下权限管理
安全标识符SID
SID是一个具有惟一性、绝对不会重复产生的数值,用来标识操作系统中的安全主体或安全组
四项基本原则:
- 拒绝优先原则
- 权限最小化原则
- 权限继承原则
- 累加原则
磁盘配额
磁盘配额可以跟踪及控制磁盘空间的使用情况。包含磁盘配额限制和磁盘配额警告级别两个参数,前者触发报警阻止,后者触发记录。
Linux单用户模式修改root密码
原理:
当Linux启动级别设置为1时,系统进入单用户模式在此模式下,不会启动任何服务,也无需输入root密码,甚至可以直接修改root密码。此方法常在忘记root密码时使用,但当物理机可被他人操控时,则有很大的安全隐患。但好在我们可以对进入单用户模式进行一定的限制,在进入前让用户输入密码来确保安全性。(计算机启动流程可以参考阮一峰老师的两篇文章: 计算机是如何启动的 、Linux 的启动流程 )
1、进入操作系统配置引导界面并进入编辑页面
输入回车进入高级选项
找到Recovery mode选中
根据下面的提示可知,输入e
可以对配置进行编辑
2、找到类似Linux /boot/vmlinuz所在行
将ro single
改成rw single
,并在最后添加inti=/bin/bash
这样我们就可以告诉系统我们需要以单用户的模式登陆了
然后 按键盘 ctrl+x
启动
对于一些版本的OS(如redhat、centos)来说,编辑grub,在后面加上
single
即可进入单用户模式。但对于此处用来做示范的kali以及Ubuntu等此种方法无效。前者在进入编辑界面后,在选项中会明显的显示出对内核编辑选项,按照下方提示,输入e
并在最后添加single
或者1
即可。
3、使用passwd修改root密码
之后我们使用exit
命令退出单用户模式,然后重启正常进入多用户模式即可~
4、为单用户模式添加密码保护
注意此处redhat系和debian系也略有不同
debian
- 使用grub-mkpasswd-pbkdf2生成加密密码
在这个地方我竟然把连字符输成了下划线……找不到该命令,困惑了好久…………
- 在/etc/grub.d/40_custom末尾加入以下代码来对grub进行加密:
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.E944BC7C234B86C75D7CEE3D7D7753F35352F99E45E461F3BD12768F3D9525B84A62E62632EFDD0419425E3BCCD50279D9474A8D76DAF73A76079F8E5768152E.66369847376BB3A56C5D21668A343E429A84E13D816DFAA3BC37B9F963C51805DB896F8155B6030455E8D32443FBDEFF936D8795F0BE891075A223B1B0F9AFCE #后面一串密文为上面生成的密码
update-grub
命令进行更新
redhat
- 使用grub-md5-crypt 生成加密密码
[root@feng~]# grub-md5-crypt
Password:
Retype password:
$1$UGA2B1$DriIdrVTEgVg95fHHX4H./
[root@feng~]#
- 在 /boot/grub/grub.conf 启动配置中加入以下代码来对grub进行加密:
password --md5 $1$6H92B1$PzoPV63kTMk4uEhZQTAZ//
最后重启看一下效果:
现在进入高级选项需要输入用户名和密码了!起到了保护的作用。但这个密码如果忘记的话,就真的没有补救的方法了……
Windows利用空会话IPC共享实现远程控制
原理:
当用户使用用户名和密码(可以访问系统资源的登陆帐户)远程登陆到计算机时就创建了一个远程会话,这是通过服务器消息模块(SMB)和Windows Server服务来实现的,当提供正确登陆信息时这些连接都是完全合理的。
当用户没有使用用户名或者密码来与windows系统建立连接时就会出现空会话,这种类型的连接不能进行任何典型的windows共享,但是可以进行进程间通信(IPC)管理共享。IPC共享,是windows进程(通过SYSTEM用户名)来与网络其他进程进行通信的,IPC共享是SMB协议专用的。
没有登陆凭证使用IPC共享是专供程序间通信使用的,但这并不是说用户不能通过IPC连接代替连接到计算机。这种方式不允许对计算机的无限制访问,但广泛枚举可能会帮助攻击者发起攻击。