{"id":20144742,"url":"https://github.com/widuu/linux_course","last_synced_at":"2025-03-03T00:11:17.298Z","repository":{"id":15478628,"uuid":"18212174","full_name":"widuu/linux_course","owner":"widuu","description":"linux基础教程-linux服务器基础教程","archived":false,"fork":false,"pushed_at":"2014-04-02T09:26:14.000Z","size":184,"stargazers_count":10,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-13T10:50:49.792Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/widuu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-28T13:03:01.000Z","updated_at":"2021-05-07T06:36:24.000Z","dependencies_parsed_at":"2022-08-04T04:45:12.617Z","dependency_job_id":null,"html_url":"https://github.com/widuu/linux_course","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/widuu%2Flinux_course","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/widuu%2Flinux_course/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/widuu%2Flinux_course/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/widuu%2Flinux_course/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/widuu","download_url":"https://codeload.github.com/widuu/linux_course/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241587929,"owners_count":19986628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T22:11:57.686Z","updated_at":"2025-03-03T00:11:17.275Z","avatar_url":"https://github.com/widuu.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"###运行级别和启动流程\n\n\u003e只有了解linux的启动流程才能更好的去优化和配置Linux,譬如说一台服务器我为什么要保证3，5启动软件即可，是怎么启动的呢？\n\n1.\tbios找到mbr主引导区，这个东西才512字节，深入的可以查询一下\n2.\t进入grub界面找启动内核\n3.\t读取kernel内核文件 /boot/vmlinuz-*\n4.\t读取init的镜像文件 /boot/initrd-*\n5.\tinit读取/etc/inittab\n6.\t读取启动级别(id:3:initdefault)\n7.\t读取/etc/rc.d/rc.sysinit,完成时间、主机名称，还要分区表/etc/fstab\n8.\t读取/etc/rc.d/rc脚本，通过脚本转换3级别，然后启动/etc/rc.d/rc3.d/下所有S来头的服务，不启动目录下K开头的服务\n9.\t进入登录界面\n\n---\n\n#####我们服务器设置的一般控制inittab来控制是图形界面还是终端 sudo init 0 关机\n\n\t\u003evim /etc/inittab\t#init启动时候加载的启动级别\n\n\t0 关机\n\t1 单用户\n\t2 不支持nfs(网络文件系统)\n\t3 终端页面\n\t4 未被使用\n\t5 图形界面\n\t6 重启\n\n\u003e当你是终端的时候你会发现你登录的是3级别，如果是X11图形界面的时候是5,可以修改`id:3:initdefault`,来修改启动级别\n\n\u003e如何设置开机启动和开机启动的原理\n\n\u003e我们如上还是终端启动，我们就进入/etc/rc.d/rc3.d 我们看到S开头和K开头，你可以理解成start和kill s开头的都启动K开头的都是不启动 ubuntu在 /etc/rc3.d/\n\n\t#centos设置开机启动\n\t\u003echkconfig mysql on\t\t\t\t#设置开机启动\n\t\u003echkconfig --list|grep mysql \t#查看哪些启动级别,发现除了0，1，6关闭其他都开启\n\t\u003ecd /etc/rc.d \u0026\u0026 ls -l\t\t\t#rcx.d是启动级别\n\t\u003ecd rc3.d \u0026\u0026 ll|grep mysql\t\t#显示如下，当然你进入2，4，5也是一样的，这就是说为什么服务器要保证开机3，5启动\n\tlrwxrwxrwx  1 root root 16 3月  14 19:22 S64mysqld -\u003e ../init.d/mysqld\n\n\t#ubuntu设置开机启动\n\t\u003esudo apt-get install dialog rcconf     #安装rcconf\n\t\u003esudo rcconf                            #出现图形界面可以设置\n\n\u003e一般我们使用apt-get或者yum安装的，也就是仓库源安装的都可以使用`service XXX start`,其实这种东西存储在/etc/init.d/文件夹下，你可以自己写脚本，放到/etc/init.d/使用`chmod a+x xxx`给权限，然后`service xxx start`启动,譬如我们二进制安装的nginx，然后自己手动写个nginx启动脚本。\n\t\n![rcconf](http://widuu.u.qiniudn.com/linux/rcconf.png)\t\t\t\t\t\n\n---\n\n###压缩与解压\n\n\u003e这个我们需要会几个常用的压缩包的解压和压缩，解压是因为万一你有二进制包要安装，你带会解压吧！压缩-你要备份一个网站不可能一个文件一个文件备份吧~所以学习压缩，这里边我讲下常用的tar tar.gz常见，.tar.bz2我记得php下载官网好像就有这个格式，为什么还学zip，兄弟，因为windows平台对zip支持很好，万一你要下载网站日志到windows上分析呢~是吧~ widuu建议这几个必会\n\n####tar压缩包\n\n\t\u003etar cf file.tar file\n\t#联想记忆\n \t#c create\n\t#f file \n\n\t\u003etar xf file.tar -C /data\n\t#x extract 记住x\n\t#-C 这是解压到哪里去\n\n\t#查看压缩包\n\t\u003etar tf file.tar.gz\n\n\n####tar.gz压缩包\n\n\t\u003etar czf file.tar.gz file\n\t#联想记忆\n \t#c create\n\t#z gz\n\t#f file \n\n\t\u003etar zxf file.tar.gz -C /data\n\t#x extract 记住x\n\t#-C 这是解压到哪里去\n\n\t#查看压缩包\n\t\u003etar tf file.tar.gz\n\t\n####zip压缩包\n\n\t\u003eyum install unzip zip -y #安装包\n\t\u003eunzip file.zip           #解压\n\t\u003eunzip -l file.zip        #查看压缩包中的内容\n\t\u003ezip  file.zip file       #压缩\n\n####tar.bz2\n\n\t\u003etar jxf file.tar.bz2      #解压\n\t\u003e\u003etar tf file.tar.bz2      #查看压缩包内容\n\t\u003etar jcf file.tar.bz2 file #压缩\n\n###网络配置\n\n####1. 修改ip 只能暂时的，重启就失效了\n\t\n\tifconfig eth0 192.168.1.1\n\tifconfig eth0 192.168.0.2 netmask 255.255.255.0\n\t\n\t#修改dns\n\troute add default gw 192.168.1.1\n\n####2. 修改网络配置文件\n\n\u003e现在用的最多的应该就是centos和ubuntu这两个吧，我就拿这两个做讲解，这个拖拖的你带会配置万一让你修改dhcp到static，我擦 修改错了，这个除了机房能控制，你购买的代理商都很难再弄上了~~~\n\t#centos配置\n\t\u003ecd /etc/sysconfig/network-scripts/\n\n\t#centos配置\n\n\t\u003evim /etc/sysconfig/netword-scripts/ifcfg-eth1 #针对自己的网卡\n\t\n\tDEVICE=eth1  \t\t\t\t\t\t\t\t#网卡名称\n\tTYPE=Ethernet\t\t\t\t\t\t\t\t#网卡类型\n\tIPADDR=192.168.1.1\t\t\t\t\t\t\t#IP地址\n\tNETMASK=255.255.255.0\t\t\t\t\t\t#子网掩码\n\tGATEWAY=192.168.1.1\t\t\t\t\t\t\t#网卡\n\tDNS1=202.102.224.68\t\t\t\t\t\t\t#DNS\n\tDNS2=8.8.8.8\n\tONBOOT=yes\t\t\t\t\t\t\t\t\t#主机启动加载\t\n\tNM_CONTROLLED=yes\t\t\t\t\t\t\t#实施生效，修改后不需要重启网卡立即生效\n\tBOOTPROTO=static\t\t\t\t\t\t\t#静态ip\n\n\t\u003eservice network restart\t\t\t\t\t#重启网卡\n\n\t\u003evim  vim /etc/resolv.conf\t\t\t\t\t#修改DNS\n\t\t\n\tnameserver 202.102.224.68\n\tnameserver 8.8.8.8\n\t\n\t#ubuntu 配置\n\t\u003evim /etc/network/interfaces\n\tauto eth0\n\tiface eth0 inet static\n\taddress 192.168.1.108\n\tnetmask 255.255.255.0\n\tgateway 192.168.1.1\n\n\t#修改dns\n\tvim /etc/resolv.conf\n\tnameserver 8.8.8.8\n\n\t#重启生效\n\t/etc/init.d/networking restart\n\t\n\t\n###防火墙设置\n\n####iptables\n\n\t#开启防火墙\n\t\u003eservice iptables start\n\t\n\t#开机启动\n\t\u003echkconfig iptables on           \n\t\n\t#保存策略文件在 /etc/sysconfig/iptables -- centos\n\tiptabels [-t 表名] \n\t\u003eiptables -t nat -L \t\t\t#查看nat表\n\t\u003eiptables -L\t \t\t\t\t#查看防火墙，默认是filter\n\t\n\t\u003eiptables -F\t\t\t\t\t#删除防火墙 -X清除自定义链接 -Z清除所有链统计\n\t\n\t\u003eservice iptables save\t\t#保存防火墙策略\n\t\u003eservice iptables restart\t#重启\n\t\u003eiptables -I INPUT -s 0.0.0.0 -j ACCEPT\n\n\tiptables \n\t\t-A 追加规则链\t\t\t再最后加入此规则\n\t\t-I INPUT \t\t\t插入INPUT\n\t\t-D 链 \t\t\t\t删除链\n\t\t-P 如果策略值缺省就强制使用此策略链\n\t\t-i 输入网卡\n\t\t-o 输出网卡\n\t\t-p 协议\n\t\t-s 源 ip\n\t\t-d 目标ip\n\t\t-j 动作\t\n\t\n\tiptables -A INPUT -i eth0 -p all -s 源ip --sport 源端口 -d 目标ip --dport 目标端口 -j 动作\n\t\n\t#常用模块状态\n\t\u003eiptables -I INPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT\n\t\n\t#允许192.168.1.109登录ssh端口\t\n\t\u003eiptables -A INPUT -i eth0 -p tcp -s 192.168.1.109 --dport 22 -j ACCEPT\n\t\n\t#禁止这个IP访问我的80端口\n\t\u003eiptables -A INPUT -i eth0 -p all -s 192.168.1.108 --dport 80 -j ACCEPT\n\t\t\n \t\u003eiptables -D INPUT 1\t\t\t\t\t\t#删除第一条规则\n\n\t\u003eiptables -A INPUT -m mac --mac-source 00:00:00:00:00  -j DROP #禁止mac地址访问我\n \n\t\u003eiptables -t filter -P INPUT DROP\t\t#默认规则清除所有设置后的所有端口，注意哈，当初我学习的时候，第一个设置的，结果我自己上不去了（最后）\n\n####一般服务器简单设置实例\n\n\tiptables -F\n\t#内部网络使用\n\tiptables -A INPUT -i lo -j ACCEPT\t\t\t\n\t#状态连接\t\t\t\t\n\tiptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT\n\t#允许80端口\n\tiptables -A INPUT -p tcp --dport  80 -j ACCEPT \n\t#允许ssh\n\tiptables -A INPUT -p tcp --dport  22 -s x.x.x.x -j ACCEPT\n\t#允许mysql\n\tiptables -A INPUT -p tcp --dport  3306 -j ACCEPT\n\t#允许ftp\n\tiptables -A INPUT -p tcp --dport  21 -j ACCEPT\n \t#允许邮件服务器\n\tiptables -A INPUT -p tcp --dport 110 -j ACCEPT\n\tiptables -A INPUT -p tcp --dport 25 -j ACCEPT\n\t#关闭掉其他所有\n\tiptables -P INPUT  DROP\n\t#保存防火墙规则\n\tservice iptables save\n\t#重启生效\n\tservice iptables restart\n \n\n\n#####selinux\n\n\t\u003esestatus\t              #查看selinux的状态\n\t\u003evim /etc/selinux/config\n\tSELINUX=disabled\t      #禁用selinux\n\t\u003ereboot \t\t          #重启服务器才能生效\n\n###软件安装yum\n\n####光盘安装\n\n\u003e这个如果是服务器的话，估计很少用到，也不可能谁没事就挂载个光盘来吧！当然你没事你可以做测试玩~\n\n#####首先，你要挂载关盘\n\n\tmount /dev/cdrom /media\n\n#####修改源\n\t\n\t#进入源仓库配置文件\n\tcd /etc/yum.repos.d/\n\n\t#移除根仓库源 不然会首先找这个\n\tmv CentOS-Base.repo CentOS-Base.repo.bak\n\n\t#修改配置信息\n\n\t[c6-media]\n\tname=CentOS-$releasever - Media\n\tbaseurl=file:///media/\n\t#关闭签名\n\tgpgcheck=0\t\t\t\t\n\t#开启原件源仓库\n\tenabled=1\n\tgpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6\n\n#####安装软件\n\n\t\u003erpm -ivh xxx.rpm  #软件的时候,可能依赖包没安装，最可能的是你安装的依赖会很多，所以我们用yum\n\t\u003eyum list\t\t   #查看软件列表\n\t\u003eyum install mysql #安装mysql 如果你感觉输入y比较烦，就yum install mysql -y\n\t\u003erpm -qa|grep mysql#查看安装mysql的一些包和依赖包\n\t\u003eyum remove  mysql #卸载，可能卸载掉一些依赖库，但是这些依赖库可能对你还很有用\n\t\u003erpm -e xxxx       #单个卸载 --nodeps 是强制卸载\n\n#####修改镜像源\n\n\u003e这个我们经常使用，因为我的服务器一般都在国内，一般安装好的都是centos的原有镜像，速度来说肯定没有国内快，所以我就换成国内的镜像源，一般我用的是163的，因为换太简单了，当然你也可以自己手动写，没有什么技术含量\n\n\t\u003ecd /etc/yum.repos.d/\t\t\t\t\t\t\t\t\t\t#进入\n\t\u003emv CentOS-Base.repo\t CentOS-Base.repo.bak\t\t\t\t\t#备份\n\t\u003ewget http://mirrors.163.com/.help/CentOS6-Base-163.repo\t\t#下载\n\t\u003emv CentOS6-Base-163.repo  CentOS-Base.repo\t\t\t\t\t\n\t\u003eyum makecache\t\t\t\t\t\t\t\t\t\t\t\t#清楚本地缓存\n\t\n\n\t#按照这种格式就可以填写你自己的仓库源 其中$releasever是版本,我的环境是6,$basearch我的是i386\n\t[base]\n\tname=CentOS-$releasever - Base - 163.com\t\t\t\t\t\t\t#镜像源名称\n\tbaseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/\t#镜像源地址\n\tgpgcheck=1\t\t\t\t\t\t\t\t\t\t\t\t\t\t#gbk签名\n\tgpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6\t\t#gpk签名地址\n\t\n\t#released updates \n\t[updates]\n\tname=CentOS-$releasever - Updates - 163.com\n\tbaseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/\n\tgpgcheck=1\n\tgpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6\n\t\n\t#additional packages that may be useful\n\t[extras]\n\tname=CentOS-$releasever - Extras - 163.com\n\tbaseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/\n\tgpgcheck=1\n\tgpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6\n\t\n\t#additional packages that extend functionality of existing packages\n\t[centosplus]\n\tname=CentOS-$releasever - Plus - 163.com\n\tbaseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/\n\tgpgcheck=1\n\tenabled=0\n\tgpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6\n\t\n\t#contrib - packages by Centos Users\n\t[contrib]\n\tname=CentOS-$releasever - Contrib - 163.com\n\tbaseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/\n\tgpgcheck=1\n\tenabled=0\n\tgpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6\t\t\n\n\t\u003eyum makecache\n\t\u003eyum list\t\t\t\t\n\n\n####查看服务器进程\n\n\t\u003eps -ef |grep httpd\t  #查看进程\n\t\u003epstrese | grep httpd #从进程树查看\n\n\t\u003enetstat -tunpl | grep 80 \n\t-t\ttcp\n\t-u  udp \n\t\n\t\u003euptime #显示登录信息和平均负载\n\t\u003ewho \t#显示正在登录的用户\n\n#####关闭进程\n\t\n\t\u003epkill mysql\n\t\u003ekill -9 pid\n\t\n\n \n###修改主机名称\n\t\n\u003e临时修改\n\t\n\thostname widuu\n\n\u003e修改配置文件修改\n\n\tvim /etc/sysconfig/network\t\n\n###硬盘分区和挂载\n\n\u003e这个很重要的了，如果你用云主机或者其它的服务器的时候肯定都待有分区和挂载，因为我发现大部分都不会给你挂载的，譬如阿里云、金山云、电信云等\n\n1.分区表配置文件\n\n\t\u003evim /etc/fstab\t\t\t#分区配置文件表\n\t/dev/cdrom  /media iso9660\tdefaults 0 0 \n\n\tmount -a #测试光驱挂载是否成功\n\n\tfdisk /dev/sdb\n\tp #查看当前分区表\n\tl #查看linux支持的文件系统\n\tn #增加新分区\n\tw #保存分区\n\n\t\u003efdisk -l \t\t\t\t\t\t\t\t#查看文件分区，找到为分区的\n\n![fdisk -l](http://widuu.u.qiniudn.com/linux/fdiskl.png)\n\n\t\u003efdisk /dev/sdb\t\t\t\t\t\t\t#我们需要的分区/dev/sdb\n\t\n![fdiskm](http://widuu.u.qiniudn.com/linux/fdiskm.png)\n\n\t\u003eCommand(m for help):m\t\t\t\t\t#寻求帮助\n\t\n\t\u003eCommand action\t\t\t\t\t\t\t#增加一个分区，然后选择 e扩展分区 p主分区\n\t   e   extended\n\t   p   primary partition (1-4)\n\t\u003ep\t\t\t\t\t\t\t\t\t\t#分为主分区\n\t\u003ePartition number (1-4): 1\t\t\t\t#主分区number\n\t\u003eFirst cylinder (1-1044, default 1): 1  #设置柱面\n\t\u003eLast cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +3076M #设置硬盘大小\n\n![fdiskp](http://widuu.u.qiniudn.com/linux/fdiskp.png)\t\n\n\t\u003ep \t\t\t\t\t\t\t\t\t\t#查看系统分区\n\t\u003et\t\t\t\t\t\t\t\t\t\t#修改系统类型\n\t\u003el\t\t\t\t\t\t\t\t\t\t#显示系统类型\n\t\n![fdiskt](http://widuu.u.qiniudn.com/linux/fdiskt.png)\n\n\t\u003ew\t\t\t\t\t\t\t\t\t\t#保存系统分区\n\t\u003emkfs.ext4\t/dev/sdb1\t\t\t\t\t#格式化硬盘\n\t\u003emkdir /data \u0026\u0026 mount /dev/sdb1\t/data\t#挂载硬盘\n\t\u003edf -h \t\t\t\t\t\t\t\t\t#查看硬盘挂载状况\n\t\t\n![fdisk](http://widuu.u.qiniudn.com/linux/fdisk.png)\n\n\t\u003evim /etc/fstab\t\t\t\t\t\t\t#设置开机挂载硬盘,添加如下\n\t/dev/sdb1  /data ext4   defaults  1 2\t#这个和如下一一对应\n\tfs_spec　\t\tfs_file　\tfs_type　\tfs_options　fs_dump　  fs_pass\t\n\t挂载的文件系统\t挂载点位置\t文件系统类型  参数选项     是否dump   无需启动扫描0 跟分区启动扫描1 其它2即可\n\t\u003emount -a \t\t\t\t\t\t\t\t#测试一挂载，千万要测试，我记得我做的最低级错误就是写错了，结果主机重启了，你懂得起不来了，我擦 损失大了\n\t\u003eunmout /dev/sdb1\t\t\t\t\t\t#卸载硬盘分区\n\n\n###用户权限管理\n\n1. `ls -l`\n2. `chmod a+x xxx.sh`\n3. `sudo /usr/sbin/useradd widuu`\n\n###文件权限\n\n\u003e文件权限三种 r-w-x 可读，可写，可执行 ，针对与文件和目录是不同的\n\n\u003e文件的权限如下\n\n![rwx](http://widuu.u.qiniudn.com/linux/rwx.png)\t\n\n\u003e上边我们切割一下\n\n\u003ed --文件类型 目录\n\n\u003erwx|rwx|r-xm,每三个分成一组\n\n - 第一组 是文件所有者，这里是root有可读可写可执行(u)\n \n - 第二组 是root组的其它用户有可读可写可执行\t\t (g)\n \n - 第三组 是other用户，就是既不属于文件所有者用户也不属于用户所有组，可读可执行 \t(o)\n\nr w x --\u003e 4 2 1 对应这4个值 ，你可以想成2的0次方，1次方，2次方\n\n\t对于目录来说 x 可执行权限意思是可以切换进入到这个目录 也就是cd /filedir\n\t对于目录来说 w 可写就是创建文件的权限或者创建文件夹的权限  mkdir test\n\t对于目录来说 r 可读就是列出目录的权限 譬如 ls -l\n\n\t对于文件来说 x 可执行，譬如.sh脚本有没有执行的权利\n\t对于文件来说 w 可写，就是写入，譬如vi demo.txt必须有w权限\n\t对于文件来说 r 可读权限，就是more cat less tail等能不能读取数据\n\n\u003echmod 给文件或者目录权限\n\n\t\u003echmod 0777 test.txt              #test.txt的权限-rwxrwxrwx \n\t\u003echmod u+rwx,g+rwx,o+rwx test.txt #同上的权限 +给权限 -是删除权限\n\t\u003echmod a+x                        #所有用户追加x权限\n\t\u003echmod -R 777 dir                 #递归添加dir目录所有权限\n\n\u003echown 分配用户和组\n\n\t\u003echown www:www /var/www/html     #给html目录 www用户和www用户组权限\n\n\u003eid 查看用户信息\n\n\t\u003eid xiaowei \n\tuid=501(xiaowei) gid=501(xiaowei) groups=501(xiaowei)\n\t\n\t\u003egpasswd -a xiaowei root #将xiaowei用户添加到root\n\t\u003egpasswd -d xiaowei root #从root组中删除\n\n\t\u003eusermod -L xiaowei      #锁定xiaowei用户 \n\t\u003eusermod -U xiaowei      #解锁xiaowei用户\n\n\n\u003esudo 权限设置\n\n\t\u003evisudo \n\t\u003exiaowei localhost=/usr/sbin/useradd #添加到文件中，给xiaowei有useradd权限\n\t\u003esudo useradd xiaowei1               #可以添加用户了\n\n\u003e添加删除用户\n\n\t\u003egroupadd   xiaowei                 #添加用户组\n \t\u003euseradd -g xiaowei xiaowei         #添加用户并且添加到用户组\n \t\u003euserdel -r xiaowei                 #删除用户\n\n\n###ACL权限分配\n\n\u003e一个公司里不可能让所有人都有root权限，所以在一些文件和文件夹处理，以及权限处理的时候就很棘手，这个时候我们就需要ACL给用户进行权限分配\n\n1.加权限\n\t\n\t\u003esetfacl -m u:username:rwx filedir #设置ACL\n\n2.查看权限\n\n\t\u003egetfacl filedir                   #获取ACL\n\t\n\t# file: filedir\n\t# owner: root\n\t# group: root\n\tuser::rwx\n\tuser:username:rwx\n\tgroup::r-x\n\tmask::rwx\n\tother::r-x\n\n\n3.删除权限\n\n\t\u003esetfacl -b u:username filedir     #删除u这个用户的acl权限 \n\t\u003esetfacl -b filedir                #删除filedir的ACL所有权限\n\t\n4.分配权限\n\n\u003enginx有时候就是因为权限的问题造成了nginx对cpu的负载过高，我们可以直接使用ACL对其分配权限\n\n\t#nginx执行的用户是www，我们要www有nginx文件夹的所有权限\n\t#nginx的安装目录是/usr/local/nginx\n\t\u003esetfacl -m u:www:rwx -R /usr/local/nginx #-R 文件递归\n\n\n###任务计划 \n\n\u003e我们有时候定时备份，或者说定时执行一些脚本这是我们必须会的\n\n\t\u003ecrontab -e                   #编写定时计划\n\t2  *  *  *  *  /sbin/init 0   #这里是每2分钟关机一次，当然你已经关机了\n\t#分 时 日 月 周  脚本\n\t\u003ecrontab -r                   #删除定时任务\n\t\u003ecrontab -l                   #列出定时任务\n\n\n\n\n\t\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiduu%2Flinux_course","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwiduu%2Flinux_course","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiduu%2Flinux_course/lists"}