ubuntu不小心使用sudo chmod -R 777 / 修改根目录权限问题修复

不小心使用sudo chmod -R 777 / 修改根目录权限,导致如下问题:

  • sudo不可用,很多权限验证无法使用
  • 没有wifi列表
  • cups进程(主要是服务于打印机)占用100%cpu,不停往/var/log/error_log里写,不断吞噬存储空间
  • 中文输入法失效
    方法:修复根目录下文件的权限 这中间有一些坑,需要注意。
    由于刚开始并不知道是修改了权限的问题,所以开始主要解决sudo不可用的问题。解决sudo不可用的问题对之后解决整个问题也是必须的。
    解决sudo不可用的问题:修改/usr/bin/sudo归属和权限
    - chown root:root /usr/bin/sudo
    - chmod 4755 /usr/bin/sudo
    但是这两条命令都需要root权限,由于我没有root用户,所以就只能通过进入recovery模式获得root权限,具体的方法可以百度得到:修改/usr/bin/sudo归属和权限
    经验教训:一定要设置一个root用户,以防不知之需。
    接下来就是修复根目录下文件的权限:可以参见这个
    ubuntu 有两个命令可以实现:getfacl、setfacl
    在一台相同系统和相同版本的内核的ubuntu系统上使用:getfacl -R / > ./systemp.bak
    将systemp.bak 文件拷贝到待修复的电脑上,在根目录下执行
从 OpenLDAP 2.4 版本开始,默认配置方式从传统的 `slapd.conf` 转向了动态配置(**OLC: On-Line Configuration**),配置信息存储在 `slapd.d` 目录中。以下是针对动态配置(`slapd.d`)添加 SSL/TLS 支持的完整步骤: --- ### **1. 生成 SSL 证书** #### 1.1 创建证书目录(如果存在) ```bash sudo mkdir -p /etc/ldap/ssl cd /etc/ldap/ssl ``` #### 1.2 生成自签名证书(测试用) ```bash # 生成根 CA 证书 sudo openssl req -x509 -newkey rsa:2048 -days 3650 -nodes \ -keyout ca.key -out ca.crt \ -subj "/CN=My LDAP CA/O=My Org/C=US" # 生成服务器证书请求(CSR) sudo openssl req -newkey rsa:2048 -nodes \ -keyout server.key -out server.csr \ -subj "/CN=ldap.example.com/O=My Org/C=US" # 用根 CA 签发服务器证书 sudo openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key \ -CAcreateserial -out server.crt -days 3650 ``` #### 1.3 设置证书权限 ```bash sudo chown -R openldap:openldap /etc/ldap/ssl sudo chmod 400 /etc/ldap/ssl/*.key sudo chmod 444 /etc/ldap/ssl/*.crt ``` --- ### **2. 配置 OpenLDAP 启用 SSL/TLS** #### 2.1 创建 LDIF 文件(`tls.ldif`) 创建文件 `/tmp/tls.ldif`,内容如下: ```ldif dn: cn=config changetype: modify add: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ldap/ssl/ca.crt - add: olcTLSCertificateFile olcTLSCertificateFile: /etc/ldap/ssl/server.crt - add: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ldap/ssl/server.key - add: olcTLSCipherSuite olcTLSCipherSuite: HIGH:!aNULL:!eNULL:!3DES - add: olcTLSProtocolMin olcTLSProtocolMin: 3.3 ``` #### 2.2 应用配置 ```bash sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/tls.ldif ``` #### 2.3 修改监听地址 创建文件 `/tmp/listen.ldif`,内容如下: ```ldif dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/ldap/ssl/server.crt - replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ldap/ssl/server.key - replace: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ldap/ssl/ca.crt - replace: olcSecurity olcSecurity: tls=1 ``` 应用配置: ```bash sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/listen.ldif ``` --- ### **3. 重启 OpenLDAP 服务** ```bash # Ubuntu/Debian sudo systemctl restart slapd # RHEL/CentOS sudo systemctl restart slapd ``` --- ### **4. 验证 SSL 配置** #### 4.1 使用 `ldapsearch` 测试加密连接 ```bash ldapsearch -x -H ldaps://localhost:636 -b "dc=example,dc=com" -D "cn=admin,dc=example,dc=com" -W ``` #### 4.2 检查 SSL 握手 ```bash openssl s_client -connect localhost:636 -showcerts ``` #### 4.3 查看日志(调试用) ```bash journalctl -u slapd -f # 实时查看日志(Systemd系统) ``` --- ### **5. 客户端信任 CA 证书** #### 5.1 将 CA 证书复制到客户端 ```bash # Ubuntu/Debian sudo cp /etc/ldap/ssl/ca.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates # RHEL/CentOS sudo cp /etc/ldap/ssl/ca.crt /etc/pki/ca-trust/source/anchors/ sudo update-ca-trust ``` --- ### **6. 强制禁用明文 LDAP(可选)** 创建文件 `/tmp/disable_plain.ldif`: ```ldif dn: cn=config changetype: modify replace: olcSecurity olcSecurity: tls=1 ssf=256 ``` 应用配置: ```bash sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/disable_plain.ldif ``` --- ### **7. 常见问题处理** #### 错误:`TLS error -8172: Peer's certificate issuer is not recognized` - **原因**:客户端未信任 CA 证书。 - **解决**:确保客户端已正确安装 `ca.crt`。 #### 错误:`Permission denied` 访问证书 - **解决**: ```bash sudo chown openldap:openldap /etc/ldap/ssl/* sudo chmod 400 /etc/ldap/ssl/server.key ``` #### SELinux 限制(RHEL/CentOS) 允许 `slapd` 访问证书文件: ```bash sudo setsebool -P slapd_can_connect_ldap=true ``` --- ### **总结** 通过动态配置(`slapd.d`)启用 SSL/TLS 的步骤与传统 `slapd.conf` 同,但核心逻辑一致。关键点: 1. 使用 `ldapmodify` 修改 `cn=config` 条目。 2. 确保证书路径和权限正确。 3. 客户端必须信任 CA 证书。
最新发布
05-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值