修改了Ubuntu下的/usr目录权限,导致不能使用sudo命令的修复

由此在ubuntu下,因为某种原因,手动给usr文件夹改了权限,之后我自己这个账户(非root)就不能运行sudo命令,提示“sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner”的错误

遇到这个问题说明当前用户没有sudo执行权限。

赋予sudo执行权限需要在root的模式下执行,系统默认禁用root账号,如果你的系统没有激活root,即无法切换到root账号,在使用su root命令时会报以下错误:

su:Authentication failure

这个时候我们可以用以下方式激活root:

ubuntu命令行->reboot重启->按esc进入->选择Advanced options for Ubuntu->选择recovery mode->选择root命令行模式

因为recovery模式默认是以只读模式挂载,所以我们要重新挂载切换到读写模式:

mount -o remount,rw /

mount --all

然后我们可以赋予sudo的执行权限:
 

chown root:root /usr/bin/sudo

chmod 4755 /usr/bin/sudo

pkexec chmod go-w /usr/lib/sudo/sudoers.so 

然后重启系统:

reboot

就可以啦。 没事还是尽量不要改太多文件夹的权限,容易出问题, 需要哪些改哪些

再加一个修改root密码的做法

tju@tju:~$ sudo passwd
[sudo] password for tju: 
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码

完成
 

<think> 首先,用户的问题是关于在运行特定的命令时遇到的问题。用户说:“我想查找在使用sudo chmod +x /usr/bin/sogou*修复权限时终端提示文件不存在的解决方案 请问sudo chmod +x /usr/bin/sogou*修复权限时终端提示文件不存在的解决办法”。 用户提到“参考站内引用”,但在我的记忆中,之前的对话中并没有关于这个的具体讨论。用户说“上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答”。回顾系统指令,用户上一次的问题是关于快速排序的,但这里是新的问题。所以,我需要专注于当前的问题。 用户的问题核心是:在执行sudo chmod +x /usr/bin/sogou*时,终端提示文件不存在。需要一个解决方案。 关键命令是:sudo chmod +x /usr/bin/sogou* 问题:文件不存在。 可能的原因: 1. 文件确实不存在:路径/usr/bin/sogou*可能没有匹配的文件。sogou可能指的是搜狗输入法相关文件。 2. 权限问题:即使文件存在,用户可能没有权限访问,或者sudo需要密码。 3. 星号(*)通配符问题:在shell中,如果没有任何文件匹配sogou*,命令会失败。 4. 命令错误:用户可能输入了错误的命令。 常见解决方案: - 检查文件是否存在:使用ls命令查看/usr/bin/sogou*是否有文件。 - 手动指定文件:如果知道具体文件,直接指定路径。 - 修复搜狗输入法:这可能是用户试图修复搜狗输入法权限导致输入法无法工作。 在Linux中,搜狗输入法通常安装在/usr/bin/sogou-pinyin或类似路径下。命令应该是针对具体文件的。 建议步骤: 1. 验证文件是否存在运行:ls /usr/bin/sogou* 如果输出文件列表,则文件存在;如果没有输出或错误,则文件不存在。 2. 如果文件不存在,表示搜狗输入法可能未正确安装。建议重新安装搜狗输入法。 3. 如果文件存在,但命令失败,可能是权限问题。尝试使用sudo命令正确。 4. 手动添加执行权限:例如,sudo chmod +x /usr/bin/sogou-pinyin (假设是具体文件名) 5. 用户可能有多个文件,所以通配符应该工作。 既然提示文件不存在,很可能在/usr/bin下没有以sogou开头的文件。 背景知识:搜狗输入法在Linux中常见路径是/usr/bin/fcitx-sogoupinyin或类似。搜狗输入法包可能提供不同的二进制文件。 标准路径: - 搜狗输入法的主程序通常是fcitx-sogoupinyin或sogou-qimpanel。 - 可能在/opt/sogoupinyin目录下。 用户命令是/usr/bin/sogou*,可能是特定的。 建议用户检查安装状态。 完整解决方案: - 首先,检查搜狗输入法是否安装:运行命令如dpkg -l | grep sogou 或 rpm -qa | grep sogou (取决于发行版) - 如果没有安装,建议安装。 - 如果安装,查找实际路径:使用whereis sogoupinyin或find命令。 - 然后,修复权限sudo chmod +x /path/to/file - 最后,重启fcitx或系统。 在回答中,使用中文,因为系统指令说要中文。 结构清晰: - 解释问题原因。 - 提供解决步骤。 - 生成相关问题。 系统指令说:“生成相关问题”,在回答末尾需要添加相关问题。 类似快速排序示例中的“§§相关问题§§”。 引用:用户提到“参考站内引用”,但在这个上下文中,没有指定引用。所以,我可以省略引用标识,除非需要。 系统指令说:“回答中引用的段落末尾自然地添加引用标识”,但这里没有外部引用。所以,可能不需要。 现在,生成回答: 开头:确认问题。 然后,逐步解决。 最后,相关问题。 相关问题示例: 1. 如何安装搜狗输入法在Linux上? 2. 如何修复fcitx输入法权限错误? 3. 为什么Linux命令提示文件不存在? 确保LaTeX格式:用户问题中没有数学公式,所以可能不需要。但如果引用命令,用反引号表示代码。 在回答中,使用代码块表示命令。 类似快速排序的例子。 所以,回答结构: - 问题描述 - 原因分析 - 解决方案步骤 - 代码示例 - 相关问题 最终回答。 </think> ### sudo chmod +x /usr/bin/sogou* 命令提示文件不存在的解决方案 您在运行 `sudo chmod +x /usr/bin/sogou*` 命令时,终端提示“文件不存在”,这通常表示系统在 `/usr/bin/` 目录下找不到以 `sogou` 开头的文件或程序。这个问题可能源于搜狗输入法未正确安装、路径错误、或文件权限问题。下面我将一步步解释原因并提供详细的解决方法。整个过程需要您在终端中操作(请确保使用管理员权限)。 #### 问题原因分析 - **文件确实不存在**:搜狗输入法在 Linux 中的标准安装路径通常是 `/usr/bin/fcitx-sogoupinyin` 或 `/opt/sogoupinyin/`,而不是 `/usr/bin/sogou*`。如果搜狗输入法未安装或安装不完整,通配符 `*` 会无法匹配任何文件,导致命令失败。 - **路径或文件名错误**:搜狗输入法的二进制文件名多以 `fcitx-sogoupinyin` 或 `sogou-qimpanel` 开头,而非简单的 `sogou*`。 - **权限或环境问题**:即使文件存在,sudo 命令可能因当前用户权限不足或环境配置错误而无法访问文件。 - **Shell 通配符扩展失败**:如果目录中没有以 `sogou` 开头的文件,Shell 会将 `sogou*` 解释为字面文件名,而不是通配符,从而报告错误。 下面我将提供完整的解决步骤。请按顺序操作,以避免进一步问题。 #### 解决步骤 1. **检查搜狗输入法是否安装** 首先,确认搜狗输入法已正确安装。在终端中运行以下命令(根据您的 Linux 发行版选择): - Debian/Ubuntu 系统: ``` bash dpkg -l | grep sogou ``` 如果输出中包含 `fcitx-sogoupinyin` 或类似包名,表示已安装;否则,需要重新安装。 - Red Hat/Fedora 系统: ``` bash rpm -qa | grep sogou ``` 如果无输出,则表示未安装。 如果未安装,请跳过后续步骤,直接安装搜狗输入法(见步骤4)。如果已安装,继续下一步。 2. **验证文件实际路径** 搜索系统中实际存在的搜狗输入法文件: ``` bash sudo find / -name "sogou*" 2>/dev/null ``` 或使用更精确的命令: ``` bash whereis fcitx-sogoupinyin ``` 常见的正确路径可能是: - `/usr/bin/fcitx-sogoupinyin` - `/usr/bin/sogou-qimpanel` - `/opt/sogoupinyin/bin/` 下的文件 如果找到文件(例如 `/usr/bin/fcitx-sogoupinyin`),记住该路径。如果您之前使用的是通配符 `*`,但路径错误,这解释了“文件不存在”的错误。 3. **修复文件权限(基于实际路径)** 一旦确认文件路径,运行 `chmod` 命令赋予执行权限: - 如果文件存在(例如 `/usr/bin/fcitx-sogoupinyin`): ``` bash sudo chmod +x /usr/bin/fcitx-sogoupinyin ``` 如果有多个相关文件(如 `sogou-qimpanel`),逐一添加权限: ``` bash sudo chmod +x /usr/bin/sogou-qimpanel ``` 避免使用通配符 `*`,除非您确认 `/usr/bin/` 下有多个以 `sogou` 开头的文件。 - 如果步骤2中未找到文件,这表示搜狗输入法核心文件缺失,需要重新安装(见下一步)。 4. **重新安装搜狗输入法(如果文件不存在)** 如果文件确实不存在,搜狗输入法可能未安装或损坏。请卸载并重新安装: - 卸载旧版本: ``` bash sudo apt remove fcitx-sogoupinyin # Debian/Ubuntu ``` 或 ``` bash sudo dnf remove fcitx-sogoupinyin # Fedora ``` - 添加官方源并安装(以 Ubuntu 为例): ``` bash sudo add-apt-repository ppa:fcitx-team/nightly sudo apt update sudo apt install fcitx-sogoupinyin ``` - 安装后,重启系统或 Fcitx 输入法框架: ``` bash fcitx -r # 重启 Fcitx ``` 之后,再次运行 `whereis fcitx-sogoupinyin` 确认文件路径,并按步骤3修复权限。 5. **验证和测试** 修复权限后,测试搜狗输入法是否工作: - 打开文本编辑器(如 Gedit),尝试切换输入法。 - 如果问题依旧,检查 Fcitx 配置: ``` bash fcitx-configtool ``` 确保搜狗输入法被启用。 #### 注意事项 - **为什么避免使用通配符**:在命令 `sudo chmod +x /usr/bin/sogou*` 中,`*` 仅在当前目录有匹配文件时生效。如果没有文件,Shell 会报错。建议始终指定完整路径。 - **权限问题**:即使修复了执行权限,搜狗输入法可能还需要其他权限配置(如用户组),确保当前用户属于 `input` 组: ``` bash sudo usermod -aG input $USER ``` 然后注销并重新登录。 - **日志查看**:如果安装或权限修复失败,检查系统日志: ``` bash journalctl -xe | grep sogou ``` 执行以上步骤后,问题通常能得到解决。如果仍有问题,请提供命令输出细节(如 `ls /usr/bin/sogou*` 的结果),以便进一步诊断。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值