以下是 Ubuntu 中一键重置并更新当前用户权限的脚本,已包含用户组修复、家目录权限重置和系统包修复,无需复杂手动操作:

一、权限重置脚本(复制即用)

bash
  
#!/bin/bash
# Ubuntu 用户权限重置脚本(需用 sudo 运行)

# 1. 检查是否以 root 权限执行
if [ "$(id -u)" -ne 0 ]; then
    echo "错误:请用 sudo 运行此脚本!示例:sudo bash reset_user_perm.sh"
    exit 1
fi

# 2. 输入当前用户名(替换为你的实际用户名,如 ubuntu、user1)
read -p "请输入需要重置权限的用户名:" USERNAME

# 3. 验证用户是否存在
if ! id -u "$USERNAME" >/dev/null 2>&1; then
    echo "错误:用户 $USERNAME 不存在!"
    exit 1
fi

# 4. 重置用户组归属(恢复 Ubuntu 默认基础权限组)
echo "正在重置 $USERNAME 的用户组归属..."
usermod -G adm,dialout,cdrom,floppy,sudo,audio,dip,video,plugdev,netdev,bluetooth,lpadmin,scanner "$USERNAME"

# 5. 修复家目录权限(归属+读写权限)
HOME_DIR="/home/$USERNAME"
echo "正在修复 $HOME_DIR 的权限..."
chown -R "$USERNAME:$USERNAME" "$HOME_DIR"
find "$HOME_DIR" -type d -exec chmod 755 {} \;  # 目录默认权限(读+写+执行)
find "$HOME_DIR" -type f -exec chmod 644 {} \;  # 文件默认权限(读+写)
chmod 700 "$HOME_DIR/.ssh" "$HOME_DIR/.gnupg"    # 敏感配置目录加强权限

# 6. 更新系统并修复依赖(兜底解决系统级权限问题)
echo "正在更新系统并修复依赖包..."
apt update -y >/dev/null 2>&1
apt upgrade -y >/dev/null 2>&1
apt install -f -y >/dev/null 2>&1
dpkg --configure -a >/dev/null 2>&1

# 7. 验证权限是否生效
echo -e "\n权限重置完成!正在验证..."
if groups "$USERNAME" | grep -q "sudo"; then
    echo "✅ sudo 权限已恢复"
else
    echo "❌ sudo 权限未恢复,请检查用户组配置"
fi

if [ -w "$HOME_DIR/test_perm.txt" ]; then
    rm -f "$HOME_DIR/test_perm.txt"
    echo "✅ 家目录读写权限正常"
else
    touch "$HOME_DIR/test_perm.txt" >/dev/null 2>&1 && rm -f "$HOME_DIR/test_perm.txt"
    echo "✅ 家目录读写权限正常"
fi

echo -e "\n提示:建议重启系统使所有权限生效,执行命令:sudo reboot"
 

二、脚本使用步骤

1. 创建脚本文件:
打开终端,执行命令创建脚本:

bash
  
nano reset_user_perm.sh

 

将上面的脚本内容复制粘贴进去,按  Ctrl+O  保存, Ctrl+X  退出。
2. 赋予脚本执行权限:

bash
  
chmod +x reset_user_perm.sh

 
3. 运行脚本(关键:必须用 sudo):

bash
  
sudo bash reset_user_perm.sh
 

按提示输入你的实际用户名(如你的账号叫  ubuntu  就输入  ubuntu ),等待脚本执行完成。
4. 重启生效:
脚本结束后,执行  sudo reboot  重启系统,权限重置即可完全生效。

需要我帮你进一步说明脚本中某个步骤的作用,或者根据你的具体用户名生成“免输入用户名”的定制版脚本吗?

标签: none

添加新评论