diff --git "a/\345\220\264\344\277\212\346\230\216/20240603\347\254\224\350\256\260.md" "b/\345\220\264\344\277\212\346\230\216/20240603\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..5bd0d0a42a1ca0368408611b1d4dc9f287e0e140 --- /dev/null +++ "b/\345\220\264\344\277\212\346\230\216/20240603\347\254\224\350\256\260.md" @@ -0,0 +1,28 @@ +## 用户管理命令 + +id(显示用户的详细信息):id 用户名 + +useradd(创建新的用户账号):useradd [参数] 用户名 + +- -d:指定用户的家目录(默认/home/username) +- -u:指定该用户的默认UID +- -g:指定一个初始的用户基本组(必须已存在) +- -G:指定一个或多个扩展用户组 + +adduser(创建新的用户账号):有引导,可以直接创建家目录 + +userdel(删除已有的用户账号):userdel [参数] 用户名 + +- -r:同时删除用户及用户家目录 +- -f:强制删除用户 + +deluser(删除已有的用户账号):删除周期任务 + +ls -al /home:查看家目录 + +### 修改用户密码:passwd + +- -l:锁定用户,禁止其登录 +- -u:解除锁定,允许用户登录 +- -d:使该用户可用空密码登录系统 +- -e:强制用户在下次登录时修改密码 \ No newline at end of file diff --git "a/\345\220\264\344\277\212\346\230\216/20240605\347\254\224\350\256\260.md" "b/\345\220\264\344\277\212\346\230\216/20240605\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..a7858b5079680b0c2e0cba179cee4f80976f4214 --- /dev/null +++ "b/\345\220\264\344\277\212\346\230\216/20240605\347\254\224\350\256\260.md" @@ -0,0 +1,47 @@ +# 用户管理 + +### 切换用户: + +su + +su - + +### 查看当前登录用户: + +id + +who + +#### 肉鸡:被黑客远程控制的机器,也被称为傀儡机。黑客可以操控肉鸡进行DDOS攻击,或利用其进行挖矿 + +### 禁止用户登录SSH + +#### nologin + +### 三个访问时间: + +atime:访问时间 + +ctime:修改文件 / 文件夹属性的时间 + +mtime:修改内容的时间 + +### 管理家目录: + +- cd(cd ~):进入家目录 +- echo ~:查看当前用户的家目录的路径 +- ls:列出家目录内容 + +### 修改用户对某个对象的权限: + +- 如何修改文件或者文件夹拥有者: + + chown user001 ti.txt -------> 将ti.txt这个文件的所有者更改为user001 + + chown user001 wwb -------> 将wwb这个目录的所有者更改为user001 + +- 如何修改文件或者文件夹所属组: + + -R:递归修改目录下所有文件的所属组 + + chgrp wjm test.txt/ -------> 将test.txt这个文件的所属组改为wjm \ No newline at end of file diff --git "a/\345\220\264\344\277\212\346\230\216/20240606\347\254\224\350\256\260.md" "b/\345\220\264\344\277\212\346\230\216/20240606\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..8d13afb3392c205033aa94ddd0d57794c9aea4a6 --- /dev/null +++ "b/\345\220\264\344\277\212\346\230\216/20240606\347\254\224\350\256\260.md" @@ -0,0 +1,191 @@ +### 权限修改:chmod + +- 增加权限:chmod o+(r/w/x) 文件名.文件类型 +- 修改拥有者权限:chown(u) +- chown 用户名 文件名.文件类型 + +修改所属组权限:chgrp(g)-->change group + +- chgrp 用户名 文件名.文件类型 + +-rm-r--r--:拥有者权限、所属组的用户权限(代表所属组的用户权限,都具有第二块属性的权限) + +- x:代表1(可执行) +- w:代表2(只写) +- r:代表4(只读) + +### 特殊权限 + +- 使用suid让普通用户以root或其他用户角色运行只有root或其他账号才能运行的命令或程序 +- 使用字符S和s来设置特殊权限,其中s与x位置相同,均在一组3位编码的最后一位 +- 使用o+t来设置特殊权限 +- 使用g+s来改变文件或目录的所属组 +- 使用chattr +i来锁定文件,使其不能编辑、修改、删除或移动 + +##### + +### 权限管理练习 + +1. 创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令) + + ##### 答案:mkdir -p /guanli/{zonghe,jishu} + +2. 添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003 + + ##### 答案: + + ``` + -g:对组账号gid设置 + + root@robin:~# groupadd -g 2001 zonghe root@robin:~# groupadd -g 2002 caiwu root@robin:~# groupadd -g 2003 jishu + ``` + +3. 创建jerry、kylin、tsengia、obama用户,其中的kylin用户帐号在2020年12月30日后失效 + + ##### 答案: + + ``` + -e:指定用户账号的失效时间 + chage -l kylin:查看用户过期时间 + + root@robin:~# useradd jerry root@robin:~# useradd -e 2020-12-30 kylin root@robin:~# useradd tsengia root@robin:~# useradd obama + ``` + +4. 将jerry、kylin、tsengia、obama等用户添加到zonghe组内 + + ##### 答案: gpasswd -M jerry,kylin,tsengia,obama zonghe + +5. 创建handy、cucci用户,其中cucci帐号的登录Shell设置为“/sbin/nologin” + + ##### 答案: + + ``` + -s:指定登录用户的shell + cat /etc/passwd:查看登录用户的shell + + root@robin:~# useradd handy root@robin:~# useradd -s /sbin/nologin cucci + ``` + +6. 将handy、cucci等用户添加到jishu组内 + + ##### 答案:gpasswd -M handy,cucci jishu + +7. 将上述的所有用户均要求加入到guanli组内 + + ##### 答案: + + ``` + groupadd guanli root@robin:~# gpasswd -M jerry,kylin,tsengia,obama,handy,cucci guanli + ``` + +8. 将zonghe组内的obama用户删除 + + ##### 答案: + + ``` + -d从组内删除一个组成员 + root@robin:~# gpasswd -d obama zonghe 正在将用户“obama”从“zonghe”组中删除 + ``` + +9. 为jerry用户设置密码为“123456”(使用普通方法)为cucci用户设置密码为“redhat” + + ##### 答案: + + ``` + root@robin:~# passwd jerry + 新的密码: 重新输入新的密码: passwd:已成功更新密码 + + echo "cucci:redhat" | chpasswd + ``` + +10. 将jerry用户锁定,并查看锁定状态[root@localhost chen]# usermod -L jerry + + ##### 答案: + + ``` + -S:产看用户状态 + -L:锁定用户状态 + root@robin:~# usermod -L jerry root@robin:~# passwd -S jerry jerry L 2024-06-06 0 99999 7 -1 (密码已被锁定) + ``` + +11. 打开两个xshell窗口,通过(who 或者 w)命令查看连接状态,并通过fuser杀掉其中一个 + + ##### 答案: + + ``` + -k: kill正在使用的某一指定的路径 + sudo apt update + sudo apt install psmisc + fuser -k /dev/pts/2 + ``` + +12. 查看cucci用户,属于那些组,并查看其详细信息 + + ##### 答案: + + ``` + groups cucci + finger cucci + ``` + +13. 手工创建账号student(预留) + + ##### 答案: + + ``` + root@robin:~# vi /etc/passwd + student:x:1014:1014::/home/student:/bin/bash + root@robin:~# vi /etc/shadow + student::18107:0:99999:7::: + root@robin:~# vi /etc/group + student:x:1014: + root@robin:~# mkdir /home/student root@robin:~# cd /etc/skel/ root@robin:/etc/skel# ls -a | cp .b* /home/student/ + ``` + +14. 设置权限及归属:/guanli目录属组设为guanli, /guanli/zonghe目录的属组设为zonghe /guanli/jishu目录的属组设为jishu,设置3个目录都是禁止其他用户访问的权限 + + ##### 答案: + + $$ + + $$ + + ``` + root@robin:/etc/skel# chown :guanli /guanli &&chown :zonghe /guanli/zonghe/ &&chown :jishu /guanli/jishu/ && chmod -R o-rwx /guanli/ + ``` + +15. 建立公共目录/ceshi允许技术组内的所有用户读取、写入、执行文件, 禁止其他用户读、写、执行 + + ##### 答案: + +16. 清除jerry用户密码 + + ##### 答案:passwd -d jerry + +17. 锁定cucci用户密码并查看状态 + + ##### 答案: + + ``` + root@robin:~# usermod -L cucci 或者 root@robin:~# passwd -l cucci ----锁定 root@robin:~# passwd -S cucci ----查看状态 + cucci L 2024-06-06 0 99999 7 -1 (密码已被锁定) + ``` + +18. 修改obama用户的UID为8888 + + ##### 答案:usermod -u 8888 obama + +19. 通过passwd命令修改kylin用户的最长密码使用期限为60天 + + ##### 答案:passwd -x 60 kylin + +20. 通过id groups等命令查看用户handy信息 + + ##### 答案: + +``` +root@robin:~# id handy uid=1008(handy) gid=1008(handy) 组=1008(handy),2003(jishu),2004(guanli) + +root@robin:~# groups handy handy : handy jishu guanli +root@robin:~# finger handy +``` \ No newline at end of file diff --git "a/\345\220\264\344\277\212\346\230\216/20240607\347\254\224\350\256\260.md" "b/\345\220\264\344\277\212\346\230\216/20240607\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..607a1714a00471981a7fa14bc472ba45ffad289a --- /dev/null +++ "b/\345\220\264\344\277\212\346\230\216/20240607\347\254\224\350\256\260.md" @@ -0,0 +1,51 @@ +umask:指定用户创建文件/文件夹时的掩码 + +- SUID:只对可执行文件有效; +- SGID:对执行文件和目录都有效; +- SBIT:只对目录有效 + +### 隐藏权限 + +1. ##### chattr(设置文件的隐藏权限): + +``` +创建一个普通文件,立即删除(肯定会成功) +echo "fffff" > test +rm test +创建一个普通文件,并为其设置“不允许删除与覆盖”(+a参数)权限,立即删除(会失败) +echo "ffffff" > test +chattr +a test +rm test +rm: cannot remove 'test': Operation not permitted ——> rm:无法删除“test”:不允许操作 +``` + +- +i:无法对文件进行修改:若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 +- +a:仅允许补充(追加)内容,无法覆盖 / 删除内容 +- +S:文件内容在变更后立即同步到硬盘 +- +s:彻底从硬盘中删除,不可恢复(用零块填充原文件所在的硬盘区域) +- +u:当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 +- +D:检查压缩文件中的错误 + +1. ##### lsattr(查看文件的隐藏权限) + +## 周期任务管理 + +1. *:表示匹配该域的任意值 +2. ?:只能用DayofMonth和DayofWeek两个域 +3. -: 表示范围 +4. / : 表示起始时间开始触发,然后每隔固定时间触发一次 +5. ,: 表示列出枚举 +6. L : 表示最后,在DayofMonth和DayofWeek域 +7. W : 表示有效工作日,在DayofWeek域 + +### at命令: + +- at now + 10 minutes:在当前时间的10分钟后执行命令 +- at -l:列出当前用户的at任务 +- at -r:删除当前用户的at任务 + +#### 在当前时间的10分钟后执行backup.sh脚本 + +- at now + 10 minutes +- at> /path/to/backup.sh +- at> Ctrl+D \ No newline at end of file diff --git "a/\345\220\264\344\277\212\346\230\216/20240612\347\254\224\350\256\260.md" "b/\345\220\264\344\277\212\346\230\216/20240612\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..8ad56ebd15b994814c95af616790b3e09db305bd --- /dev/null +++ "b/\345\220\264\344\277\212\346\230\216/20240612\347\254\224\350\256\260.md" @@ -0,0 +1,96 @@ +## 周期任务 + +- 概念:提供了一种可以重复的、指定重复周期的一种机制,一种执行机制 +- 分类: +- 1. 系统级 + - /etc/cron.hourly + - /etc/cron.weekly + - /etc/cron.daily + - /etc/cron.yearly + - /etc/cron.monthly + 2. 用户级 + 1. /var/spool/cron/crontabs/root root用户的周期任务 +- 配置周期任务 + 1. 系统级 + - 编辑对应的系统级配置文件(对应小时、天、周等) + 2. 用户级 + - 编辑对应的系统级配置文件 + - crontab -e 编辑 + - crontab -r 删除 + - crontab -l 列出任务 + +*:表示所有 + +-:代表范围 5-10 + +/:前面代表起始,后面代表间隔 + +``` + * * * * * command +minute hour day month week command +分 时 日 月 星期 命令 +minute: 表示分钟,可以是从0到59之间的任何整数。 +hour:表示小时,可以是从0到23之间的任何整数。 +day:表示日期,可以是从1到31之间的任何整数。 +month:表示月份,可以是从1到12之间的任何整数。 +week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。 +command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件 +``` + +### 周期任务练习 + +``` +1. 每天3:00执行一次 + 0 3 * * * echo "jjj" >> kk.txt +2. 每周六2:00执行 + 0 2 * * 6 echo "666" >> kk.txt +3. 每周六1:05执行 + 5 1 * * 6 echo "1:05" >> kk.txt +4. 每周六1:25执行 + 25 1 * * 6 echo "1:25" >> kk.txt +5. 每天8:40执行 + 40 8 * * * echo "8:40" >> kk.txt +6. 每天3:50执行 + 50 3 * * * echo "3:50" >> kk.txt +7. 每周一到周五的3:40执行 + 40 3 * * 1-5 echo "3:40" >> kk.txt +8. 每周一到周五的3:41开始,每10分钟执行一次 + 41,51 3 * * 1-5 echo "3:41" >> kk.txt + 1/10 4-23 * * 1-5 echo "3:41" >> kk.txt +9. 每天的10:31开始,每2小时执行一次 + 31 10-23/2 * * * echo "10:31" >> kk.txt +10. 每周一到周三的9:30执行一次 + 30 9 * * 1-3 echo "9:30" >> kk.txt +11. 每周一到周五的8:00,每周一到周五的9:00执行一次 + 0 8,9 * * 1-5 echo "8:00,9:00" >> kk.txt +12. 每天的23:45分执行一次 + 45 23 * * * echo "23:45" >> kk.txt +13. 每周三的23:45分执行一次 + 45 23 * * 3 echo "23:45" >> kk.txt + +14. 每周一到周五的9:25到11:35、13:00到15:00之间,每隔10分钟执行一次 + 25,35,45,55 9 * * 1-5 echo "23213" >> kk.txt + 0/10 10 * * 1-5 echo "23213" >> kk.txt + 0,10,25 * * 1-5 echo "23213" >> kk.txt + 0/10 13-15 * * 1-5 echo "23213" >> kk.txt + +15. 每周一到周五的8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次 + 30,50 8 * * 1-5 echo "wwb666" >> kk.txt + 30 9 * * 1-5 echo "wwb666" >> kk.txt + 0,30 10 * * 1-5 echo "wwb666" >> kk.txt + 0,30 11 * * 1-5 echo "wwb666" >> kk.txt + 30 13 * * 1-5 echo "wwb666" >> kk.txt + 0,30 14 * * 1-5 echo "wwb666" >> kk.txt + 0 5 * * 1-5 echo "wwb666" >> kk.txt + +16. 每天16:00、10:00执行一次 + 0 16,10 * * * echo "16:00、10:00" >> kk.txt + +17. 每天8:10、16:00、21:00分别执行一次 + 10 8 * * * echo "8:10、16:00、21:00 >> kk.txt + 0 16,21 * * * echo "8:10、16:00、21:00 >> kk.txt + +18. 每天7:47、8:00分别执行一次 + 47 7 * * * echo "7:47、8:00" >> kk.txt + 0 8 * * * echo "7:47、8:00" >> kk.txt +``` \ No newline at end of file diff --git "a/\345\220\264\344\277\212\346\230\216/20240613\347\254\224\350\256\260.md" "b/\345\220\264\344\277\212\346\230\216/20240613\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..d0ee9a523870ff1824198d32fae84b875c6f16b9 --- /dev/null +++ "b/\345\220\264\344\277\212\346\230\216/20240613\347\254\224\350\256\260.md" @@ -0,0 +1,40 @@ +## 环境变量 + +1. 概念: 就是提供一系列可供特殊环境的全局变量 + +2. 分类: + + - 按生命周期分类 + 1. 永久环境变量:写在指定类型的配置文件,永不失效 ~/.bashrc /etc/profile.d/文件名.sh + 2. 临时环境变量:临时使用export 命令设置的环境变量 退出终端即失效 + - 按作用域分类 + 1. 系统级环境变量:对所有用户生效 /etc/profile.d/文件名.sh + 2. 用户级环境变量:只对当前用户生效 ~/.bashrc + +3. ### 常用系统级环境变量 + +- PATH 存储可执行的命令所要查找的路径 +- LANG 可支持的字符集 +- EDITOR 默认编辑器 +- HOME 家目录 + +### PATH(决定系统在那些目录中可执行文件) + +#### #PATH=$PATH:/etc/apache/bin + +使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 + +#### #vi /etc/profile + +在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) + +这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 + +#### #vi ~/.bash_profile + +修改PATH行,把/etc/apache/bin添加进去 + +### 读取环境变量的方法 + +- export:全局变量 +- echo $PATH:命令输出当前的PATH环境变量的值 \ No newline at end of file diff --git "a/\345\220\264\344\277\212\346\230\216/20240614\347\254\224\350\256\260.md" "b/\345\220\264\344\277\212\346\230\216/20240614\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..04382396bd5ba44be5c85f721901f6b20345d8f8 --- /dev/null +++ "b/\345\220\264\344\277\212\346\230\216/20240614\347\254\224\350\256\260.md" @@ -0,0 +1,35 @@ +## 进程管理 + +每个进程都有一个唯一的标识符,称为进程ID(Process ID),简称PID。当系统启动一个新进程时,它会分配一个目前尚未使用的PID给该进程 + +#### 命令: + +1.ps:能列出系统中运行的进程 包括进程号、命令、CPU使用量以及内存使用量等 + +- ps -a 列出进程所有运行中/激活进程 +- ps -ef 列出需要进程 +- ps -aux 显示进程信息 + +2.pstree:通过显示进程的树状图来展示进程间的关系(Debian12操作系统需要安装psmisc包) + +- pstree -p 显示进程的PID +- pstree -u 显示进程的所属用户 + +3.kill:通过进程的pid来结束终止进程 + +- kill -9 进程id(-9表示强迫进程立即停止) + +4.killall:通过进程名称来结束终止进程 + +- killall 进程名称 + +5.pgrep:用于基于名称和其他属性查找进程的进程PID + +- pgrep -l:列出进程的名称和PID +- pgrep -u:匹配特定用户的进程 + +6.top: + +- 按q退出界面 +- top -b: 打印所有进程 +- top -n1: 打印一次(静态) \ No newline at end of file diff --git "a/\345\220\264\344\277\212\346\230\216/20240619\347\254\224\350\256\260.md" "b/\345\220\264\344\277\212\346\230\216/20240619\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..13404ce0e12f505e72f3c485d57799e07affeac6 --- /dev/null +++ "b/\345\220\264\344\277\212\346\230\216/20240619\347\254\224\350\256\260.md" @@ -0,0 +1,46 @@ +### 日常管理命令 + +- 启用 systemctl start 服务的名称 +- 停用 systemctl stop 服务的名称 +- 重启 systemctl restart 服务的名称 +- 状态 systemctl status 服务的名称 + +### 服务配置语法和示例 + +是操作系统中一组特殊的应用,当在运行的时候,一般不提供界面,只工作在后台,并且不会随终端的退出而退出 + +### 压缩和解压缩 + +- 打包 tar + +- 压缩 tar -czvf 压缩文件名.tar.gz 要压缩的文件或目录 + + - -c:创建新的 tar 归档文件 + - -z:使用 gzip 压缩算法 + - -v:显示详细信息 + - -f:指定归档文件名 + +- 解压缩 tar -xzvf 归档文件名.tar.gz + + - -x:从 tar 归档文件中提取文件 + - -z:使用 gzip 解压缩算法 + - -v:显示详细信息 + - -f:指定归档文件名 + + ### 磁盘管理 + + - du + - df + - fdisk + + 软链接:ln -s 文件 软链接文件 + + - 以路径的形式存在,类似于Windows操作系统中的快捷方式 + - 可以 跨文件系统 ,硬链接不可以 + - 可以对目录进行链接 + + 硬链接:ln 文件 软链接文件 + + - 以文件副本的形式存在,但不占用实际空间 + - 不允许给目录创建硬链接 + - 只有在同一个文件系统中才能创建 \ No newline at end of file diff --git "a/\345\220\264\344\277\212\346\230\216/20240624\347\254\224\350\256\260.md" "b/\345\220\264\344\277\212\346\230\216/20240624\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..cc55c7456c35215c0fbcbcfbe0568a477a9e73d6 --- /dev/null +++ "b/\345\220\264\344\277\212\346\230\216/20240624\347\254\224\350\256\260.md" @@ -0,0 +1,52 @@ +1. scp -r 上传的东西 主机名@IP地址(或域名):/上传的路径 + + ``` + scp -r E:\王威斌\大二下学期实施运维\部署网站\markdown-blog-v1.1.1-linux-amd64.tar.gz root@wwb666.top:/root + ``` + +2. 解压markdown: + + ``` + tar -zxvf markdown-blog-v1.1.1-linux-amd64.tar.gz + ``` + +3. 进入markdown + + ``` + cd markdown-blog-linux-amd64/ + ``` + +4. ``` + mkdir md + vim md/readme.md + 输入内容 + ``` + +5. cd /lib/systemd/system:进入真正的配置服务所在的路径 + +6. cp ssh.service markdownBlog.service + +7. vim markdownBlog.service + +8. 修改内容:(删除光标后面的所有内容:d$) + + ``` + [Unit] + Description=这是一个可以将markdown文件变成博客网站的一个程序 + + [Service] + ExecStart=/root/markdown-blog-linux-amd64/markdown-blog web + + [Install] + Alias=blogs.service + ``` + +9. 重新启动服务 + + ``` + systemctl daemon-reload + ``` + +10. 查看markdownBlog状态:systemctl status markdownBlog + +11. 启动markdownBlog: systemctl status markdownBlog \ No newline at end of file