diff --git "a/\347\216\213\346\226\260\351\233\205/20240605-vim\345\221\275\344\273\244.md.md" "b/\347\216\213\346\226\260\351\233\205/20240605-vim\345\221\275\344\273\244.md.md" new file mode 100644 index 0000000000000000000000000000000000000000..d1a1955a6a4a1db95e7777dc62c173b4d3aac366 --- /dev/null +++ "b/\347\216\213\346\226\260\351\233\205/20240605-vim\345\221\275\344\273\244.md.md" @@ -0,0 +1,39 @@ +vim命令 + +在Vim的普通模式(Normal mode)下,你可以进行文件浏览、光标移动、文本操作(如复制、粘贴、删除)等操作。 + +```js + +光标移动 +h:向左移动一个字符。 +l(小写的L):向右移动一个字符。 +j:向下移动一行。 +k:向上移动一行。 +0(数字零):跳到行首。 +$:跳到行尾。 +^:跳到行内第一个非空白字符。 +gg:跳到文件开头。 +G:跳到文件末尾。 +nG 或 :n:跳到第n行,如20G跳到第20行。 +文本操作 +x:删除光标下的字符。 +dd:删除(剪切)当前行。 +dw:删除(剪切)到单词结尾。 +daw:删除(剪切)整个单词。 +p:在光标后粘贴已删除/复制的文本。 +P:在光标前粘贴已删除/复制的文本。 +y 加移动命令:复制文本,如yw复制到单词结尾,yy复制整行。 +u:撤销上一次操作。 +Ctrl + r:重做(撤销撤销)。 +选择文本(可视模式) +v:进入字符选择模式,移动光标可以选择文本。 +V:进入行选择模式。 +Ctrl + v:进入块选择模式。 +选中后,可以进行删除(d), 复制(y)等操作。 +查找与替换 +/pattern:从当前光标位置开始向下查找pattern。 +?pattern:从当前光标位置开始向上查找pattern。 +n:在查找后,跳到下一个匹配处。 +N:跳到上一个匹配处。 +:%s/old/new/g:在全部文件中替换所有old为new(需要在命令行模式下执行,替换前确认可用:confirm,即:%, confirm s/old/new/g) +``` \ No newline at end of file diff --git "a/\347\216\213\346\226\260\351\233\205/20240606-Nginx\345\256\211\350\243\205ssl.md" "b/\347\216\213\346\226\260\351\233\205/20240606-Nginx\345\256\211\350\243\205ssl.md" new file mode 100644 index 0000000000000000000000000000000000000000..8e475a3214e553b27304491fe163d7de46094d31 --- /dev/null +++ "b/\347\216\213\346\226\260\351\233\205/20240606-Nginx\345\256\211\350\243\205ssl.md" @@ -0,0 +1,49 @@ +## 1. 获取SSL证书 + +要从证书颁发机构(CA)获取SSL证书和相应的私钥文件。 + +- **证书文件**(`.crt`或`.pem`) +- **私钥文件**(`.key`) +- **可能还包括**中间证书或链证书(如果有,通常为`.crt`) + +### 2. 上传证书文件至服务器 + +使用FTP、SCP或其他方式,将上述文件上传到服务器。推荐存放在`/etc/nginx/ssl/`目录下,例如: + +Bash + +``` +mkdir /etc/nginx/ssl +``` + +上传后缀为.crt文件、后缀为.key文件到ssl目录下 + +### 3. 修改Nginx配置 + +编辑Nginx的配置文件,通常位于`/etc/nginx/nginx.conf`或`/etc/nginx/sites-available/default`,或特定站点的配置文件,添加SSL配置。如果已有`listen 80;`配置段,您需要在新的`server`块中添加SSL监听: + +Nginx + +``` +server { + listen 443 ssl;//监听443端口 + server_name your_domain.com;绑定域名 + ssl_certificate /etc/nginx/ssl/your_cert.crt;//证书文件 + ssl_certificate_key /etc/nginx/ssl/your_key.key;//私钥文件 + root /var/www/oprototype.top; + index index.html; +``` + +### 4. 重启Nginx服务 + +保存配置文件后,重启Nginx服务以应用更改: + +Bash + +``` +systemctl restart nginx +``` + +### 5. 测试SSL配置 + +通过访问`https://your_domain.com`来测试SSL证书是否安装成功。 \ No newline at end of file diff --git "a/\347\216\213\346\226\260\351\233\205/20240612-\345\270\270\347\224\250\345\221\275\344\273\244.md" "b/\347\216\213\346\226\260\351\233\205/20240612-\345\270\270\347\224\250\345\221\275\344\273\244.md" new file mode 100644 index 0000000000000000000000000000000000000000..448da1acaa4cbef71a3a8cc9fc97f6a4d51718d1 --- /dev/null +++ "b/\347\216\213\346\226\260\351\233\205/20240612-\345\270\270\347\224\250\345\221\275\344\273\244.md" @@ -0,0 +1,103 @@ +### 1. `time` + +用于测量命令的执行时间。 + +### 2. `date` + +显示或设置系统日期和时间。 + +**示例**: + +``` +date "+%Y-%m-%d %H:%M:%S +``` + +### 3. `timedatectl` + +查看和设置系统时间和日期,时区和 NTP(网络时间协议)设置。 + +### 4. `reboot` + +重新启动系统。 + +### 5. `poweroff` + +关闭系统电源。 + +### 6. `wget` + +从网络上下载文件。 + +``` +wget https://example.com/file.txt +``` + +### 7. `curl` + +从网络上获取或发送数据。 + +``` +curl -O https://example.com/file.txt +``` + +### 8. `ps` + +查看当前运行的进程。 + +``` +ps aux # 显示所有用户的所有进程 一般会结合。grep,awk等过滤数据 +``` + +### 9. `kill` + +向进程发送信号(通常用于终止进程)。 + +``` +kill 1234 # kill 进程号,用pidof 进程名。来查看具体的进程的进程号 +``` + +### 10. `killall` + +向指定名称的所有进程发送信号。 + +``` +先安装psmisc +``` + +1. 安装psmisc 后,就会有pstree和killall + +``` +killall firefox +``` + +### 11. `ip` + +显示和操作网络接口和路由。 + +``` +ip addr show +``` + +### 12. `ss` + +显示套接字统计信息。旧版是netstat + +``` +ss -tuln # 可以查看哪些端口开放着 +``` + +### 13. `uname` + +显示系统信息。 + +### 14. `uptime` + +显示系统运行时间和负载。 + +### 15. `who` + +显示当前登录用户信息。 + +### 16. `last` + +显示系统上最近的登录信息。 \ No newline at end of file diff --git "a/\347\216\213\346\226\260\351\233\205/20240613-\351\207\215\345\256\232\345\220\221\345\222\214\347\256\241\351\201\223\347\254\246.md" "b/\347\216\213\346\226\260\351\233\205/20240613-\351\207\215\345\256\232\345\220\221\345\222\214\347\256\241\351\201\223\347\254\246.md" new file mode 100644 index 0000000000000000000000000000000000000000..132c8cee2d3f7e818a5ae6833c0e699bfc0d0aab --- /dev/null +++ "b/\347\216\213\346\226\260\351\233\205/20240613-\351\207\215\345\256\232\345\220\221\345\222\214\347\256\241\351\201\223\347\254\246.md" @@ -0,0 +1,97 @@ +# 重定向和管道 + +## 1、标准输入和标准输出 + +标准输入:由0表示,默认接受来自键盘的输入 + +标准输出:由1表示,默认输出到终端窗口 + +标准错误:由2表示,默认输出到终端窗口 + +## 2、重定向 + +### 1、重定向输出到文件 + +``` +>:标准输出,重定向到文件,文件内容会被覆盖 +>>:重定向到文件,在原有基础上追加内容 +2>:错误输出,重定向到文件,进行覆盖 +2>>:重定向到文件,追加内容 +&>:将标准输出和错误输出重定向到文件 +&>>:将标准输出和错误输出重定向到文件,追加内容 +``` + +#### 写法: + +``` +command > file +command >> file +command 2> error_file +command 2>> error_file +``` + +将标准输出和错误输出重定向到文件写法: + +``` +覆盖:command &> file 或 command > file 2>&1 +追加:command &>> file 或 command >> file 2>&1 +``` + +#### 特殊重定向 + +空设备文件:使用/dev/null丢弃输出。 + +``` +1command > /dev/null # 丢弃标准输出 +2command 2> /dev/null # 丢弃错误输出 +3command &> /dev/null # 同时丢弃标准输出和错误输出 +``` + +### 2、输入重定向 + +**从文件读取**:命令从指定文件而非标准输入(通常是键盘)读取数据 + +``` +command < file +``` + +## 3、管道 + +它允许用户将一个命令的输出直接作为另一个命令的输入,从而实现多个命令的串联,完成复杂的任务处理,操作符是一个竖线字符 | + +### 基本语法 + +命令的格式为:`command1 | command2` + +- `command1` 的标准输出(stdout)被连接到 `command2` 的标准输入(stdin)。 +- 这意味着 `command1` 执行产生的输出数据,不是打印到屏幕上,而是直接“流入”到 `command2` 中作为处理的输入。 + +示例: + +``` +ps aux | grep nginx \\查找特定进程:查找并显示所有名为 nginx 的进程信息。 +``` + +## 4、tee + +它从标准输入读取数据,并同时将这些数据复制到标准输出(通常是屏幕)以及一个或多个文件中 + +### 基本用法 + +``` +command | tee file +``` + +### 常用选项 + +- **-a, --append**:追加数据到文件末尾,而不是覆盖现有内容。 + + ``` + command | tee -a file + ``` + +### 示例: + +```js +echo "Hello, World!" | tee file1.txt file2.txt \\将 “Hello, World!” 输出到 file1.txt 和 file2.txt 两个文件中,同时也会显示在屏幕上 +``` \ No newline at end of file diff --git "a/\347\216\213\346\226\260\351\233\205/20240615-\347\224\250\346\210\267\344\270\216\346\226\207\344\273\266\346\235\203\351\231\220\347\232\204\347\256\241\347\220\206.md" "b/\347\216\213\346\226\260\351\233\205/20240615-\347\224\250\346\210\267\344\270\216\346\226\207\344\273\266\346\235\203\351\231\220\347\232\204\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..edffef73630422578f9331699be344311732c251 --- /dev/null +++ "b/\347\216\213\346\226\260\351\233\205/20240615-\347\224\250\346\210\267\344\270\216\346\226\207\344\273\266\346\235\203\351\231\220\347\232\204\347\256\241\347\220\206.md" @@ -0,0 +1,249 @@ +### Linux 链接 + +Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln 命令产生硬链接。 + +**硬连接** + +硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存[磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。 + +硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。 + +**软连接** + +另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。 + +### 权限管理练习 + +权限相关修改普通用户没有权限需要用sudo或者使用root账号 + +1. 创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令) + + ``` + mkdir -p /home/user/yina/guanli/{zonghe,jishu} + ``` + +2. 添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003 + + ``` + # -g 指定组id + # -r 创建系统用户组 + # -o 允许使用非唯一的gid创建用户组 + # -p 指定用户组的密码 + # -f 强制创建用户组,即使用户组已经存在 + # -K 指定用户组的键值对形式的属性,可以用于设置组的特殊属性,如组的密码过期策略 + groupadd -g 2001 zonghe + groupadd -g 2002 caiwu + groupadd -g 2003 jishu + + # 查看组信息 + cat /etc/group + ``` + +3. 创建jerry、kylin、tsengia、obama用户,其中的kylin用户帐号在2020年12月30日后失效 + + ``` + # -c 加上备注文字,备注文字会保存在passwd的备注栏位中 + # -d 指定用户登入时的起始目录 + # -D 变更预设值 + # -e 指定帐号的有效期限 + # -f 指定在密码过期后多少天即关闭该帐号 + # -g 指定用户所属的群组 + # -G 指定用户所属的附加群组 + # -m 制定用户的登入目录 + # -M 不要自动建立用户的登入目录 + # -n 取消建立以用户名称为名的群组 + # -r 建立系统帐号 + # -s 指定用户登入后所使用的shell + # -u 指定用户ID + useradd jerry + useradd -e 2020-12-30 kylin + useradd tsengia + useradd obama + + # 查看用户信息 + cat /etc/passwd + ``` + +4. 将jerry、kylin、tsengia、obama等用户添加到zonghe组内 + + ``` + # -c 修改用户账号的备注文字 + # -d 修改用户登入时的目录 + # -e 修改账号的有效期限 + # -f 修改在密码过期后多少天即关闭该账号 + # -g 修改用户所属的群组 + # -G 修改用户所属的附加群组 + # -l 修改用户账号名称 + # -L 锁定用户 + # -s 修改用户登入后所使用的shell + # -u 修改用户id + # -U 解除密码锁定 + usermod -G zonghe jerry + usermod -G zonghe kylin + usermod -G zonghe tsengia + usermod -G zonghe obama + + # 查看用户所在的组 + groups 用户名 + ``` + +5. 创建handy、cucci用户,其中cucci帐号的登录Shell设置为“/sbin/nologin” + + ``` + useradd handy + useradd -s cucci /sbin/nologin + ``` + +6. 将handy、cucci等用户添加到jishu组内 + + ``` + usermod -G handy + usermod -G cucci + ``` + +7. 将上述的所有用户均要求加入到guanli组内 + + ``` + # -a 添加用户到组 + # -d 从组删除用户 + # -A 指定管理员 + # -M 指定组成员和-A的用途差不多(但是可以多个) + # -r 删除密码 + # -R 限制用户登入组,只有组中的成员才可以用newgrp加入该组 + gpasswd -M jerry,kylin,tsengia,obama,handy,cucci guanli + ``` + +8. 将zonghe组内的obama用户删除 + + ``` + gpasswd -d obama zonghe + ``` + +9. 为jerry用户设置密码为“123456”(使用普通方法)为cucci用户设置密码为“redhat” + + ``` + passwd jerry + passwd cucci + # 另一种方法 + echo "redhat" | passwd --stdin cucci + ``` + +10. 将jerry用户锁定,并查看锁定状态 + + ``` + # passwd的选项 + # -d 删除密码 + # -f 强迫用户下次登录时必须修改口令 + # -w 口令要到期提前警告的天数 + # -k 更新只能发送在过期之后 + # -l 停止账号使用 + # -S 查看锁定状态 + # -u 启用已被停止的账户 + # -x 指定口令最长存活期 + # -g 修改群组密码 + # -i 口令过期后多少天停用账户 + usermod -l jerry + passwd -S jerry + ``` + +11. 打开两个xshell窗口,通过(who 或者 w)命令查看连接状态,并通过fuser杀掉其中一个 + + ``` + # 因为没有fuser所以安装一下 + apt install psmisc + # /dev/ 存放设备文件 + # -a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示 + # -c 和-m一样,用于POSIX兼容 + # -k 杀掉访问文件的进程,如果没有指定-signal就会发送SIGKILL信号 + # -i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。 + # -l 列出所有已知的信号名称 + # -m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name),这样所有访问这个文件或者文件系统的进程都会被列出来,如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统 + # -n space 指定一个不同的命名空间(space),这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口),对于端口, 可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示) + # -s 静默模式,这时候-u,-v会被忽略,-a不能和-s一起使用 + # -signal 使用指定的信号,而不是用SIGKILL来杀掉进程,可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略 + # -u 在每个PID后面添加进程拥有者的用户名称 + # -v 详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel. -V 输出版本号 + # -4 使用IPV4套接字,不能和-6一起应用,只在-n的tcp和udp的命名存在时不被忽略 + # -6 使用IPV6套接字,不能和-4一起应用,只在-n的tcp和udp的命名存在时不被忽略 + # - 重置所有的选项,把信号设置为SIGKILL + fuser -k /dev/pts/0 + ``` + +12. 查看cucci用户,属于那些组,并查看其详细信息 + + ``` + groups cucci + ``` + +13. 手工创建账号student(预留) + + ``` + vim /etc/passwd + # 创建用户信息 student:x:1014:1014::/home/student:/bin/bash + vim /etc/shadow + # /etc/shadow 存放用户密码信息 + # 创建用户密码 student::18107:0:99999:7::: + # 字段意思如下 + # 用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段 + vim /etc/group + # 创建用户所在组 student:x:1014: + mkdir /home/student + cd /etc/skel/ + ls -a | cp .b* /home/student/ + ``` + +14. 设置权限及归属:/guanli目录属组设为guanli, /guanli/zonghe目录的属组设为zonghe /guanli/jishu目录的属组设为jishu,设置3个目录都是禁止其他用户访问的权限 + + ``` + # -c 显示更改的部分的信息 + # -f 忽略错误信息 + # -h 修复符号链接 + # -v 显示详细的处理信息 + # -R 修改权限 + chown :guanli /guanli + chown :zonghe /guanli/zonghe/ + chown :jishu /guanli/jishu/ + chmod -R o-rwx /guanli/ + ``` + +15. 建立公共目录/ceshi允许技术组内的所有用户读取、写入、执行文件, 禁止其他用户读、写、执行 + + ``` + chmod g=rwx /ceshi/ + chmod o-rwx /ceshi/ + # 查看文件权限 + ls -ld /ceshi/ + ``` + +16. 清除jerry用户密码 + + ``` + passwd -d jerry + ``` + +17. 锁定cucci用户密码并查看状态 + + ``` + passwd -l cucci + passwd -S cucci + ``` + +18. 修改obama用户的UID为8888 + + ``` + usermod -u 8888 obama + ``` + +19. 通过passwd命令修改kylin用户的最长密码使用期限为60天 + + ``` + passwd -x 60 kylin + ``` + +20. 通过id groups等命令查看用户handy信息 + + ``` + id handy + groups handy + finger handy + ``` \ No newline at end of file diff --git "a/\347\216\213\346\226\260\351\233\205/20240615-\347\224\250\346\210\267\344\270\216\346\226\207\344\273\266\346\235\203\351\231\220\347\232\204\347\256\241\347\220\206\357\274\210\347\273\203\344\271\240\357\274\211.md" "b/\347\216\213\346\226\260\351\233\205/20240615-\347\224\250\346\210\267\344\270\216\346\226\207\344\273\266\346\235\203\351\231\220\347\232\204\347\256\241\347\220\206\357\274\210\347\273\203\344\271\240\357\274\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..b4183e3cc4e6100d09955d3edda18448b1b120d8 --- /dev/null +++ "b/\347\216\213\346\226\260\351\233\205/20240615-\347\224\250\346\210\267\344\270\216\346\226\207\344\273\266\346\235\203\351\231\220\347\232\204\347\256\241\347\220\206\357\274\210\347\273\203\344\271\240\357\274\211.md" @@ -0,0 +1,269 @@ +# 用户与文件权限的管理 + +课后作业: + +- 什么是linux 硬连接和软连接(快捷方式) + +1. 用户管理 + 1. 分类 + - 超级用户 root ,最高权限,不受一般权限的限制,编号0 ,提示符是 # + - 内置用户 :由系统自动创建 ,编号1-999 + - 普通用户 :我们用root权限手动创建用户,受权限控制 ,编号从1000依次递增 + - 创建普通用户test会自动创建他的编号u ,他原生组g(和用户名同名test),附加组 G (test),初始化的时候一定是u 1000(test), 1000(test),1000(test) + - 普通不能创建普通用户,只有root + - 提示符是 $ + - u user 用户 uid + - group 组 gid + - Group + 2. 用户 + 1. 添加 + - useradd -m -d /home/YYY -s /bin/bash XXX + - adduser + 2. 删除 + - userdel XXX + - userdel -r xxx 删除用户和相关的目录 + 3. 修改 + - usermod -G 组号|组名 XXX : usermod -G stu u15 覆盖原来的附加组(扩展组) + - usermod -aG 组号|组名 XXX : usermod -aG stu u15 保留原有附加组前提下,追加新的附加组 + - usermod -s /bin/aaa u15 + 4. 密码 + - passwd 用户名 root修改指定用户的密码 + - passwd 修改当前登录用户的密码,即自己的密码 + 5. 查询 + - id 用户名 指定用户 + - /etc/passwd + 6. 切换 + - su 仅仅切换了身份,不切换目录和shell等环境 + - su - 完全切换,连环境变量和目录一起切换 + 3. 用户组:编号也是从1000开始 + 1. 添加 + - groupadd student 添加一个组,编号自动的 + - groupadd -g 8888 student2 添加一个组,编号自动的 + 2. 删除 groupdel 组号|名 + 3. 修改 groupmod + 4. 查询 + - /etc/group +2. 文件管理 + - 文件属性:10个字符,连接数或子目录数,文件拥有者,文件所属的用户组,文件大小,修改时间,文件|目录名 + - 10个字符: + - 第1位 文件类型 + - d 目录 + - -普通文件 + - l 连接文件 + - b c s p 等其它文件 + - 后9位分别代表了:三种角色的权限,每3位一组 + - 2-4 拥有者权限 + - 5-7 用户组的权限 + - 8-10 其它人的权限 + - 基本权限 + - 读 r (read) : 打开并显示文件内容,查看目录基本信息 + - 写 w (write) : 文件,可以写入,修改,删除内容,目录:创建,修改,删除文件|目录 + - 执行 x (execute) :文件如果是二进制或脚本文件就可以执行,目录表示可以进入 + - 特殊权限 + - SUID + - GUID + - 隐藏权限 + - lsattr 列出隐藏权限 + - chattr 修改隐藏权限 + - +i 增加,不得任意更动文件或目录的效果 + - -i 消除 + - + - 权限表示 + - 字符 + - 数字 + - r == 4 + - w == 2 + - x == 1 + - 身份表示 + - u 拥有者 (user) + - g 用户组(group) + - o 其它人 (other) + - a 所有人 (all) + - 修改权限 :root可以改任何文件,而拥有者可以改自己拥有文件 + - chmod 要的权限 文件|目录 + - chmod u+w,g-r,o=rw 1.txt + - chmod 755 1.txt + - 修改拥有者 + - chown 用户名 文件名 + - 修改文件所属的用户组 + - chgrp 组名|号 文件|目录 + - sudo + - 修改 /etc/sudoers 文件 + - 将 用户追加到sudo组 :sudo usermod -aG sudo u15 +3. Linux执行命令的过程 + 1. 如果这个命令是绝对路径,就直接执行 + 2. 如果不是, + 1. 查一下是不是别名,是执行对应的命令 + 2. 从环境变量中找这个命令 $PATH中的路径依次查找这个命令 + 3. 本地也没有,就报错了。 + +### 权限管理练习 + +1. 创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令) + + ``` + wxy@hecs-165744:~$ mkdir -p ~/guanli/zonghe && mkdir ~/guanli/jishu + ``` + +2. 添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003 + + ``` + sudo groupadd -g 2001 zonghe + sudo groupadd -g 2002 caiwu + sudo groupadd -g 2003 jishu + ``` + +3. 创建jerry、kylin、tsengia、obama用户,其中的kylin用户帐号在2020年12月30日后失效 + + ``` + sudo useradd kylin -e 2020-12-30 //创建kylin用户,该账户在202012月30后失效 + sudo chage -l kylin //查看 + + wxy@hecs-165744:~$ sudo useradd jerry + wxy@hecs-165744:~$ sudo useradd kylin -e 2020-12-30 + wxy@hecs-165744:~$ sudo useradd tsengia + wxy@hecs-165744:~$ sudo useradd obama + ``` + +4. 将jerry、kylin、tsengia、obama等用户添加到zonghe组内 + + ``` + wxy@hecs-165744:~$ sudo usermod -aG zonghe jerry + wxy@hecs-165744:~$ sudo usermod -aG zonghe kylin + wxy@hecs-165744:~$ sudo usermod -aG zonghe tsengia + wxy@hecs-165744:~$ sudo usermod -aG zonghe obama + ``` + +5. 创建handy、cucci用户,其中cucci帐号的登录Shell设置为“/sbin/nologin” + + ``` + wxy@hecs-165744:~$ sudo usermod -s /sbin/nologin cucci + ``` + +6. 将handy、cucci等用户添加到jishu组内 + + ``` + sudo usermod -aG jishu handy + sudo usermod -aG jishu cucci + ``` + +7. 将上述的所有用户均要求加入到guanli组内 + + ``` + wxy@hecs-165744:~$ sudo usermod -aG guanli jerry + wxy@hecs-165744:~$ sudo usermod -aG guanli kylin + wxy@hecs-165744:~$ sudo usermod -aG guanli tsengia + wxy@hecs-165744:~$ sudo usermod -aG guanli obama + wxy@hecs-165744:~$ sudo usermod -aG guanli handy + wxy@hecs-165744:~$ sudo usermod -aG guanli cucci + ``` + +8. 将zonghe组内的obama用户删除 + + ``` + wxy@hecs-165744:~$ sudo gpasswd -d obama zonghe + ``` + +9. 为jerry用户设置密码为“123456”(使用普通方法)为cucci用户设置密码为“redhat” + + ``` + wxy@hecs-165744:~$ sudo passwd jerry + wxy@hecs-165744:~$ sudo passwd cucci + ``` + +10. 将jerry用户锁定,并查看锁定状态 + + ``` + ww@class2:~$ sudo usermod -L jerry + ww@class2:~$ sudo passwd -S jerry + jerry L 2024-06-18 0 99999 7 -1 + ``` + +11. 打开两个xshell窗口,通过(who 或者 w)命令查看连接状态,并通过fuser杀掉其中一个 + + ``` + ww@class2:~$ w + 15:14:17 up 3:11, 7 users, load average: 0.06, 0.19, 0.24 + USER TTY 来自 LOGIN@ IDLE JCPU PCPU WHAT + root tty1 - 12:08 2:02m 0.74s 0.65s -bash + root pts/0 192.168.91.1 13:12 7:13 0.12s 0.12s -bash + root pts/1 192.168.91.1 13:12 2:02m 37.01s 36.99s top + ww pts/2 192.168.91.1 15:12 1.00s 0.13s 0.04s w + ww pts/3 192.168.91.1 15:12 1:55 0.36s 0.31s top + ww pts/4 192.168.91.1 15:14 3.00s 0.04s 0.04s -bash + ww pts/5 192.168.91.1 15:14 1.00s 0.04s 0.01s top + ww@class2:~$ sudo fuser -k /dev/pts/4 + /dev/pts/4: 173483 + ``` + + ![alt text](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAACh0lEQVR4Ae3ch5W0OgyG4dt/mQJ2xgQPzJoM1m3AbALrxzrf28FzsoP0HykJEEAAAUQTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEkKK0789+GK/I2ezfQB522PnS1qc8pGgXvr4tE4aY0XOUWlGImThWgyCk6DleixzE7qwBkg/MGiDPlVVAyp1VQGrPKiACDhFI6VkF5LmzCki+sg7IwDoglnVAil0IMkeG9CyUiwsxLFUVFzJJOQaKCjFCDN9RXMjIX7W6ztZXZDKKCyn8sWJvH+nca7WHDN9lROlAliPH9iRKCPI4cswFJQWxB46toLQgQ9jhn5QYZA9DOkoMUoQde5YapAxDWkoNYsOQR3KQd9CxUnIQF4S49CB9ENKlBxmDEKsFUgMCCCCAAHIrSF61f6153Ajy8nyiPr8L5MXnmm4CyT2fzN4DUvHZ+ntA2tOQBRBAAAEEEEAAAQQQ7ZBaC6TwSiDUaYHQ2yuB0MN+ft+43whyrs4rgVCjBUKTFshLC6TUAjGA3AxSaYFYLZBOC2RUAsk8h5qTg9QcbEoOsoQhQ2qQhsO5xCD5dgB5JQaZ+KBKGtKecvR81Ic0ZDjByKdDx0rSEDZ/djQbH+bkIdvfJFm98BfV8hD2zprfVdlu9PxVeyYAkciREohRAplJCaRSAplJCcQogTjSAdlyHRBvSAekJR0QRzogA+mADJkOiCPSAPEtqYBshlRAXC43hxix2QiOuEZkVERykGyNo9idIZKE0HO7XrG6OiMShlDWjstVzdPgXtUH9v0CEidAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQP4HgjZxTpdEii0AAAAASUVORK5CYII=) + +12. 查看cucci用户,属于那些组,并查看其详细信息 + + ``` + ww@class2:~$ groups cucci //查看cucci用户属于哪些组 + cucci : cucci jishu guanli + ww@class2:~$ id cucci //查看其详细信息 或 getent passwd cucci + uid=1006(cucci) gid=1006(cucci) 组=1006(cucci),2003(jishu),2004(guanli) + ``` + +13. 手工创建账号student(预留) + + ``` + useradd student + ``` + +14. 设置权限及归属:/guanli目录属组设为guanli, /guanli/zonghe目录的属组设为zonghe /guanli/jishu目录的属组设为jishu,设置3个目录都是禁止其他用户访问的权限 + + ``` + ww@class2:~$ sudo chgrp guanli guanli + ww@class2:~$ sudo chgrp zonghe guanli/zonghe + ww@class2:~$ sudo chgrp jishu guanli/jishu + + ww@class2:~$ sudo chmod o= guanli + ww@class2:~$ sudo chmod o= guanli/zonghe + ww@class2:~$ sudo chmod o= guanli/jishu + ``` + +15. 建立公共目录/ceshi允许技术组内的所有用户读取、写入、执行文件, 禁止其他用户读、写、执行 + + ``` + chown root:jishu ceshi + chmod u=wrx,g=wrx,o= ceshi + ``` + +16. 清除jerry用户密码 + + ``` + ww@class2:~$ sudo gpasswd -r jerry + ``` + +17. 锁定cucci用户密码并查看状态 + + ``` + ww@class2:~$ sudo passwd -l cucci + passwd:密码已更改。 + ww@class2:~$ sudo passwd -S cucci + cucci L 2024-06-18 0 99999 7 -1 + ``` + +18. 修改obama用户的UID为8888 + + ``` + ww@class2:~$ sudo usermod -u 8888 obama + ``` + +19. 通过passwd命令修改kylin用户的最长密码使用期限为60天 + + ``` + sudo chage -M 60 kylin + ``` + +20. 通过id groups等命令查看用户handy信息 + +``` +ww@class2:~$ id handy +uid=1005(handy) gid=1005(handy) 组=1005(handy),2003(jishu),2004(guanli) +ww@class2:~$ groups handy +handy : handy jishu guanli +``` \ No newline at end of file diff --git "a/\347\216\213\346\226\260\351\233\205/20240617-\345\221\250\346\234\237\344\273\273\345\212\241\347\256\241\347\220\206.md" "b/\347\216\213\346\226\260\351\233\205/20240617-\345\221\250\346\234\237\344\273\273\345\212\241\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..a5ecce5f72bb5ad9faf2f5cc10b2afbe952e1ada --- /dev/null +++ "b/\347\216\213\346\226\260\351\233\205/20240617-\345\221\250\346\234\237\344\273\273\345\212\241\347\256\241\347\220\206.md" @@ -0,0 +1,50 @@ +## 周期任务管理 + +### 用户级 + +用户之间的周期是相互独立的 + +配置文件:/var/spool/cron/crontabs/用户名 + +编辑:crontab -e + +查看:crontab -l + +删除:crontab -r 删除所有的周期任务 + + + +### 系统级 + +全局配置,对所有用户都生效 + +配置文件: + +- /etc/crontab +- /etc/cron.d/子文件 + +编辑、查看、删除 ---- vim 相应的配置文件 + + + +### 任务的语法 + +- 时间+命令 +- 时间+脚本路径 + +#### 时间 + +- 分 ---- 0-59分 +- 时 ---- 0-23时 +- 天(每个月的第几天)---- 1-31天 +- 月 ---- 1-12月 +- 周(每周第几天)---- 0-6 + +#### 特殊符号 + +- *范围内的任意值,每 +- ,列表,列出允许值 ---- 如1,6,9 +- -范围,开始-结束 【包含头尾】 +- / 间隔,*/5 ---- 每隔5 1-30/5 --> 1,6,11,16,21,26 +- L ---- 天或周的值里写,表最后 +- W ---- 工作日,只能是工作日,如果指定的不是工作日,就找最近的工作日 \ No newline at end of file