linux核心基础-用户管理

一、linux用户管理前言

1、linux用户信息配置文件

/etc/passwd

2、/etc/passwd字段信息解释

3、其余用户,组相关配置文件

/etc/passwd 用户信息
/etc/shadow  用户密码信息
/etc/group 用户组信息
/etc/gshadow 用户组密码信息  ,在大公司,用户和组数量很大的情况下,需要制定复杂的权限管理,那时会用到组密码
/etc/skel
skel是skeleton的缩写,意为骨骼、框架。故此目录的作用是在建立新用户时,用于初始化用户根目录。系统会将此目录下的所有文件、目录都复制到新建用户的根目录,并且将用户属主与用户组调整为与此根目录相同。

4、密码文件的权限

#用户信息文件,权限是644,所有人可读,有一定安全隐患
[root@pylinux ~]# ll /etc/passwd
-rw-r--r-- 1 root root 1698 10月 13 2019 /etc/passwd

#用户密码文件,除了root用户,其他用户默认是没有任何权限,
[root@pylinux ~]# ll /etc/shadow
---------- 1 root root 892 10月 20 2019 /etc/shadow

#用户密码文件
[root@pylinux ~]# tail -5 /etc/shadow
mysql:!!:17980::::::
yu:$1$Kx9cz6sK$GE3jiHtjJikn9Ai4ECINn/:18031:0:99999:7:::
epmd:!!:18074::::::
rabbitmq:!!:18074::::::
py:!!:18182:0:99999:7:::

二、用户管理linux命令实战

用户管理涉及的命令

1、useradd

用法1:useradd -D #查看创建用户的默认值
用法2:useradd[选项]用户名 #根据选项创建用户

选项
-g:表示指定用户的用户主(主要)组,选项值可以是用户组ID,也可以是组名  (注意是加入已经存在的组)
-G:表示指定用户的用户附加(额外)组,选项值可以是用户组ID,也可以是组名 (注意是加入已经存在的组)
-u :uid,用户的id(用户的标识符),系统默认会从500 /或1000之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】
-c:comment,添加注释(选择是否添加)
-s:指定用户登入后所使用的shell 解释器,默认/bin/bash【专门的接待员】,如果不想让其登录,则      可以设置为/sbin/nologin   (重要)
-d:指定用户登入时的启始目录(家目录位置)
-n:取消建立以用户名称为名的群组(了解)
-m, --create-home	创建用户的主目录
-M, --no-create-home		不创建用户的主目录

2、usermod

命令:usermod(user modify)
语法:usermod [选项 选项的值] … 用户名
作用:修改用户的各种属性
选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的ID,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的ID,也可以是组名
-u:uid,用户的id(用户的标识符),系统默认会从500 之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】
-L:锁定用户,锁定后用户无法登陆系统lock
-U:解锁用户unlock
-c<备注>:修改用户帐号的备注文字
-d<登入目录>:修改用户登入时的目录
-s<shell>:修改用户登入后所使用的shell

3、userdel

建议注释/etc/passwd用户信息而非直接删除用户

语法
userdel(选项)(参数)
选项
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。

4、passwd

标准输入密码
[root@yuanlai-0224 ~]# echo '123456' | passwd  --stdin yuchao2
Changing password for user yuchao2.
passwd: all authentication tokens updated successfully.

5、chpasswd

chpasswd命令用于同时更改多个用户的密码。它可以从标准输入或指定的文件中读取用户名和密码的组合,并将其应用于系统中的用户。chpasswd命令通常用于批量更改用户密码,特别是在自动化脚本Q或批处理任务中,该命令需要root账户权限才可以执行。使用chpasswd命令时,可以通过以下两种方式提供用户名和密码的组合:
•从标准输入读取:可以通过管道或重定向操作符将用户名和密码的组合传递给chpasswd命令。每个用户名和密码的组合应占据一行,并使用冒号分隔用户名和密码。
•从文件读取:可以通过指定文件路径作为chpasswd命令的参数来读取用户名和密码的组合。文件中的每个用户名和密码的组合应占据一行,并使用冒号分隔用户名和密码。
1、从标准输入读取
[root@muserver1 /]# useradd -m cupp -d /cupp
[root@muserver1 /]# echo 'cupp:cupp@123' | chpasswd
[root@muserver1 /]# su - pei
上一次登录:五 5月 17 03:49:57 EDT 2024pts/1 上
[pei@muserver1 ~]$ su - cupp
密码:
[cupp@muserver1 ~]$

2、从文件读取
输入chpasswd命令后直接回车,交互窗口下按照如下格式输入用户名和密码,使用ctl+D结束输入。
[root@muserver1 /]# chpasswd
ops01:123
pei:321
cupp:231
[root@muserver1 /]#

3、当然我们也可以使用cat结合/管道符的方式,可以完成批量用户密码修改。
[root@s152 ~]# cat pass.txt
username1:1234567
username2:1234567
username3:12345678
[root@s152 ~]# cat pass.txt | chpasswd

6、chage 用于密码的实效管理,用来修改帐号和密码的有效期。

-d,--lastday 最近日期  修改最近一次密码设置的时间。
-E,--expiredate 过期日期  账户国企过期时间 0表示马上过期,-1表示永不过期
-l,  列出当前用户的密码过期设置。普通用户仅可以查看自己的密码过期时间。
-W, 用户密码到期前,提前收到警告信息的天数
-M, 密码有效期

7、gpasswd管理用户组

gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow的管理工具

8、groupmod

groupmod是group modify的缩写,在Linux中 groupmod 命令用于更改群组识别码或名称。

-g <群组识别码> 设置欲使用的群组识别码。
-0 重复使用群组识别码。
-n <新群组名称> 设置欲使用的群组名称

9、chgrp

chgrp命令用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的id,也可以是用户组的组名。
组名称必须在/etc/group 存在

[root@muserver1 tmp]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月  17 22:33 ceshi.txt
[root@muserver1 tmp]# chgrp ops01 ceshi.txt
[root@muserver1 tmp]# ll
总用量 0
-rw-r--r--. 1 root ops01 0 5月  17 22:33 ceshi.txt
[root@muserver1 tmp]#

10、cut命令

cut在文件的每一行中提取片断
在每个文件的各行中, 把提取的片断显示在标准输出。
若不指定file参数,该命令将读取标准输入。 必须指定 -b、-c 或 -f 标志之一。
语法格式:cut [参数] [文件]

-d:分隔符,按照指定分隔符分割列。与-f一起使用    默认为制表符”TAB”
-f:依据-d 的分隔字符将一段信息分割成为数段,用-f 取出第几段的意思(列号,提取第几列)
-C:以字符(characters)的单位取出固定字符区间
-b:以字节为单位进行分
[root@muserver1 ~]# cat yuchao.txt | cut -b 4
i
h
d
[root@muserver1 ~]# cat yuchao.txt
me is yuchao and i love linux!
wo haak dk ji
kajdfa k
[root@muserver1 ~]#
[root@muserver1 ~]# cat yuchao.txt |cut -b 4-6
is
haa
dfa
[root@muserver1 ~]#
# 中文提取,按字符提取,1一个中文,当做1个字符处理了 -c参数
[root@yuanlai-0224 ~]# echo '于超牛啊' | cut -c 1-3
于超牛
# -f 显示指定字段的内容,和-d 指定分隔符结合使用。
[root@yuanlai-0224 ~]# tail -5 /etc/passwd |cut -d ':' -f 2
x
x
x
x
x

11、Linux设置中文

安装中文语言包
yum install kde-l10n-Chinese
yum reinstall glibc-common

写入配置文件
[root@yuchao-tx-server ~]# tail -2 /etc/profile
# by chinese
export LC_ALL="zh_CN.UTF-8"

改为英文
LC_ALL="en_US.UTF-8"

12、whoami、who、w、last、lastlog

1、last

last读取的是如下文件信息,二进制加密数据。
[root@yuanlai-0224 ~]# ll /var/log/wtmp
-rw-rw-r--. 1 root utmp 170112 Mar 12 15:16 /var/log/wtmp
last -5 显示最近5条连接终端服务器的记录
##pts/0(为伪终端) ssh和telnet远程连接的在用
##tty是虚拟终端的代号

2、lastlog

命令用于显示系统中所有用户最近一次登录的信息
命令用于查询/var/log/lastlog文件
该文件记录了每个用户最近一次登录的信息。通过使用 lastlog 命令,可以检查特定用户的最后一次登录时间,并格式化输出Q相应的登录日志。需要以root 身份运行该命令。

13、sudo

sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。

visudo命令

使用visudo命令,提供了语法检测功能。
visudo用于编辑/etc/sudoers文件,且提供语法检测,用于配置sudo命令

给yuchao01用户配置sudo使用权

1.直接输入visudo命令,相当于打开vim /etc/sudoers
找到如下行
 89 ## The COMMANDS section may have other options added to it.
 90 ##
 91 ## Allow root to run any commands anywhere
 92 root    ALL=(ALL)       ALL

 2.添加你想让执行sudo命令的用户
 89 ## The COMMANDS section may have other options added to it.
 90 ##
 91 ## Allow root to run any commands anywhere
 92 root    ALL=(ALL)       ALL
 93 yuchao01 ALL=(ALL)       ALL


 3.保存退出,使用vim/vi的模式,此时已经可以用yuchao01用户,使用sudo命令了


切换普通用户
[root@yuanlai-0224 ~]# su - yuchao01
Last login: Wed Mar  9 20:07:26 CST 2022 on pts/0
[yuchao01@yuanlai-0224 ~]$

用sudo提权,修改文件内容
[yuchao01@yuanlai-0224 ~]$ sudo vim /opt/三里屯美女微信.txt
[yuchao01@yuanlai-0224 ~]$
[yuchao01@yuanlai-0224 ~]$ cat /opt/三里屯美女微信.txt
美女微信 54321


用sudo提权,修改其他用户的密码

[yuchao01@yuanlai-0224 ~]$ passwd caixukun
passwd: Only root can specify a user name.
[yuchao01@yuanlai-0224 ~]$
[yuchao01@yuanlai-0224 ~]$ sudo passwd caixukun
Changing password for user caixukun.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
[yuchao01@yuanlai-0224 ~]$

降低sudo权限

1.编辑visudo
修改权限,只允许执行mkdir,useradd
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
yuchao01 ALL=(ALL)       /usr/bin/mkdir,/usr/sbin/useradd


2.再次使用sudo,尝试使用vim,权限不够了,不让用
[yuchao01@yuanlai-0224 ~]$ sudo vim /opt/三里屯美女微信.txt
[sudo] password for yuchao01:
Sorry, user yuchao01 is not allowed to execute '/bin/vim /opt/三里屯美女微信.txt' as root on yuanlai-0224.


3.使用mkdir是可以的
[yuchao01@yuanlai-0224 opt]$ mkdir yuchao到此一游
mkdir: cannot create directory ‘yuchao到此一游’: Permission denied
[yuchao01@yuanlai-0224 opt]$
[yuchao01@yuanlai-0224 opt]$ sudo mkdir yuchao到此一游
[yuchao01@yuanlai-0224 opt]$ ll
total 4
drwxr-xr-x 2 root root  6 Mar  9 20:29 yuchao到此一游
-rw-r--r-- 1 root root 19 Mar  9 20:21 三里屯美女微信.txt
[yuchao01@yuanlai-0224 opt]$


4.使用useradd是可以的
[yuchao01@yuanlai-0224 opt]$ id caixukun01
uid=1011(caixukun01) gid=1011(caixukun01) groups=1011(caixukun01)
[yuchao01@yuanlai-0224 opt]$

删除用户命令如何添加上?
[yuchao01@yuanlai-0224 opt]$ sudo userdel caixukun01
Sorry, user yuchao01 is not allowed to execute '/sbin/userdel caixukun01' as root on yuanlai-0224.
posted @ 2024-05-22 23:11  lipga  阅读(95)  评论(0编辑  收藏  举报