su: incorrect password

本文解决了一个在普通用户使用su命令切换至root用户时遇到的密码验证错误问题。通过修改/bin/su文件的权限设置为-rwsr-xr-x,允许普通用户在执行su命令后具有root权限,成功访问保护资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用普通用户登录的状态下使用su (su -)命令 切换到root用户时提示:su: incorrect password,但是直接使用root用户和密码可以登录操作系统。

解决方案:

可能跟su这个执行文件的属性有关。

The permissions should be "-rwsr-xr-x"

而自己的系统中su 的属性为 "-rwxr-xr-x"

也就是说,su对用户为可执行,但还是该用户的权限。

终于找到原因了。当用普通用户执行su的时候,只能代表该用户,虽然执行了,但访问其他资源,比如密码文件等,可能就没有权限了。

使用root用户直接登录操作系统,修改/bin/su文件属性

chmod u+s /bin/su  修改为"-rwsr-xr-x",再su切换,一切OK.

PS: 质s位,该执行程序不代表调用者,而是代表所有者,并具有所有者权限。su所有者是root,所以普通用户执行su就具有了root权限,可以访问密码等保护资源了。

### 解决未经授权访问的问题 当遇到因用户名或密码错误而导致的未授权错误时,可以采取以下措施来解决问题: #### 验证身份认证逻辑 确保应用程序的身份验证机制正确无误。如果存在身份验证挑战,则可能需要调试相关方法以捕获并处理 `didReceiveAuthenticationChallenge` 的回调函数[^2]。 #### 日志记录与分析 通过日志记录功能检查命令被拒绝的原因。如果用户尝试运行不允许的操作,应在日志中明确显示拒绝原因,这有助于定位问题所在[^1]。 #### 安全设计审查 考虑是否存在由于设计缺陷引起的安全漏洞,例如加密不当或数据校验不足等问题。这些都可能导致攻击者绕过检测机制获取系统权限[^3]。因此,应重新审视系统的安全架构,修复潜在的设计隐患。 以下是针对该场景的一个简单代码片段示例用于捕捉身份验证挑战: ```objective-c - (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { NSURLCredential *credential = [NSURLCredential credentialWithUser:@"username" password:@"password" persistence:NSURLCredentialPersistenceForSession]; [[challenge sender] useCredential:credential forAuthenticationChallenge:challenge]; } } ``` 此代码展示了如何响应服务器信任的身份验证请求,并提供相应的凭据进行验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值