Linux进程和账号管理

2022-09-19

什么是进程

1.在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号

2.每一个进程都会有一个父进程!

3.进程可以有两种存在方式:前台和后台

4.一般服务都是后台,基本程序都是前台

命令

ps命令:查看当前系统正在执行的各种进程信息

ps -xx:

  • -a 显示当前终端运行的所有进程的信息
  • -u 以用户的信息显示进程
  • -x 显示后台运行进程的参数
# ps -aux 查看所有的进程
ps -aux|grep mysql    查看mysql进程
ps -aux|grep java     查看Java的进程 
#| 在Linux中这个叫做管道符   A|B
# grep 查找
对于我们来说,这里只需记住 ps -xx grep xxxx 即可,过滤进程信息!

ps -ef 可以查看到父进程的信息

还有一个很清楚的展示命令:

pstree -pu
-p: 显示父id
-u: 显示用户组

进程树!

结束进程:杀掉进程,等价于Windows结束任务

格式: kill -9 进程id

注意:-9是固定参数

一般来说不会手动结束进程,但我们平常写的代码如果执行过程死循环了,可以kill

Linux账号管理

Linux系统是一个多用户多任务分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统

每一个用户账号都有唯一的用户名和口令

用户登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现账号管理,要完成:

  • 用户账号的添加,删除与修改
  • 用户口令管理
  • 用户组管理

用户账号的管理

useradd命令添加用户– useradd -选项 用户名

选项:

  • -m 自动创建这个用户的主目录 /home/username
  • -G 分配用户组
root@iZf8zf1q4bpufr3xrbbo9wZ:~# useradd -m bo
root@iZf8zf1q4bpufr3xrbbo9wZ:/home# ls
bo                home下自动创建了bo的用户目录

删除用户:userdel -r 用户

这样可以将用户和文件一并删掉。

root@iZf8zf1q4bpufr3xrbbo9wZ:/home# userdel -r bo
userdel: bo mail spool (/var/mail/bo) not found
root@iZf8zf1q4bpufr3xrbbo9wZ:/home# ls
这时ls就没了

修改用户:usermod

格式:usermod 修改内容 修改哪个用户

usermod -d /home/233 bo

将用户目录改至233

修改完成要查看配置文件:

root@iZf8zf1q4bpufr3xrbbo9wZ:/home# cat /etc/passwd
bo:x:1000:1000::/home/233:/bin/sh

可以看到用户的所有文件已经往233执行了。

切换用户

root用户

image-20220810142748729

1.切换命令:su 用户名

root@iZf8zf1q4bpufr3xrbbo9wZ:/home# su bo
bo@iZf8zf1q4bpufr3xrbbo9wZ:/home$

hostname +新主机名 这个命令可以修改主机名:

root@bo:/home#

遇到问题

如果切换用户后只有一个dollar符号,要修改配置文件

vim /etc/passwd
找到bo(用户),将/sh改成/bash

用户的密码设置问题

我们一般通过root创建用户的时候,要配置密码

root@bo:/home# passwd bo
New password: 
Retype new password: 
passwd: password updated successfully
即:passwd 用户名

在大项目中,普通成员一般拿不到服务器root权限,都是分配的一些账号,即开始连接远程服务器的时候用自己的用户名和密码登入而不是root。

我们刚刚是作为超级用户修改了用户bo的密码

如果是普通用户:

直接passwd回车

锁定账户

比如张三辞职了,冻结他的用户,使在这个账号不能再登入服务器

passwd -l bo

这样锁定之后bo就不能登陆了呜呜呜。

用户组管理

属主,属组

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发,测试,运维)

用户组管理涉及组的添加,删除,修改。本质是对/etc/group文件的更新

创建一个用户组

root@bo:/home# groupadd bo
groupadd: group 'bo' already exists
cat /etc/group      查看group文件
bo:x:1000:

创建完用户组后可以得到一个组的id,这个id是可以指定的:

root@bo:/home# groupadd -g 520 bo1 

如果不指定就是自增1

删除用户组

root@bo:/home# groupdel bo

修改用户组

root@bo:/home# groupmod -g 521 -n bo1 bo
               groupmod -g 新id -n 新name 原来的name

切换用户组

# 登录当前用户 bo
$ newgrp 组名

其实创建用户的时候就应该-G分配组

拓展:文件的查看

/etc/passwd,可以查看到:

用户名:口令(密码,我们不看见,一般是x):用户标识号:组标识号:注释性描述:主目录:登录shell
bo:x:1000:1000::/home/bo:/bin/bash