在 CentOS 里,“导入权限”这个表达比较宽泛,常见场景一般有下面几种。你可以对照看看你指的是哪一种,我也可以再针对你具体场景细化。
如果是在两台 CentOS 之间迁移目录权限,常用方法:
getfacl / setfacl# 在源服务器
getfacl -R /data > acl.txt
# 在目标服务器
setfacl --restore=acl.txt
✅ 推荐:能完整保留用户、组、特殊权限
tar czvpf data.tar.gz /data
解压时也要保留权限:
tar xzvpf data.tar.gz -C /
chmod -R 755 /data
chown -R user:group /data
直接复制以下文件(不推荐新系统直接使用):
/etc/passwd
/etc/shadow
/etc/group
⚠️ 风险提醒:
✅ 推荐方式:
useradd username
passwd username
批量导入用户可用脚本:
while read user pass; do
useradd $user
echo "$user:$pass" | chpasswd
done < user.list
如果是 权限正常但访问被拒绝,大概率是 SELinux。
getenforce
setenforce 0
vi /etc/selinux/config
SELINUX=disabled
restorecon -Rv /data
visudo
添加:
username ALL=(ALL) ALL
或直接加入 wheel 组:
usermod -aG wheel username
如果你是 导入数据库后报权限错误:
GRANT ALL PRIVILEGES ON dbname.* TO 'user'@'localhost';
FLUSH PRIVILEGES;
ls -l # 查看权限
id user # 查看用户和组
ls -Z # 查看 SELinux 上下文
如果你能具体说一下:
我可以直接给你一套 最合适、最安全的操作方案。