zoukankan      html  css  js  c++  java
  • 用户管理,目录权限,定时任务及软件包管理工具

    linux用户管理

    linux有几种用户身份,好比qq群

    1.QQ群主,想干嘛就干嘛,想踢人就踢人------等于linux的root用户,权利最大
    2.QQ群管理员,群主给与他的比较大的权限--------等于linux命令加上sudo,默认以root去执行命令
    3.渣渣用户,QQ群里的小白,权利特别低--------等于linux的普通用户,用于保证服务器安全,防止删除等危险操作
    

    UID,GID

    UID 用户的id号,root是0,普通用户从1000开始

    GID,是用户组的ID号

    linux下存放用户账户信息的文件是/etc/passwd

    useradd

    只有root有权限才能创建普通用户,默认uid从1000开始递进

    useradd zhoushen
    

    su命令

    su命令用于用户切换,root切换普通用户不要密码,普通切root要密码

    普通用户之间切换需要密码~~~~

    su   -   zhoushen  #切换到zhoushen用户,中间的减号代表完全的环境变量切换,一定要加上
    

    id命令

    id命令用于查看用户的uid等信息

    id root
    id zhoushen
    

    sudo命令

    当普通用户执行命令权限不够的时候,使用sudo,强大自己的权限

    root ---------皇帝------/root  这里是皇宫,其他用户无法查看
    sudo --------黄马褂,圣旨----默认是拥有root的超级权限的
    普通用户-----老百姓---- /home/caixukun  /home/haohao 
    

    sudo命令需要配置一下,步骤如下

    1.打开sudo的配置文件
    执行visudo,会编辑sudoers这个配置文件,在/etc/sudoers,这个命令提供语法检测,更专业
    visudo /etc/sudoers
    
    
    2.找到如下配置行,添加你允许使用sudo的用户名字
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    caixukun        ALL=(ALL)       ALL
    haohao        ALL=(ALL)       ALL
    laowang        ALL=(ALL)       ALL
    
    3.使用sudo命令,在你敲的命令前,加上sudo即可
    sudo ls /root
    

    linux的文件和目录权限

    这一串信息,如何解读
    #解读
    happy.txt是一个普通文件
    他的user属主是root,user属主的权限是 rw-  (可以读,可写,不可执行)
    他的属组group,是root,group属组的权限,是只读的,代表在root组里的用户都可以读这个happy.txt
    此时caixukun这个普通用户登录了机器,对于happy.txt来说,caixukun就是一个other其他用户,只读权限
    
    - rw-(uesr) r--(group) r--(other). 1 root root  0 2月   5 16:14 happy.txt
    
    drwxr-xr-x. 3 root root 37 2月   5 15:32 kuaile
    
    文件的权限解读,第一列
    -     rw-   r--    r--  
    代表文件的属性
    	- 是普通文本
    	d 是一个文件夹
    	
    r read 有可读的权限  
    w write 可以写
    x  可执行
    -  没有权限
    ###################
    对于文件来说,
    r   cat  more   读取
    w   vim vi  echo  写入
    x   可以用解释器执行的意思
    
    #对于文件夹来说
    r    ls  读取
    w    可以进入文件夹,在里面创建文件  touch  mkdir  
    x    cd 可以进入文件夹  
    

    linux的用户身份分3类

    -当前这个文件属于谁-------user---属主

    -当前在这个文件属于哪个组----group---属组

    -其他人---这个文件和当前登录的系统用户没有任何关系-----other

    这3类角色都有不同的读、写、执行权限

    chmod

    change mode,更改文件权限的命令

    chmod u+x file  #给user用户添加一个x可执行权限
    

    用zhoushen普通用户给文件的other添加一个w写的权限

    [zhoushen@s26linux s26linux]$ sudo chmod o+w happy.txt
    
    -rw-r--rw-. 1 root root 78 2月   5 16:31 happy.txt
    
    修改这个文件,只有属主可写,其他人都没有权限,用数字权限转化
    
    
    chmod  200   happy.txt   #这个代表 user是 2 只写的,group和other都没有权限
    
    #给文件,user可读可写,group可读可写,其他人只能写
    chmod  662  happy.txt
    
    #解读如下权限
    chmod 235  happy.txt 
    user只有2的权限,只写
    group 是3的权限  2+1 ,可写,可执行的
    other是5的权限 4+1  ,可读,可执行的
    
    

    ln命令

    创建软连接的命令,创建快捷方式

    ln  -s  源文件绝对路径  快捷方式绝对路径
    ln -s  /s26linux/happy.txt  /tmp/hp.txt    
    

    tar命令

    打包、压缩、解压缩的命令(用户后缀为.tgz)

    常用参数如下

    -z  调用gzip压缩资源,节省磁盘空间
    -x  解压缩
    -v 显示过程
    -f 这个参数必须写在结尾,指定压缩文件名字
    -c  打包参数
    

    案例

    把/tmp下所有的内容,进行压缩打包,节省磁盘空间
    
    tar  -zcvf  /opt/alltmp.tgz    ./*  #打包且压缩/tmp下所有内容,生成一个压缩文件,放到opt下
    
    #演示解压缩,吧/opt下alltmp.tgz解压缩
    tar -zxvf   /opt/alltmp.tgz  ./
    

    unzip命令

    当你是后缀.zip的压缩文件时就用unzip
    下载unzip
    yum install unzip -y
    
    zip 压缩
    (1)将当前文件夹下的所有文件打包成一个 new1.zip 文件
    zip new1.zip *
    (2)把当前文件夹下所有 my1*.doc 的文件打包成一个 new1.zip 文件
    zip new1.zip my1*.doc
    (3)把一个文件 abc.txt 和一个目录 dir1 压缩成为 yasuo.zip
    zip -r yasuo.zip abc.txt dir1
    
    unzip 解压缩
    (1)把文件解压到当前目录下
    unzip test.zip
    (2)如果要把文件解压到指定的目录下,需要用到-d参数。
    unzip -d /temp test.zip
    (3)解压的时候,有时候不想覆盖已经存在的文件,那么可以加上 -n 参数
    unzip -n test.zip
    unzip -n -d /temp test.zip
    

    crontab定时任务

    语法如下
    分 时  日 月 周     你要执行的命令绝对路径
    *  *   *   *   *     绝对路径的命令
    
    例子:
    #每分钟执行一次命令
    *  *  *  *  *   命令  #每分钟执行命令 
    
    #每小时的整点,执行命令
    0 * *  *  *    #每小时的整点执行
    
    #每小时的3,15分组执行命令
    3,15  *  *  *  *    命令绝对路径
    
    #在上午8-11点的第3和第15分钟执行
    3,15   8-11   *  *  *   命令绝对路径
    
    #每晚6点半执行命令
    30  18  *  * *  command
    
    #没周六、日的凌晨1:30执行命令
    30  1   *  *  6,7  command
    
    #每周一到周五的凌晨1点,清空/tmp目录的所有文件
    0 1  * *  1-5     /usr/bin/rm  -rf /tmp/*
    
    #每晚的21:30重启nginx
    30  21  * *  *    /usr/bin/systemctl restart nginx
    
    #每月的 1,10,22日的下午4:45重启nginx
    45  16  1,10,22   *  *    /usr/bin/systemctl restart nginx
    
    #每个星期一的上午8点和11点的第3到15分钟执行命令
    3-15    8,11  *  *  1   command  
    
    

    如何用crontab

    1.输入命令,打开定时任务配置文件
    crontab -e  
    2.写入定时任务语句即可
    3.crontab -l 查看定时任务语句
    

    linux的软件包管理工具

    linux安装软件有几种方式

    1. 源代码编译安装(最好的安装形式,可以自由定义安装路径,第三方功能扩展,以及获取官网最新的代码进行编译安装,缺点是对新手不友好)
    2. yum工具(新手最好的工具,自动化解决程序安装所需的依赖关系,自动下载且安装依赖,要求得配置yum仓库源,软件版本可能较低)
    3. rpm软件包手动安装(弃用,需要手动解决依赖关系,贼难受,不用)

    不同系统的软件包安装格式

    windows  exe
    macos   dmg
    linux   rpm 格式
    

    软件的依赖关系

    如何安装django的?
    下载django源码进行python3  setup.py  build  
    
    #相比我们都是用的pip安装,为什么呢?
    能够自动的解决django模块的依赖关系
    
    #pip3是安装python模块的工具,自动搜索依赖,解决依赖关系
    
    #yum工具是linux系统安装软件的工具,例如安装redis数据库,安装mysql数据库等等
    

    yum工具

    对于redhat,centos系列的操作系统,90%的软件都可以yum自动安装,前提是要配置好软件仓库(yum源)

    安装,卸载nginx
    yum install nginx -y 
    yum remove nginx -y   #自动解决所有依赖关系,很nice,好用
    

    配置阿里的yum源

    1.找到阿里的开源镜像站
    https://developer.aliyun.com/mirror/
    
    2.备份linux本地现有的yum仓库文件,
    /etc/yum.repos.d/  这个文件夹,默认yum仓库地址,注意!只有在这个目录第一层的以*.repo结尾的文件
    才会被识别为是一个yum仓库文件
    
    3.备份以前的yum仓库文件
    [root@s26linux yum.repos.d]# pwd
    /etc/yum.repos.d
    [root@s26linux yum.repos.d]# mv ./*  allrepoBak/   #备份repo仓库文件
    
    4.下载新的仓库文件,下载阿里的
    # 参数解释 -O  将下载的文件,指定一个路径存放,且改名
    # 这是第一个仓库
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  
    # 下载第二个epel仓库
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    5.清空之前的yum缓存
    yum clean all
    
    6.可以测试用yum安装nginx软件,或是redis数据库软件
    yum install nginx -y 
    yum install redis -y  
    
    7.只要是通过yum安装的软件,都可以用systemctl  系统服务管理命令,进行启停管理
    systemctl start/stop/restart/status nginx  #分别是 启动,停止,重启,查看状态
    systemctl start nginx
    systemctl stop nginx
    
    systemctl start/stop/restart  redis
    
    8.验证redis和nginx软件是否正常
    [root@s26linux yum.repos.d]# redis-cli
    127.0.0.1:6379> ping
    PONG
    
    退出redis,可以直接ctrl + c 
    
    
    验证nginx,直接浏览器访问网站的80端口即可
    192.168.xxx.xxx:80
    
    9.此时可以修改一下nginx的首页内容,一分钟做一个dnf官网   ~~~~~逗乐
    nginx首页页面默认在
    vim /usr/share/nginx/html/index.html  #自行去复制dnf官网的源码,修改即可
    
    10.如果没法连接nginx  别忘了关闭防火墙
    iptables -F   
    
  • 相关阅读:
    array、vector、forward-list、list、deque的扩容,栈与队列,基于范围的for循环
    带默认参数值的函数
    :: 访问全局变量
    using来定义类的别名,typedef,#define
    const int* p
    内存
    变量的定义,强制类型转换
    HTTP请求流程(一)----流程简介
    DIY一个DNS查询器:程序实现
    详解C/C++函数指针声明
  • 原文地址:https://www.cnblogs.com/zzsy/p/12299955.html
Copyright © 2011-2022 走看看