更新中…
背景知识
-
用户配置文件说明,参考链接:/etc/passwd /etc/shadow
# root@linux pwconv # 修改/etc/passwd 密文为x, 并在/etc/shadow中生成影子密码 $usage: sudo pwconv
#root@linux passwd #示例强行设置密码过期,用户登录会提示需要修改密码 $ sudo passwd -e UserName
#root@linux usermod #修改/etc/passwd中的字段
-
用户组配置文件 参考链接 /etc/group
添加用户
方案1 手动添加
- 编辑/etc/passwd和/etc/shadow文件,添加新用户
$ sudo vipw#增加一行 Ruby:x:1001:1001:ubuntu@thinkpad-t450,,,:/home/ruby:/bin/bash
- 编辑/etc/group文件,定义用户所属组
- 设置用户初始密码
$sudo passwd Ruby - 创建HOME目录
$sudo mkdir /home/ruby - 拷贝启动配置(位于HOME下的隐藏文件,例如.bashrc < rc 是run command的简称>),可选应用及其配置参考下表
Command | Filename | Typical Use |
---|---|---|
sh | .profile | set search path, terminal type and envirenment |
bash | .bashrc | set the terminal type set biff and mesg switches |
bash | .bash_profile | Setup envirenment variables\Set command aliases\Set the search path\Sets the umask value to control permissions\Set CDPATH for filename searches… |
vi/vim | .exrc/.vimrc | Set vi/vim editor options |
emacs | .emacs | Set emacs editor options and key bindings |
mail/mailx | .mailrc | Defines personal mail aliases\Sets mail reader options |
GNOME | .gconf/.gconfpath | |
KDE | .kde/ |
bash 同时会读取.profile 以及/etc/profile 以模拟sh的功能
-
修改权限/home/ruby 目录,owner为Ruby/所属组为jianleya
$sudo chown -R Ruby:jianleya /home/ruby -
验证Ruby账户可用并邮件通知用户ruby(账户/密码通知注意保密)
-
最好构建数据库记录用户创建账户原因,定期密码更新提示,跟踪系统使用者以及原因,账户撤销等…
方案2 借助工具 useradd
- 简单示例
#/etc/passwd 定义新的用户wein
$sudo useradd wein
#为wein 生成密码 使账户可用
$sudo passwd wein
#手动创建HOME目录并修改权限
$sudo mkdir /home/wein
$chown -R wein:jianleya /home/wein
…至此,wein账户可用 - 一个更常用的方式是通过参数给useradd实现
$ sudo useradd -c “wessis” -d /home/wessis -g jianleya -G ruby -m -s /bin/bash wessis
#说明:-c “用户登录名” -d “用户HOME” -g “用户初始用户组” -G “用户附加组” -s “指定SHELL” 最后为用户名wessis
$sudo passwd wessis
#说明:为用户wessis生成密码
添加用户(多个)
方案1 借助工具 newusers
#用法: newusers [options] [file]
#file格式pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell
示例:基于Ubuntu16.04笔者进行多种尝试,但newusers命令始终不能正常工作…上帝原谅我吧!!!
#cat usersfile
Nora:Nora::Jaune::/home/Nora:/bin/bash
Pyrrha:Pyrrha::Jaune::/home/Pyrrha:/bin/bash
Ren:Ren::Jaune::/home/Ren:/bin/bash
方案2 借助工具 Python 或者 Perl (+useradd)
删除用户(基础)
删除列表 | 备注 |
---|---|
用户数据库/电话清单 | |
crontab file以及pendind job | |
关闭用户启动的服务 | |
文件:passwd,shadow,group,gshadow | Ubuntu提供命令deluser(Perl写成它,底层调用userdel命令删除用户) |
用户 HOME目录 | |
用户 Mail存储池 | |
用户创建的文件 etc | 用户删除后残留于本地系统的文件:sudo find filesystem -xdev -nouser |
停用用户
方法 | 备注 |
---|---|
usermod {-U,-L} | 适用Linux系统,通过设置/etc/passwd或者/etc/shadow 增加一个特殊字符,禁止系统对密码进行解密:这样系统就不会通过密码解密服务 |
改变用户登录shell(编辑/etc/passwd) | usermod方式,用户很可能无法得到任何停用的通知/原因。管理员可以编写说明shell,用于说明账户停用消息。 |
其它 | 改变Shell的方法同样有隐患,因为用户可能直接通过Xwindow去登录,或者有的网络服务和shell没有关联,用户是可以通过自己的账户密码使用这类服务的… |
系统指定工具
系统 | 工具 | 备注1 | 备注2 |
---|---|---|---|
HP-UX | sam | 此系统早期版本名称:System Administation Management Interface | 图形窗口 |
HP-UX | smh | 此系统最近版本名称:System Management Homepage | 图形窗口 |
AIX | smitty | F6 调试窗口可以方便的看到系统执行的命令 | 是个很好的学习工具 |