用户操作

一 用户操作

1.1 查看用户

# 1.查看当前登录的用户信息
id
# 用户id,root为0
# gid:组id root组是0
#属于哪个组:0
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023


# 2 每一个进程都会由一个用户身份运行	
ps aux 可以查看


# 用户存存放位置
	-1 Linux系统会将用户的信息存放在/etc/passwd,记录了用户的信息,但没有密码信息
    -2 密码被存放在/etc/shadow中存放密码
    
    
    - 解释/etc/passwd
    lqz:x:1000:1000::/home/lqz:/bin/bash
	# 看图
    
    -解释/etc/shadow--->即便密码相同,显示也不一样
    
	# 看图
# 1970年是计算机元年


# 增加用户系统约定
用户UID	系统中约定的含义
0	    超级管理员,最高权限,有着极强的破坏能力
1~200	系统用户,用来运行系统自带的进程,默认已创建
201~999	系统用户,用来运行用户安装的程序,所以此类用户无需登录系统
1000+	普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限


# 增加用户
useradd justin #增加一个用户
adduser  # 它就是useradd的软连接,改了个名字
passwd justin # 设置密码

1.2 创建用户

####创建用户###

#1 创建sa和sutdents组
groupadd sa
groupadd students
# 2 用户可以属于多个组,只能属于一个主组,附加组可以有多个 G
useradd -u 5001 -g students -G sa -c "注释" -s /bin/bash lqz666
# 3 设置密码
passwd lqz666

# 4 有的情况下我们创建用户,不希望登录
#创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统
useradd mysql -M -s /sbin/nologin  # 运行进程 某个用户运行的


##### 修改用户 ###
usermod -L lqz666
usermod -U lqz666


### 删除用户 ###
userdel justin   #保留家路径
userdel -r lqz888  # 家路径一并删除

二 su和sudo

# su身份切换
	-以root用户登录了---》切换到其他用户上去
    	su 用户名  不需要输入密码
        su - username  # 加载当前用户的环境变量
    -以其他用户登录了---》切换成root用户
    	su root  需要输入root用户密码
# 环境变量加载顺序
	/etc/profile->/家路径.bash_profile->家路径/.bashrc->/etc/bashrc
    
    
    
# sudo 提权--->能不能干取决于有没有被授予
su命令在切换用户身份时,如果每个普通用户都能拿到root用户的密码,当其中某个用户不小心泄漏了root的密码,那系统会变得非常不安全。为了改进这个问题,从而产生了sudo这个命令。

其实sudo就相当于给某个普通用户埋下了浩克(hulk)的种子,当需要执行一些高级操作时,进行发怒,但正常情况下还是普通人,还是会受到限制

# 举个例子:
	-普通用户不能创建用户
    	-就是普通用户,就想创建---》问管理员要root密码--》su 成 root---》可以创建了---》完事切回来
        -我就是普通用户,管理员授予我创建用户权限 
        sudo useradd lqz  
        输入密码:你的密码
        
        
 # 1 命令 把lqz666这个用户加入到wheel组,这个组 是root 用户的组,有很多权限
	usermod lqz666 -G wheel
 # 2 wheel组的成员,跟root是一种权限,跟root用户一样,有一些权限
	-删除文件,创建文件夹。。。
    
 # 3 文件有些操作权限
	-rwx:读,写 ,执行
    属主:用户的权限
    属组:当前组都有权限    rwxrw_r__  
    其他:其他用户有权限

三 普通权限

针对文件定义了三种身份,
分别是属主(owner):文件属于哪个用户
属组(group):文件是属于哪个用户用户组的
其他人(others):其他人
三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)

rw-                       r--                        r--
当前用户有读写权限         同一个组有读权限             其他人有读权限

d   rwx                  ---                          ---


# 授予文件权限
# 方式一:
chmod u=rwx,g=rwx,o=rwx lqz.txt  
# 方式二:
r:4
w:2
x:1
110  rw-  6
chmod 777 lqz.txt


chmod 077 lqz.txt


chomd +x  xx.sh  # 对该文件加执行权限(自己,组,其他人都有)

四 特殊权限

#选项: + 增加权限 -减少权限 =等于某个权限
# a:让文件或目录仅可追加内容
# i:不得任意更动文件或目录
	-电脑中毒了,一切皆文件---》查看哪个进程占cpu,内存高,定位到那个可执行文件---》删除可执行文件即可
    -删没有权限
    -chattr -i 文件

# 操作
chattr +i  文件

五 解压压缩

# 在windows系统下,我们接触最多的压缩格式是 rar 或 zip ,但在Linux上使用最多的压缩格式是 zip 和 tar.gz 。当然不用担心,Linux上的压缩格式放在windows系统下都是可以正常打开的。
PS: Linux不支持 Windows下的 RAR 格式的压缩文件。Windows和Linux互通通常选择 zip

# gzip
	-仅对文件有效,对文件夹无效,压缩后文件删除,解压后压缩包删除
	-安装:yum install gzip -y
    -压缩:gzip 文件名
    -解压:gzip -d file.gz
    -实际用途:做备份
    	-gzip *     把当前路径下所有文件都压成 gz
        -gzip -d *  解压当前路径下所有gz文件


# zip
	-yum install zip unzip -y
	-压缩:zip  filename.zip  xx.txt
	-压缩:包括目录和文件:zip  -r filename1.zip  xx.txt a.txt  /etc/hosts
	-查看压缩包中有哪些文件:unzip -t  filename1.zip
    -解压:unzip  filename.zip
    -解压到指定目录下:unzip  filename.zip -d /opt/
# tar 
	#语法:tar [-zjxcvfpP] filename 
        c   #创建新的归档文件
        x   #对归档文件解包
        t   #列出归档文件里的文件列表
        v   #输出命令的归档或解包的过程
        f   #指定包文件名,多参数f写最后

        z   #使用gzip压缩归档后的文件(.tar.gz)
        j   #使用bzip2压缩归档后的文件(.tar.bz2)
        J   #使用xz压缩归档后的文件(tar.xz)
        C   #指定解压目录位置
        X   #排除多个文件(写入需要排除的文件名称)
        h   #打包软链接
    # 压缩时候选项:可以打出
        czf     #打包tar.gz格式 常用
        cjf     #打包tar.bz格式 不怎么用
        cJf     #打包tar.xz格式 不考虑
   # 解压时候选项
        zxf     #解压tar.gz格式
        jxf     #解压tar.bz格式
        xf      #自动选择解压模式
        xvf     #显示解压过程
        tf      #查看压缩包内容
        
        
   # 实战:
	-压缩:只记这一条即可
		tar czf  test.tar.gz a.txt  ./etc xx.txt
     -解压:
    	tar -xf test.tar.gz
        tar -xvf test.tar.gz
	-查看压缩包内容
    	tar tf  test.tar.gz

六 软件管理,rpm和yum

# 把光驱挂在到某个目录下
mount /dev/cdrom /mnt

# rmp包的样子
httpd-devel-2.4.6-97.el7.centos.5.x86_64.rpm


6.1 rpm

# rpm安装软件命令
	rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
# rpm查看软件
	rpm -q   查看是否安装
    rpm -ql  释放的目录
# rpm卸载软件
    rpm -qa |grep tree  # 从所有安装的软件中过滤一些是否有tree
    rpm -q tree  # 查看tree有没有装
    rpm -e tree  # 卸载tree软件

安装软件命令

选项 描述
-i 安装rpm
-v 显示安装详细信息
-h 显示安装rpm进度
–force 强制重新安装
–nodeps 忽略依赖关系

查看软件命令

选项 描述
rpm -q 查看指定软件包是否安装(重点)
rpm -qa 查看系统中已安装的所有RPM软件包列表
rpm -qi 查看指定软件的详细信息
rpm -ql 查询指定软件包所安装的目录、文件列表(重点)
rpm -qc 查询指定软件包的配置文件(只有配置文件,etc下的)
rpm -qf 查询文件或目录属于哪个RPM软件
rpm -qip 查询未安装的rpm包详细信息
rpm -qlp 查询未安装的软件包会产生哪些文件

6.2 yum

# Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装


# YUM源
	-yum install  装软件,它去某个位置下,默认是centos提供的,国外,可能会慢一些
    -国内的阿里云,提供镜像站
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# epel扩展源
	wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

# 查询软件
    yum list |wc -l # 查看所有可以按装的软件
    yum list|grep ftp
    yum info ftp
    
#安装软件
yum install vim -y
yum install 远程地址rpm包自动处理依赖
yum reinstall vsftpd # 重新安装
rpm -qc vsftpd # 查看改软件安装后的一些目录


# 更新软件
yum update nginx -y
# 卸载软件
yum remove 软件名 -y

6.3 源码安装

# nginx 为例安装

# yum install nginx  简单,不能使用最新版,不能修改源码
# 源码安装,官方下载最新版,改源码,自己编译---》得到软件

# 源码安装nginx
1 wget https://nginx.org/download/nginx-1.24.0.tar.gz
2 tar xf nginx-1.24.0.tar.gz
3 配置相关的选项,并生成Makefile
	./configure --help
    ./configure --prefix=/usr/local/nginx  # 指定安装路径
    yum -y install gcc gcc-c++ make
    yum install -y pcre-devel
    yum -y install zlib-devel
    yum -y install openssl-devel
4 make  编译---》把源码编译成可执行文件---》/usr/local/nginx路径下会不会有?
	
    
5 make install   安装

6 cd /usr/local/nginx 可以看到文件夹
conf     html         logs      sbin
配置文件   index.html   日志     可执行文件

7 在任意路径下敲nginx 都能找到
	-1 软连接
    -2 把sbin路径加入到环境变量
    	- vim .bash_profile
        -加入一行:
        PATH=$PATH:$HOME/bin
        PATH=$PATH:/usr/local/nginx/sbin
        export PATH
    -3 source 一下,让它生效
   		source .bash_profile
        
    -4 以后再任意路径敲nginx,都会有响应

七 系统服务

# centos7  systemclt 
systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令

# systemctl restart network

# win上
    net start 服务名
    
# 使用 systemctl 管理nginx 
	-如果用yum安装的nginx,自动加入到服务中去,就会被systemctl管理
    -yum install nginx -y
    -systemctl status nginx
    -systemctl start nginx
    -systemctl stop nginx
    -systemctl reload nginx
    
    
# 把咱们自己使用源码安装的软件也可以被systemctl管理

#1  来到路径下:路径是
cd /usr/lib/systemd/system/
# 2 新建一个 mynginx.service
vim mynginx.service
[Unit]
Description=xxxx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecRestart=/usr/local/nginx/sbin/nginx -s restart
ExecReload=/usr/local/nginx/sbin/nginx -s reload
[Install]
WantedBy=multi-user.target

# 3 以后,使用systemctl 管理nginx
    -systemctl status mynginx
    -systemctl start mynginx
    -systemctl stop mynginx
    -systemctl reload mynginx
    
    
# 4 开机自启动
systemctl enable mynginx # 开机启动
systemctl disable mynginx # 取消开机启动



# 关闭防火墙,设置不开机自启动
systemctl stop firewalld
systemctl disable firewalld

八 进程管理


#1  ps -aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        1  0.4  0.3 128148  6800 ?        Ss   15:08   0:01 /usr/lib/systemd/systemd
root        2  0.0  0.0      0     0 ?        S    15:08   0:00 [kthreadd]

# 哪个用户启动
# 进程id是什么,后期杀进程,可以使用进程id号
# cpu占用率
#内存占用率
# COMMAND  进程的命令  [系统进程]  其他进程


#2  ps aux | grep redis


#3  孤儿进程和僵尸进程
#4 ps -ef

# 5 top  动态查看进程

# 6 杀进程
kill -9 进程id号
pkill -9 进程名   批量干掉进程
posted @ 2023-08-11 21:13  星空看海  阅读(14)  评论(0编辑  收藏  举报