【Linux用户与组管理】前篇——用户管理

目录

前言

一、概述

1.概念 - 用户

2.类型

(1)超级管理员用户

(2)普通用户

(3)程序用户

二、模板目录

1.概念

2.作用

3.运维案例

(1)家目录异常

(2)故障再现

(3)修复

4、查看历史命令

5.批量创建

(1)文件

(2)目录结构查看

(3)同级目录

(4)子级目录

三、相关文件

1./etc/passwd   

2./etc/shadow   存储用户密码信息

3./etc/group

4./var/spool/mail

四、用户操作 - 创建

1.概念

2.案例

3.创建用户的特点

4.shell

(1)查看系统支持的可登录shell

(2)可登录系统

(3)不可登录系统

5.选项

(1)-d,--home-dir

(2)-e, --expiredate

(3)-f, --inactive

(4)-g, --gid

(5)-G, --groups

(6)-M, --no-create-home

(7) -N, --no-user-group

(8)-p, --password PASSWORD

(9)-s, --shell SHELL

(10)-u, --uid UID

五、用户操作 - 修改属性

1.语法

2.选项

(1)-d,--home-dir

(2)-e,--expiredate

(3)-f,--inactive

(4)-g,--gid

(5)-G,--group

(6)-L,--lock

(7)-m,--move-home

(8)-p,--password

(9)-s,--shell

(10)-u,--uid

(11)-U,--unlock

六、用户操作 - 密码设置

1.passwd

(1)作用

(2)语法

(3)选项

(4)非交互式修改密码

2.chpasswd

(1)作用

(2)语法

(3)案例

七、用户操作 - 删除

1.语法

2.选项

3.案例


前言

此次学习并未完全把用户与组的管理学完,只是一部分,由于相关内容拆分成两份,所以此次先归纳用户的管理,待下次学完进行补充。


一、概述

1.概念 - 用户

使用者在操作系统中的身份映射,用来完成使用者的一系列操作。

2.类型

(1)超级管理员用户

root    使用所有系统及程序命令,UID是0。

(2)普通用户

一般为自定义创建角色,使用有限的系统命令和具有使用权限的程序命令,UID是1000~65535。

(3)程序用户

此类内置用户一般不允许登录系统,且不创建家目录。一般用于运行程序指令,UID是1~999。

【Linux用户与组管理】前篇——用户管理_第1张图片

 注:UID是用户在系统中的唯一标识符

二、模板目录

1.概念

此目录的位置是/etc/skel/ 当用户新建并创建家目录时,复制该目录下的所有内容。

【Linux用户与组管理】前篇——用户管理_第2张图片

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

【Linux用户与组管理】前篇——用户管理_第3张图片

验证即可    su user233

【Linux用户与组管理】前篇——用户管理_第4张图片

4、查看历史命令

此命令为history,可查看历史输入命令,默认保留一千条。

【Linux用户与组管理】前篇——用户管理_第5张图片

5.批量创建

(1)文件

{n..m}.  n、m都是整数,n是起始,m是终止且n

例子:touch t{1..10}.txt

【Linux用户与组管理】前篇——用户管理_第6张图片

(2)目录结构查看

安装tree:

rpm -ivh /run/media/root/CentOS 7 x86_64/Packages/tree-1.6.0-10.el7.x86_64.rpm

【Linux用户与组管理】前篇——用户管理_第7张图片

(3)同级目录

mkdir a{1..10}

(4)子级目录

{a,b,c} 逐一取出大括号内的值

mkdir -p {aa/{cc/gg,dd},bb/{ee/hh,ff}}

【Linux用户与组管理】前篇——用户管理_第8张图片

三、相关文件

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

【Linux用户与组管理】前篇——用户管理_第9张图片

3.创建用户的特点

创建新用户,假如没有跟新用户同名的组或没有指定用户的基本组,则肯定会创建同名用户。

4.shell

(1)查看系统支持的可登录shell

cat /etc/shells

【Linux用户与组管理】前篇——用户管理_第10张图片

(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

【Linux用户与组管理】前篇——用户管理_第11张图片

新建用户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

【Linux用户与组管理】前篇——用户管理_第12张图片

切换到user2用户     su user2

发现家目录异常
su: 警告:无法更改到 /home/user2 目录: 权限不够
-bash: /home/user2/.bash_profile: 权限不够
-bash-4.2$ 

可以用命令修改/home/user2文件的属主和属组恢复正常。

【Linux用户与组管理】前篇——用户管理_第13张图片


总结

  • Linux与Windows的差别由本节可见,就这个允许多用户同时操作而言,Linux可以做到更多的事。当然了,如果Windows也开源了或许能做到更多。
  • 此次学习还涉及到了一个初步的运维案例,把现在所学的理论知识灵活用于实践还有一定难度。所以需要勤加练习啊!

你可能感兴趣的:(Linux小白初期,linux,运维,服务器,网络)