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//

最后重启看一下效果:

现在进入高级选项需要输入用户名和密码了!起到了保护的作用。但这个密码如果忘记的话,就真的没有补救的方法了……

参考链接 Linux学习之CentOS(二十二)–单用户模式下修改Root用户的密码

Windows利用空会话IPC共享实现远程控制

原理:

当用户使用用户名和密码(可以访问系统资源的登陆帐户)远程登陆到计算机时就创建了一个远程会话,这是通过服务器消息模块(SMB)和Windows Server服务来实现的,当提供正确登陆信息时这些连接都是完全合理的。

当用户没有使用用户名或者密码来与windows系统建立连接时就会出现空会话,这种类型的连接不能进行任何典型的windows共享,但是可以进行进程间通信(IPC)管理共享。IPC共享,是windows进程(通过SYSTEM用户名)来与网络其他进程进行通信的,IPC共享是SMB协议专用的。

没有登陆凭证使用IPC共享是专供程序间通信使用的,但这并不是说用户不能通过IPC连接代替连接到计算机。这种方式不允许对计算机的无限制访问,但广泛枚举可能会帮助攻击者发起攻击。