2021.7.12linux入门之linux文件管理

  • 1.用户管理:

1.1什么是用户?

​ 用户指的是能够正常登陆linux或windows系统,例登陆QQ的用户、登陆荣耀的用户等

1.2为什么需要用户

a.系统上的每一个进程(运行的程序),都需要一个特定的用户运行,如同windows上任务管理器里用户选项下各种不同的用户

b.通常在公司是使用普通用户管理服务器,因为root曲线过大,容易造成故障

1.3用户分类

a.系统对用户有一个约定

b.用户都有特定的UID

0代表超级管理员,有最高权限,有极强的破坏能力 rm -rf /*(删除根下的所有文件,会造成系统奔溃)

1~200 系统用户,用来运行系统自带的进程,默认已创建

201~999 系统用户,用来运行用户安装的程序;所以此类用户无需登录系统

1000+ 普通用户,正常可以登录的用户,权限比较小,能执行的任务有限

1.4查询用户id信息

a.使用id命令查询当前登录用户的信息

[root@node: ~]#id   #查询当前登录用户的信息
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

id name

[root@node: ~]#id xu #查看其他用户的信息
uid=1001(xu) gid=1001(xu) groups=1001(xu)

1.5用户相关配置文件

当我们创建一个新的用户,系统会将用户的信息存放在/etc/passwd中,而密码单独存储在/etc/shadow中也就是说这两个文件非常的重要,不要轻易删除与修改

1.5.1 passwd文件

a./etc/passwd 配置文件解释如下,或者使用命令 man 5 passwd 获取帮助

[root@node: ~]#head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash  以:作为分隔符,总共七列

第一列 root 用户名称

第二列 x 密码占位符

第三列 0 用户UID

第四列 0 组GID

第五列 root 注释信息

第六列 /root 用户家目录

第七列 /bin/bash 登录shell的类型

1.5.2 shadow文件

/etc/shadow 配置文件解释如下,或者使用命令 man 5 shadow获取帮助

[root@node: ~]#tail -2 /etc/shadow | grep "jake"
jake:!!:18817:0:99999:7:::   以:为分隔符,共九列

第一列:jake 用户名称

第二列:!! 密码为一长串字符,(*|!!)则表示无密码

第三列:18817,最近一次变更密码,从1970年到现在,过了多少天,大概多少年计算(18817/365+1970)

第四列:0 密码最少使用天数,0=无限制

第五列:99999密码最长使用天数,默认99999不过期

第六列:7 系统会在密码到期前7天提醒变更密码

第七列:0 密码到期后,密码过期后强制提示变更用户密码

0代表没设置,到期后立即提示

第八列 : 账户失效时间,从1970年起,账户在这个日期前可以使用,到期失效(没有代表没设置)

2.用户相关命令

2.1添加用户

useradd + name #即可创建用户

若需要添加linux
系统普通用户,可使用useradd命令,只有root组用户可以添加系统普通用户

选项:

    -u 指定要创建用户的UID,不允许冲突
    
    -g 指定要创建用户基本组
     
    -G 指定要创建用户附加组,逗号隔开可以添加多个附加组
    
    -d 指定要创建用户家目录
    
    -s 指定要创建用户的bash shell
    
    -c 指定要创建用户注释信息
    
    -M 给创建的用户不创建家目录
    
    -r 创建系统账户,默认家目录

如何创建组:

​ groupadd

	    指定GID:-g
		 
语法格式:groupadd group_name -g GID
如何修改组:

​ groupmod + 组名称

如何删除组(组中不能有成员):

		groupdel Group_name 


2.1.1添加用户示例

​ 需求:a 用户id为6969
​ b 基本组为ops,附加组dev
​ c 注释信息 2000 new student,登录
​ shell : /bin/bash

[root@node: ~]#groupadd ops   #添加用户组ops
[root@node: ~]#groupadd dev   #添加用户组dev
[root@node: ~]#useradd -u 6969 -g ops -G dev -c "2000 new student" -s /bin/bash kafka 
useradd -u 6969             #指定UID 6969     
-g ops                      #指定基本组为ops
-G dev                      #附加组dev
-c "2000 new student"       #添加注释 2000 new student, 
-s /bin/bash                #指定登录的bash shell 
kafka                       #用户名称
[root@node: ~]#su kafka     #登录kafke用户
[kafka@node root]$ su       #切换到管理员
Password:                   #输入root密码
[root@node: ~]#id kafka     #查看kafka用户信息
uid=6969(kafka) gid=1002(ops) groups=1002(ops),1003(dev)
[root@node: ~]#tail -1 /etc/passwd  #查看/etc/passwd下最后一行信息
kafka:x:6969:1002:2000 new student:/home/kafka:/bin/bash        

最后输出详情看1.5.1 passwd文件

2.1.2 添加用户示例2

需求:创建一个mysql系统用户[201~999]

​ 该用户不需要家目录

​ 该用户不需要登录系统

[root@node: ~]#useradd -r mysql -M -s /sbin/nologin
[root@node: ~]tail -1 /etc/passwdn
mysql:x:998:996::/home/mysql:/sbin/nologin

2.2修改用户usrmod

若想修改linux系统普通用户,可使用usermod命令,使用root登录后可以修改系统普通用户了

选项

  • 
    
    
    

2.2.1修改用户示例1

修改xu用户

​ UID为5008

​ 基本组为network,附加组为ops,dev,sa

​ 注释信息为student,登录名称为oldxu

[root@node: ~]#usermod xu -u 5008 -g network -G ops,dev,sa -c "student" -l oldxu[root@node: ~]#tail -1 /etc/passwdoldxu:x:5008:1004:student:/home/xu:/bin/bash
如果运行  usermod xu -u 5008 -g network -G ops,dev,sa -c "student" -l oldxu

报错:

usermod: user xu is currently used by process 1572  #这是因为有进程在占用着用户,导致无法删除,解决办法就是找出占用的进程,kill掉之后在执行删除命令。具体如下使用命令 ps -u +用户名  的命令查看占用的进程以及进程的pid,如下[root@node: ~]#ps -u xu   PID TTY          TIME CMD  1572 ?        00:00:00 sshd  1573 pts/2    00:00:00 bash看到第一行的pid,使用kill命令杀掉进程即可[root@node: ~]#kill 1572[root@node: ~]#ps -u xu   PID TTY          TIME CMD

2.2.1修改用户示例2

修改oldxu用户

​ 为oldxu配置密码

​ 锁定改用户,然后测试远程连接登录

​ 解锁该用户后再次测试远程连接登录

    [root@node: ~]# echo "123" | passwd --stdin oldxu  #为oldxu设定密码为123    [root@node: ~]#usermod -L oldxu                     #锁定oldxu        [root@node: ~]#usermod -U oldxu                     #给oldxu解锁

2.3删除用户userdel

若想删除系统普通用户,可以使用userdel命令,使用root用户登录之后就可以删除系统普通用户了

例如 删除过户oldxu 用户,连同家目录一起删除

[root@node: ~]#userdel -r oldxu

例2 批量删除系统中此前创建过得所有无用的用户

​ 使用awk提取无用的用户名称

​ 使用sed凭借删除用户的命令

​ 调用userdel命令,连同家目录一起全部删除

   [root@node: ~]#awk -F ':' '$3>1000{print $1}' /etc/passwd | sed -r 's#(.*)#userdel \1#g'| bash

2.4设定密码:passwdwd

​ 创建用户后,如需要使用该用户进行远程登录系统则需要为普通用户设定密码,设定密码使用passwd
​ 1.普通用户不可以变更系统的状态;(权限不够)
​ 2.如果将【软件|系统】的权限分配给该普通用户,普通用户才可以变更相应配置信息

2.4.1交互式设定密码

通过交互式为用户设定密码

[root@node: ~]#passwd  #给当前用户修改密码[root@node: ~]#passwd root  #给root用户修改密码[root@node: ~]#passwd oldxu #给oldxu用户修改密码,普通用户只能修改自己的密码,管理员可以修改所有用户的密码

2.4.2非交互设定密码

[root@node: ~]#echo "12345" | passwd --stdin oldxu

非交互式设定随机密码

yum install -y expect[root@node: ~]#echo $(mkpasswd -l 10 -d 2 -c 2 -c 2 -s 4) | tee pass.txt \> | passwd --stdin oldxu

创建用户流程:

		系统在创建用户时参考以下两个配置文件:			/etc/login.defs				定义了创建用户时 `UID` 划分规则,密码加密类型,是否创建家目录等			/etc/default/useradd		家目录的位置、环境变量从哪里复制;是否创建邮箱;						默认的创建用户的规则和选项:					默认创建用户:			1.分配UID;			1.添加passwd 记录;			2.在/home目录下创建一个与名称相同的家目录;			3.拷贝/etc/skel/ 环境变量文件;			4.创建邮箱;

		注意:			使用useradd 的选项优先级要比默认的配置高;
posted @ 2021-07-12 21:35  小徐的大宝剑  阅读(91)  评论(0编辑  收藏  举报