切换身份

su命令

[root@linux ~] # su [-lcm] [username]

参数:

- :如果执行su -时,表示该用户想要变换身份成为root,且使用root的环境设置参数文件,如/root/.bash_profile等。

-l:后面可以接用户,例如su -l dmtsai,这个-l的好处是,可使用变换身份者的所有相关环境设置文件。

-m:-m与-p是一样的,表示“使用当前环境设置,而不重新读取新用户的设置文件“。

-c:仅进行一次命令,所以-c后面可以加上命令。

注意:建议如果切换成为某个身份,使用su -或者su - username。否则,容易造成环境变量的差异。


sudo命令

[root&linux ~]# sudo [-u [username | #uid]] command

参数:

-u:后面可以接用户账号名称,或者UID。例如UID是500的身份,可以:-u #500来作为切换到UID为500的那位用户。

注意:sudo的执行权限与/etc/sudoers文件有关,如果要修改该文件,建议使用visudo来编辑,而不要直接以vi去编辑它,因前者可以进行文件内部的语法检查。


普通用户使用sudo执行命令时,该用户要有sudo权限,且在执行时需要输入当前普通用户的密码。

如:在没有sudo权限下执行命令


使用visudo修改/etc/sudoers文件

命令:#visudo

添加内容:


以普通用户,使用sudo来进行操作

命令:$sudo touch /root/lyc_daniel

在Spring Security中,切换身份是指在同一会话中以不同的角色登录系统。用户可以通过多角色切换来重新设置权限。引用中的代码展示了如何通过重新认证和重新设置权限来进行切换身份操作。具体步骤如下: 1. 第一步是根据当前用户所选角色获取对应的权限。这可以通过调用`obtainGrantedAuthorities()`方法来实现。该方法接受当前登录用户和所选角色作为参数,并返回一个包含授权信息的集合。 2. 接下来,我们需要获取当前的安全上下文(Security Context)。可以通过调用`SecurityContextHolder.getContext()`来获取Authentication实例。如果存在有效的Authentication实例,则执行下一步;否则,结束操作。 3. 在重新认证阶段,我们创建一个新的Authentication实例,将原始的Principal和Credentials保持不变,并使用新的授权信息(即刚刚获取的权限集合)进行重新设置。这可以通过调用`new UsernamePasswordAuthenticationToken()`方法来实现。该方法接受原始的Principal、Credentials和新的授权信息作为参数,并返回一个新的Authentication实例。 4. 最后,我们将新的Authentication实例设置回安全上下文(Security Context),即调用`SecurityContextHolder.getContext().setAuthentication(newAuth)`。 综上所述,通过以上步骤,可以实现在Spring Security中切换身份,重新设置权限。引用和中的代码展示了如何将目标用户设置为当前用户身份和如何将重新获取的Authentication实例设置回安全上下文。同时,为了实现身份切换,可能需要定义一个`switchUserFilter`的Bean,并使用`UserDetailsService`来实现用户详细信息的获取。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值