当前位置: 首页 > 工具软件 > Linx > 使用案例 >

LINX用户指令

谷梁俊楚
2023-12-01

基本账号的访问控制
–账号类别:用户账号,组账号
–识别方式:UID,GID

用户账号:
–超级用户root,系统用户,普通用户

组账号:用来管理用户,不用于登录
–基本组(私有组)
–附加组(从属组)

注:Linux里一个用户至少属于一个组

#创建用户zhangsan,默认会创建一个和该用户同名的一个组,并把该用户加入到组,这个组称为用户的基本组

[root@A ~]# useradd zhangsan

用户基本信息存放在/etc/passwd文件,每个用户记录一行,以:分割为7个字段

用户账号名称:密码占位符x:用户UID号:所属基本组的GID号:用户描述信息(用户全名):家目录(宿主目录):登录shell程序的路径

[root@A ~]# grep ‘zhangsan’ /etc/passwd
zhangsan❌1005:1005::/home/zhangsan:/bin/bash
[root@A ~]# wc -l /etc/passwd
[root@A ~]#

++++++++++++++++++++++++++++++++++++++++++++++++++++++
用户创建
格式: useradd [选项] 用户名
选项:
-d:指定用户家目录,默认为/home/用户名
-u:指定用户的UID
-s:指定shell解释器
-G:指定用户的附加组

[root@A ~]# useradd nsd01
[root@A ~]# grep “nsd01” /etc/passwd
[root@A ~]# id nsd01
[root@A ~]# useradd nsd02
[root@A ~]# id nsd02
[root@A ~]# useradd -u 1234 nsd03 #指定nsd03用户的UID为1234
[root@A ~]# id nsd03
[root@A ~]# grep nsd03 /etc/passwd
[root@A ~]# useradd nsd04 # UID是从上一个用户的UID加1
[root@A ~]# grep nsd04 /etc/passwd
[root@A ~]# useradd -d /opt/nsd05 nsd05 #指定nsd05用户的家目录为/opt/nsd05
[root@A ~]# grep nsd05 /etc/passwd
[root@A ~]# ls /opt/
[root@A ~]# useradd -s /sbin/nologin nsd06 #指定nsd06解释器为/sbin/nologin(/sbin/nologin:禁止用户登录操作系统)
[root@A ~]# grep nsd06 /etc/passwd
[root@A ~]# groupadd tedu #创建tedu组
[root@A ~]# useradd -G tedu nsd07 #指定用户nsd07的附加组为tedu
[root@A ~]# id nsd07

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
设置登录密码(passwd命令):
格式:passwd [选项] 用户名
常用选项:
–stdin:从标准输入(比如管道)取密码

用户密码信息存放在/etc/shadow文件中
每一行为一个记录,以:分割9个字段
字段1:用户帐号的名称
字段2:加密后的密码字符串

字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认0
字段5:密码的最长有效天数,默认99999
字段6:密码过期前的警告天数,默认7

字段7:密码过期后多少天禁用此用户账号
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)

[root@A ~]# grep nsd /etc/shadow

[root@A ~]# passwd nsd01 #为nsd01用户设置密码
更改用户 nsd01 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]# grep nsd01 /etc/shadow

[root@A ~]# su - nsd01 #切换到nsd01用户,管理员切换普通用户不需要输入密码
[nsd01@A ~]$ passwd #nsd01用户修改密码
更改用户 nsd01 的密码 。
为 nsd01 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[nsd01@A ~]$ exit
[root@A ~]# su - nsd02 #切换到nsd02用户
[nsd02@A ~]$ su - nsd01 #切换到nsd01用户,普通用户之间切换需要输入密码
密码:

[root@A ~]# passwd nsd01 #管理员可以强制为用户修改密码,不需要知道旧密码
更改用户 nsd01 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]#

非交互式设置密码:

[root@A ~]# echo a | passwd --stdin nsd02
更改用户 nsd02 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]# su - nsd01
上一次登录:二 9月 14 18:59:41 CST 2021pts/1 上
[nsd01@A ~]$ su - nsd02
密码:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

案例1:添加用户账号

1.创建一个名为tedu01的用户账号
2.检查/etc/passwd、/etc/shadow文件的最后一行
3.检查/home/新增加的宿主目录(家目录)
4.新建用户tedu02,宿主目录位于/opt/tedu02

5.新建系统账号system01,将UID设为1345,登录Shell设为/sbin/nologin
6.新建用户admin,附加组设为adm、root

[root@A ~]# useradd tedu01
[root@A ~]# grep tedu01 /etc/passwd
[root@A ~]# tail -1 /etc/passwd
[root@A ~]# tail -1 /etc/shadow
[root@A ~]# ls /home/
[root@A ~]# useradd -d /opt/tedu02 tedu02
[root@A ~]# grep tedu02 /etc/passwd
[root@A ~]# useradd -u 1345 -s /sbin/nologin system01
[root@A ~]# grep system01 /etc/passwd
[root@A ~]# useradd -G adm,root admin
[root@A ~]# id admin
[root@A ~]#

案例2:设置用户密码

1.为用户tedu01设置一个密码:123456

2.过滤/etc/shadow文件中包含tedu01的内容
3.为用户system01设置密码,并测试是否能够登录

4.非交互式给用户tedu02设置密码123456
5.交互式给用户admin,设置密码为redhat

[root@A ~]# echo 123456 | passwd --stdin tedu01
更改用户 tedu01 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]# grep tedu01 /etc/shadow
[root@A ~]# echo 123 | passwd --stdin system01
[root@A ~]# su - system01
This account is currently not available.
[root@A ~]# grep system01 /etc/passwd
system01❌1345:1345::/home/system01:/sbin/nologin
[root@A ~]# echo 123456 | passwd --stdin tedu02
[root@A ~]# passwd admin

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
修改用户属性(usermod)
格式: usermod [选项] 用户名

常用选项:
-d:修改用户家目录
-u:修改用户的UID
-s:修改用户shell解释器
-G:重设附加组

[root@A ~]# usermod -u 1500 nsd03 #修改nsd03用户的UID为1500
[root@A ~]# grep nsd03 /etc/passwd
[root@A ~]# usermod -s /sbin/nologin nsd03 #修改nsd03的登录的shell解释器
[root@A ~]# grep nsd03 /etc/passwd
[root@A ~]# usermod -d /opt/nsd03 nsd03 #只修改了/etc/passwd文件对应的字段值,/opt下面并没有nsd03这个目录
[root@A ~]# grep nsd03 /etc/passwd
[root@A ~]# ls /opt/
[root@A ~]# groupadd tarena #创建tarena组
[root@A ~]# id nsd04
[root@A ~]# usermod -G tarena nsd04 #重置附加组,没有则添加,有则重置
[root@A ~]# id nsd04
[root@A ~]# usermod -G tedu nsd04
[root@A ~]# id nsd04
[root@A ~]#

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
删除用户 (userdel命令)格式:userdel [-r] 用户名

添加 -r 选项,宿主目录/用户邮件也一并删除

[root@A ~]# userdel nsd01
[root@A ~]# grep nsd01 /etc/passwd
[root@A ~]# ls /home/
[root@A ~]# rm -rf /home/nsd01
[root@A ~]# userdel -r nsd02
[root@A ~]# grep nsd02 /etc/passwd
[root@A ~]# id nsd02
id: nsd02: no such user
[root@A ~]# ls /home/

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
用户初始配置文件
配置文件来源:
–新建用户时,根据/etc/skel模板目录复制
主要的初始配置文件:
–~/.bashrc:每次进入新的Bash环境时执行
–~/.bash_profile:每次登陆时执行
–~/.bash_logout:每次退出登陆时执行

[root@A ~]# ls --help > /etc/skel/ls.txt
[root@A ~]# ls /etc/skel/
[root@A ~]# useradd nsd08
[root@A ~]# ls -A /home/nsd08/
[root@A ~]# useradd nsd09
[root@A ~]# ls -A /home/nsd09 #新创建的用户有ls.txt文件
[root@A ~]# ls -A /home/nsd04/
[root@A ~]#

设置别名:

[root@A ~]# vim /root/.bashrc
alias hn=‘hostname’
[root@A ~]# hn #新开启一个终端验证
[root@A ~]# su - nsd08
[nsd08@A ~]$ hn #失败,.bashrc只对自己的用户有效
bash: hn: 未找到命令…
[nsd08@A ~]$ exit
全局配置(所有用户都有效),配置文件/etc/bashrc
[root@A ~]# vim /etc/bashrc
alias hi=‘echo hello’
[root@A ~]# hi #新开启一个终端验证
[root@A ~]# su - nsd08
上一次登录:三 9月 15 00:41:22 CST 2021pts/0 上
[nsd08@A ~]$ hi
hello
[nsd08@A ~]$ exit
登出
[root@A ~]# su - nsd09
[nsd09@A ~]$ hi
hello
[nsd09@A ~]$

+++++++++++++++++++++++++++++++++++++++++++++++++++++
组账号基本操作:
解析组账号文件
–/etc/group,保存组账号的基本信息
–每个组记录一行,以:分割为4个字段
字段1:组账号名称
字段2:密码占位符x
字段3:组账号的GID号
字段4:本组的成员用户列表

–/etc/gshadow,保存组账号的管理信息
–每个组记录一行,以:分割为4个字段
字段1:组账号名称
字段2:加密后的密码字符串
字段3:本组管理员列表
字段4:本组的成员用户列表

添加组账号(groupadd命令)
–格式:groupadd [-g GID] 组名

[root@A ~]# groupadd adminuser
[root@A ~]# grep adminuser /etc/group

gpasswd管理组成员
–格式:gpasswd [选项] 组名
常用命令选项:
-A:定义组管理员列表
-a:添加组成员,每次只能加一个
-M:定义组成员列表,可设置多个
-d:删除组成员,每次只能删一个

[root@A ~]# gpasswd -a nsd03 adminuser #将nsd03用户加入到adminuser组
[root@A ~]# grep adminuser /etc/group
[root@A ~]# gpasswd -a nsd04 adminuser
[root@A ~]# grep adminuser /etc/group
[root@A ~]# gpasswd -M nsd05,nsd06,nsd07 adminuser
[root@A ~]# grep adminuser /etc/groupadminuser❌1503:nsd05,nsd06,nsd07
[root@A ~]# gpasswd -a nsd04 adminuser
[root@A ~]# grep adminuser /etc/group
[root@A ~]# gpasswd -d nsd04 adminuser #将nsd04用户从adminuser组中移除
[root@A ~]# grep adminuser /etc/group
[root@A ~]# grep nsd04 /etc/passwd
[root@A ~]#

+++++++++++++++++++++++++++++++++++++++++++++++++
组的删除(groupdel)
格式:groupdel 组名
–删除的目标组不能是用户的基本组

[root@A ~]# groupdel adminuser
[root@A ~]# grep adminuser /etc/group
[root@A ~]# id nsd04
uid=1235(nsd04) gid=1235(nsd04) 组=1235(nsd04),1238(tedu)
[root@A ~]# groupdel nsd04
groupdel:不能移除用户“nsd04”的主组
[root@A ~]#

 类似资料: