Oracle在Linux上如何管理用户
导读:在 Oracle Linux 上管理用户 一 核心概念与文件 本地账户信息主要保存在:/etc/passwd(账户与登录信息)、/etc/shadow(加密口令与口令策略)、/etc/group(组信息)、/etc/gshadow(组口令...
在 Oracle Linux 上管理用户
一 核心概念与文件
- 本地账户信息主要保存在:/etc/passwd(账户与登录信息)、/etc/shadow(加密口令与口令策略)、/etc/group(组信息)、/etc/gshadow(组口令与成员管理)。Oracle Linux 默认启用用户专用组 UPG:创建用户时会自动创建一个与其同名的私有组,该用户为该组的唯一成员。系统使用shadow 口令机制,仅管理员可读写相关文件。用户可用 newgrp 切换当前组,或登录会话中调整有效 GID。口令策略与账户老化等参数由 /etc/login.defs 定义。
二 常用用户与组管理命令
- 创建用户:使用 useradd。示例:
sudo useradd alice。默认会创建家目录(受 /etc/login.defs 中 CREATE_HOME 影响)、使用 UPG 作为主组、默认 Shell 通常为 /bin/bash。可用-d /path、-m、-s /bin/bash等选项自定义家目录、强制创建家目录与登录 Shell。 - 设置口令:使用 passwd。示例:
sudo passwd alice。在 /etc/shadow 中,未设置口令时条目通常以 !! 表示,设置后会被替换为哈希值。 - 修改账户信息:使用 usermod。示例:
sudo usermod -c "Alice Smith" alice(修改 GECOS/全名);将用户加入附加组:sudo usermod -aG staff alice(-aG表示追加到附加组,避免覆盖原有附加组)。 - 创建与维护组:使用 groupadd。示例:
sudo groupadd staff。查看组:tail /etc/group或grep staff /etc/group。 - 组成员与切换:查看组成员:
groups;临时切换主组:newgrp staff;切换用户会话:su - alice。 - 删除用户:使用 userdel。示例:
sudo userdel -r alice(-r同时删除家目录与邮件假脱机)。操作前确认无正在运行的进程与重要数据。
三 目录共享与权限配置
- 典型需求:让多个用户对同一目录具备写入能力,且新建文件继承目录的组,避免权限混乱。
- 操作步骤(示例:/staff 目录,成员为 alice、oracle):
- 创建目录:
sudo mkdir /staff - 变更目录组:
sudo chgrp -R staff /staff - 设置 setgid 与权限:
sudo chmod -R 2775 /staff(2=setgid,使得新建文件继承目录的组;775 为 rwxrwxr-x) - 将用户加入组:
sudo usermod -aG staff alice、sudo usermod -aG staff oracle - 验证:
su - oracle后groups应看到 oracle 与 staff;在 /staff 中创建文件,检查组与权限是否符合预期。
- 创建目录:
- 说明:setgid 位确保目录内新创建的文件/子目录继承目录的 GID,配合合适的 umask 与组权限,可实现安全共享。
四 授予管理员权限与集中身份管理
- 授予 sudo 权限:编辑 /etc/sudoers(建议使用
visudo)。示例:为 oracle 授予全部命令的 sudo 权限- 单行:
oracle ALL=(ALL) ALL - 免密执行特定命令(如启停监听、RMAN):
oracle ALL=(ALL) NOPASSWD: /u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl, /u01/app/oracle/product/19.0.0/dbhome_1/bin/rman
- 单行:
- 集中身份管理:在大规模环境中,账户与组信息可存放在中央目录(如 LDAP、NIS),通过 authselect 配置认证与身份源,登录时自动挂载家目录与访问远程文件系统。
五 易错点与排查
- 忘记加 -a 使用
usermod -G会覆盖附加组,导致用户丢失原有组;应使用usermod -aG。 - 新建文件不属于预期组,多为未设置目录 setgid 或用户不在目标组;检查
ls -ld /path是否为 drwxrwsr-x,以及groups输出。 - 口令未生效或账户被锁定,检查 /etc/shadow 中是否为 !!(未设置)或 !(锁定),必要时用
passwd重设并确认策略(如 /etc/login.defs 的老化设置)。 - 删除用户失败,常见原因为仍有进程占用或会话存在;清理会话后再执行
userdel -r,或排查相关服务与进程。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Oracle在Linux上如何管理用户
本文地址: https://pptw.com/jishu/749047.html
