目录
前言
此次学习并未完全把用户与组的管理学完,只是一部分,由于相关内容拆分成两份,所以此次先归纳用户的管理,待下次学完进行补充。
一、概述
1.概念 - 用户
使用者在操作系统中的身份映射,用来完成使用者的一系列操作。
2.类型
(1)超级管理员用户
root 使用所有系统及程序命令,UID是0。
(2)普通用户
一般为自定义创建角色,使用有限的系统命令和具有使用权限的程序命令,UID是1000~65535。
(3)程序用户
此类内置用户一般不允许登录系统,且不创建家目录。一般用于运行程序指令,UID是1~999。
注:UID是用户在系统中的唯一标识符
二、模板目录
1.概念
此目录的位置是/etc/skel/ 当用户新建并创建家目录时,复制该目录下的所有内容。
2.作用
定义用户登录终端时的显示样式及环境变量设置。其中,~/.bashrc 是用来定义显示样式。
3.运维案例
(1)家目录异常
用户误删除家目录文件或家目录迁移过程出错导致文件属性变化。
(2)故障再现
把/etc/skel/的内容移动到/opt mv /etc/skel/.bash* /opt/
创建用户user233
su user233
显示结果异常 -bash-4.2$
(3)修复
使用user233用户 cp /opt/.bash* /home/user233
exit
验证即可 su user233
4、查看历史命令
此命令为history,可查看历史输入命令,默认保留一千条。
5.批量创建
(1)文件
{n..m}. n、m都是整数,n是起始,m是终止且n<m。
例子:touch t{1..10}.txt
(2)目录结构查看
安装tree:
rpm -ivh /run/media/root/CentOS 7 x86_64/Packages/tree-1.6.0-10.el7.x86_64.rpm
(3)同级目录
mkdir a{1..10}
(4)子级目录
{a,b,c} 逐一取出大括号内的值
mkdir -p {aa/{cc/gg,dd},bb/{ee/hh,ff}}
三、相关文件
1./etc/passwd
存储用户信息
2./etc/shadow 存储用户密码信息
示例:tail -1 /etc/shadow
user1:!!:19522:0:99999:7:::
用户名:密码:用户创建时间:密码最短使用期限:密码最长使用期限:密码过期提醒时间:密码过期后的宽容时间:密码过期时间:没用
3./etc/group
存储组信息
4./var/spool/mail
用户邮箱文件
四、用户操作 - 创建
1.概念
useradd 创建一个新用户或更新默认新用户信息。
2.案例
(1)useradd user233
(2)tail -1 /etc/passwd
(3)user233:x:1003;1003::home/user233:/bin/bash
(4)用户名:密码占位符:用户ID:组ID:用户描述信息:用户家目录:登录shell
3.创建用户的特点
创建新用户,假如没有跟新用户同名的组或没有指定用户的基本组,则肯定会创建同名用户。
4.shell
(1)查看系统支持的可登录shell
cat /etc/shells
(2)可登录系统
/bin/bash 此为CentOS默认shell
(3)不可登录系统
/sbin/nologin 程序用户一般都设为该shell
/bin/sync
/sbin/shutdown
/sbin/halt
注:shell为[命令解释器]
5.选项
(1)-d,--home-dir
指定用户的家目录 ,格式: useradd -d /path username
(2)-e, --expiredate
指定用户的失效时间,格式: useradd -e YYYY-MM-DD username
(3)-f, --inactive
密码过期后,账户被彻底禁用之前的天数。0表示立即禁用,-1 表示禁用这个功能。
格式: useradd -f n (n为数字) username
(4)-g, --gid
用户初始登录组(基本组)的组名或GID。组名必须已经存在。组号码必须指代已经存在的组。
格式: useradd -g GID username
(5)-G, --groups
指定用户的附加组,该组必须已经存在,格式: useradd -G GID username
(6)-M, --no-create-home
不创建用户的主目录,常用于程序用户的创建,格式: useradd -M username
(7) -N, --no-user-group
不创建同名的组,格式: useradd -g GID -N username
(8)-p, --password PASSWORD
加密后的新账户密码,格式: useradd -p 加密后的密码 username
(9)-s, --shell SHELL
新账户的登录 shell,格式: useradd -s shell的路径 username
(10)-u, --uid UID
新账户的用户 ID,格式: useradd -u 指定的ID号 username
五、用户操作 - 修改属性
1.语法
usermod [option] username
2.选项
(1)-d,--home-dir
修改用户的家目录,格式:usermod -d /path username
(2)-e,--expiredate
修改用户的失效时间,格式:usermod-e YYYY-MM-DD username
(3)-f,--inactive
密码过期后,账户被彻底禁用之前的天数。0表示立即禁用,-1 表示禁用这个功能。格式:usermod -f n (n为数字) username
(4)-g,--gid
用户初始登录组(基本组)的组名或GID。组名必须已经存在。组号码必须指代已经存在的组。格式:usermod -g GID username
(5)-G,--group
修改用户的附加组,该组必须已经存在,格式:usermod -G GID username
(6)-L,--lock
锁定用户密码,账户不能登录系统,格式:usermod -L username
(7)-m,--move-home
与-d选项配合,将老的家目录内容移动到-d指定的新家目录,格式:usermod -m -d /newdirpath username
(8)-p,--password
修改账户密码,格式:usermod -p 加密后的密码 username
(9)-s,--shell
修改账户的登录 shell,格式:usermod-s shell的路径 username
(10)-u,--uid
修改账户的用户 ID,格式:usermod -u 指定的ID号 username
(11)-U,--unlock
解除密码锁定,格式:usermod -U username
六、用户操作 - 密码设置
1.passwd
(1)作用
单个用户密码设置
(2)语法
passwd [选项] username
(3)选项
-l, --lock
锁定用户密码,账户不能登录系统。格式:passwd -l username
--stdin
读取标准输入的内容作为密码。格式: passwd --stdin username
-u, --unlock
解除密码锁定。格式:passwd -u username
-d, --delete
删除用户密码。格式:passwd -d username
-e, --expire
设置密码有效期。格式:passwd -e YYYY-MM-DD username
-S, --status
查看给定账户的密码状态(锁定或不锁定)。格式:passwd -S username
(4)非交互式修改密码
echo a | passwd --stdin user1
2.chpasswd
(1)作用
批量用户设置密码
(2)语法
echo -e "username1:password1\nusername2:password2" | chpasswd
chpasswd < filename
cat filename | chpasswd
注:<,是重定向输入
(3)案例
vim upwd.txt user1:123.com
user2:1234.com
cat upwd.txt | chpasswd 或者 chpasswd < upwd.txt
注:生成用户与密码的对应关系
username:password
echo -e "username1:password1\nusername2:password2" [> filename]
七、用户操作 - 删除
1.语法
userdel [选项] username
2.选项
-r, --remove 用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。
格式:userdel -r username
3.案例
现有用户user2 useradd user2
查看/home中的user2文件的属性
drwx------ 5 user2 user2 128 6月 14 11:36 user2
删除user2用户 userdel user2
查看/home中的user2文件的属性
drwx------ 5 1002 1002 128 6月 14 11:36 user2
新建用户user3 useradd user3
查看/home中的user2文件的属性
drwx------ 5 user3 user3 128 6月 14 11:36 user2
drwx------ 3 user3 user3 78 6月 14 11:50 user3
再次创建user2用户 useradd user2
查看/home中的user2文件的属性
drwx------ 5 user3 user3 128 6月 14 11:36 user2
drwx------ 3 user3 user3 78 6月 14 11:50 user3
切换到user2用户 su user2
发现家目录异常
su: 警告:无法更改到 /home/user2 目录: 权限不够
-bash: /home/user2/.bash_profile: 权限不够
-bash-4.2$
可以用命令修改/home/user2文件的属主和属组恢复正常。
总结
- Linux与Windows的差别由本节可见,就这个允许多用户同时操作而言,Linux可以做到更多的事。当然了,如果Windows也开源了或许能做到更多。
- 此次学习还涉及到了一个初步的运维案例,把现在所学的理论知识灵活用于实践还有一定难度。所以需要勤加练习啊!