From cb34eb8e58d1e24f15c1dcf14c827c8eb34f5894 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 24 Jun 2024 16:37:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...67\347\273\204\347\256\241\347\220\206.md" | 128 ++++++++++++ ...73\345\212\241\347\273\203\344\271\240.md" | 152 ++++++++++++++ ...57\345\242\203\345\217\230\351\207\217.md" | 191 ++++++++++++++++++ ...15\345\212\241\347\256\241\347\220\206.md" | 29 +++ 4 files changed, 500 insertions(+) create mode 100644 "11\347\216\213\351\200\212/2024-06.14\347\224\250\346\210\267\345\222\214\347\224\250\346\210\267\347\273\204\347\256\241\347\220\206.md" create mode 100644 "11\347\216\213\351\200\212/2024-06.16\345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" create mode 100644 "11\347\216\213\351\200\212/2024-06.18\347\216\257\345\242\203\345\217\230\351\207\217.md" create mode 100644 "11\347\216\213\351\200\212/2024-06.19\346\234\215\345\212\241\347\256\241\347\220\206.md" diff --git "a/11\347\216\213\351\200\212/2024-06.14\347\224\250\346\210\267\345\222\214\347\224\250\346\210\267\347\273\204\347\256\241\347\220\206.md" "b/11\347\216\213\351\200\212/2024-06.14\347\224\250\346\210\267\345\222\214\347\224\250\346\210\267\347\273\204\347\256\241\347\220\206.md" new file mode 100644 index 0000000..21e0270 --- /dev/null +++ "b/11\347\216\213\351\200\212/2024-06.14\347\224\250\346\210\267\345\222\214\347\224\250\346\210\267\347\273\204\347\256\241\347\220\206.md" @@ -0,0 +1,128 @@ +## 用户和用户组管理 + +- 用户管理 + - 添加账户 useradd -m -s /bin/bash db2 + - 删除账户 userdel -r db2 + - 修改账户 usermod [选项同添加账户] db2 + - 查看帐户 getent passwd db2 +- 用户组管理 + - 添加用户组 groupadd stu1 + - 删除用户组 groupdel stu1 + - 添加用户到用户组 usermod -aG stu1 db2 +- 密码管理 + - 设置密码 passwd +- sudo权限管理 + - usermod -aG sudo xxx + - 修改/etc/sudoers文件 +- 登录权限管理 +- 用户环境管理 + - 用户配置文件 : .bashrc + - 用户环境变量: $PATH、$HOME、$SHELL + +## 文件与目录的权限管理 + +- https://www.runoob.com/linux/linux-file-attr-permission.html + + ![20240605092950](./assets/20240605092950.png) + +- 文件类型 + - -普通文件 + - d目录 + - l连接文件 + - b c s p 等其它文件 + +- 基本权限 + - r 读 + - w 写 + - x 执行 + +- 权限表示 + - 字符表示 + - 数字表示 + - 4 代表 r + - 2 代表 w + - 1 代表 x + - 权限修改 + - chmod 修改权限 + - chown 修改拥有者 + - chgrp 修改所属组 + - 权限的继承 + - 目录权限下文件和目录的影响 + - umask + - 特权权限 + - SUID + - SGID + - SBIT + - 隐藏权限 + - i + - 用在文件上,无法对该文件进行任何修改 + - 用在目录上,无法在里面创建新文件,但可以修改已有文件 + - a + - 除了可追加内容外,无法进行其它修改 + - 隐藏权限的操作 + - 修改隐藏权限 chattr + - chattr +i XXX + - chattr -i XXX + - 查看隐藏权限 + - lsattr + + + +### 权限管理练习 + +1. 创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令) + 1. mkdir -p /guanli/zonghe &&mkdir /guanli/jishu +2. 添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003 + 1. groupadd -g 2002 caiwu && groupadd -g 2003 jishu + 2. groupadd -g 2001 zonghe +3. 创建jerry、kylin、tsengia、obama用户,其中的kylin用户帐号在2020年12月30日后失效 + 1. useradd jerry && useradd -e 2020-12-30 kylin && useradd tsengia && useradd obama +4. 将jerry、kylin、tsengia、obama等用户添加到zonghe组内 + 1. gpasswd -M jerry,kylin,tsengia,obama zonghe +5. 创建handy、cucci用户,其中cucci帐号的登录Shell设置为“/sbin/nologin” + 1. useradd handy && useradd cucci + 2. usermod -s /sbin/nologin cucci +6. 将handy、cucci等用户添加到jishu组内 + 1. gpasswd -M handy,cucci jishu +7. 将上述的所有用户均要求加入到guanli组内 + 1. groupadd guanli + 2. gpasswd -M jerry,kylin,tsengia,obama,handy,cucci guanli +8. 将zonghe组内的obama用户删除 + 1. gpasswd -d obama zonghe +9. 为jerry用户设置密码为“123456”(使用普通方法)为cucci用户设置密码为“redhat” + 1. passwd jerry + 2. passwd cucci +10. 将jerry用户锁定,并查看锁定状态 + 1. usermod -L jerry + 2. passwd -S jerry +11. 打开两个xshell窗口,通过(who 或者 w)命令查看连接状态,并通过fuser杀掉其中一个 + 1. w + 2. fuser -k /dev/pts/2 +12. 查看cucci用户,属于那些组,并查看其详细信息 + 1. groups cucci + 2. finger cucci +13. 手工创建账号student(预留) + 1. vi /etc/passwd(student​":x":1014:1014::/home/student:/bin/bash) + 2. vi /etc/shadow(student::18107:0:99999:7:::) + 3. vi /etc/group(student:"x:1014:) + 4. mkdir /home/student + 5. cd /etc/skel/ + 6. ls -a | cp .b* /home/student/ +14. 设置权限及归属:/guanli目录属组设为guanli, /guanli/zonghe目录的属组设为zonghe /guanli/jishu目录的属组设为jishu,设置3个目录都是禁止其他用户访问的权限 + 1. chown :guanli /guanli &&chown :zonghe /guanli/zonghe/ &&chown :jishu /guanli/jishu/ && chmod -R o-rwx /guanli/ +15. 建立公共目录/ceshi允许技术组内的所有用户读取、写入、执行文件, 禁止其他用户读、写、执行 + 1. chown :jishu /ceshi/ + 2. chmod g=rwx,o-rwx /ceshi/ +16. 清除jerry用户密码 + 1. passwd -d jerry +17. 锁定cucci用户密码并查看状态 + 1. passwd -l cucci + 2. passwd -S cucci +18. 修改obama用户的UID为8888 + 1. usermod -u 8888 obama +19. 通过passwd命令修改kylin用户的最长密码使用期限为60天 + 1. passwd -x 60 kylin +20. 通过id groups等命令查看用户handy信息 + 1. id handy + 2. groups handy + 3. finger handy diff --git "a/11\347\216\213\351\200\212/2024-06.16\345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" "b/11\347\216\213\351\200\212/2024-06.16\345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" new file mode 100644 index 0000000..5583710 --- /dev/null +++ "b/11\347\216\213\351\200\212/2024-06.16\345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" @@ -0,0 +1,152 @@ +### 周期任务练习 + +执行在家目录touch a.txt + +1. 每天3:00执行一次 + + 1. ```js + 0 3 * * * + ``` + + + +2. 每周六2:00执行 + + 1. ``` + 0 2 * * 6 + ``` + + + +3. 每周六1:05执行 + + 1. ``` + 5 1 * * 6 + ``` + + + +4. 每周六1:25执行 + + 1. ``` + 25 1 * * 6 + ``` + + + +5. 每天8:40执行 + + 1. ``` + 40 8 * * * + ``` + + + +6. 每天3:50执行 + + 1. ``` + 50 3 * * * + ``` + + + +7. 每周一到周五的3:40执行 + + 1. ``` + 40 3 * * 1-5 + ``` + + + +8. 每周一到周五的3:41开始,每10分钟执行一次 + + 1. ``` + 41/10 3 * * 1-5 + ``` + + + +9. 每天的10:31开始,每2小时执行一次 + + 1. ``` + 31 10/2 * * * + ``` + + + +10. 每周一到周三的9:30执行一次 + + 1. ``` + 30 9 * * 1-3 + ``` + + + +11. 每周一到周五的8:00,每周一到周五的9:00执行一次 + + 1. ``` + 0 8,9 * * 1-5 + ``` + + + +12. 每天的23:45分执行一次 + + 1. ``` + 45 23 * * * + ``` + + + +13. 每周三的23:45分执行一次 + + 1. ``` + 45 23 * * 3 + ``` + + + +14. 每周一到周五的9:25到11:35、13:00到15:00之间,每隔10分钟执行一次 + + 1. ``` + 25-35/10 9-11 * * 1-5 + 0/10 13-15 * * 1-5 + ``` + + + +15. 每周一到周五的8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次 + + 1. ``` + 30,50 8 * * 1-5 + 30/30 9,10,11,13,14 * * 1-5 + 0 5 * * 1-5 + ``` + + + +16. 每天16:00、10:00执行一次 + + 1. ``` + 0 16,10 * * * + ``` + + + +17. 每天8:10、16:00、21:00分别执行一次 + + 1. ``` + 10 8 * * * + 0 16,21 * * * + ``` + + + +18. 每天7:47、8:00分别执行一次 + + 1. ``` + 47 7 * * * + 0 8 * * * + ``` + + \ No newline at end of file diff --git "a/11\347\216\213\351\200\212/2024-06.18\347\216\257\345\242\203\345\217\230\351\207\217.md" "b/11\347\216\213\351\200\212/2024-06.18\347\216\257\345\242\203\345\217\230\351\207\217.md" new file mode 100644 index 0000000..3aa8764 --- /dev/null +++ "b/11\347\216\213\351\200\212/2024-06.18\347\216\257\345\242\203\345\217\230\351\207\217.md" @@ -0,0 +1,191 @@ +## 环境变量 + +理解和使用Linux环境变量对于管理和配置系统至关重要。以下是关键的知识点、常用场景以及示例的综合整理: + +### 1. 环境变量的类型和作用 + +- **用户级别环境变量**: + - 存储在用户家目录的个人配置文件中,例如 `~/.bashrc`、`~/.profile`。 + - 用于定义**用户个性化**的Shell设置,如别名、路径等。 + +- **系统级别环境变量**: + - 存储在系统范围的配置文件中,如 `/etc/environment`、`/etc/profile` 。 + - 为**所有用户和系统服务**提供全局的环境设置。java_home + +### 2. 环境变量的加载顺序和文件 + +- **系统启动加载**:/etc/environment + +- **登录Shell加载顺序**: + - 首先加载 `/etc/profile`,然后根据用户登录方式加载 `~/.profile`(存在性依次加载)。 + - 非登录shell: su 切换用户 等 source + +- **交互式Shell加载顺序**: + - 加载 `~/.bashrc` 或类似文件,用于设置用户个性化的Shell环境。 + - 不同的shell加载不同的文件,bash才加载.bashrc,zsh加载.zshrc + - 交互式:提供命令行窗口,非交互式:直接写在脚本里 +- **总结来说** + - 配置文件的理论加载顺序通常是 `/etc/environment` > `/etc/profile` > `~/.profile` > `~/.bashrc`。【实验】 + +### 3. 设置环境变量的方法 + +​ 设置变量的位置:命令行(临时),脚本文件(永久) + +#### 3.1 临时设置环境变量:临时变量(局部),临时环境变量(全部) + +​ 可以使用 `export` 命令来临时设置一个环境变量,例如: + +```bash +export MY_VAR="value" # export 变量名=值 环境变量是全局的,整个环境有效 +MY_VAR="value" # 少了export 就是临时变量,不是全局的 +``` + +​ 这种设置只在当前Shell会话中有效,关闭Shell会话后会失效。 + +#### 3.2 永久设置环境变量: + +​ **用户级别的** : 编辑用户的 `~/.bashrc` 或 `~/.profile` 文件,并添加如下行: + +```bash +export MY_VAR="value" +``` + +​ 保存文件后,新的设置会在下次登录时生效。 + +​ **系统级别的:** 编辑 `/etc/environment` 或 /etc/profile文件,并添加类似以下行: + +```plaintext +MY_VAR="value" +``` + +这里不需要使用 `export` 命令。保存文件后,变量会在系统启动时生效。 + +#### 3.3 环境变量的设置和使用示例 + +3.1 设置路径变量(PATH) + +```bash +# 在 ~/.bashrc 中添加 +export PATH=$PATH:/path/to/your/scripts +``` + +3.2 定义Java环境变量(JAVA_HOME) + +```bash +# 在 ~/.bashrc 或 /etc/environment 中添加 +export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 +export PATH=$JAVA_HOME/bin:$PATH +``` + +3.3 设置代理服务器(HTTP_PROXY、HTTPS_PROXY) + +```bash +# 在 ~/.bashrc 中添加 +export HTTP_PROXY=http://proxy.example.com:8080 +export HTTPS_PROXY=http://proxy.example.com:8080 +``` + +3.4 配置编辑器(EDITOR) + +```bash +# 在 ~/.bashrc 中添加 +export EDITOR=/usr/bin/vim +``` + +3.5 设置语言和地区(LANG、LC_系列变量) + +```bash +# 在 ~/.bashrc 或 /etc/environment 中添加 +export LANG=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 +``` + +3.6 自定义命令别名(alias) + +```bash +# 在 ~/.bashrc 中添加 +alias ll='ls -alF' +alias grep='grep --color=auto' +``` + +3.7 设置临时环境变量 + +```bash +# 临时设置变量 +export MY_VAR="value" +``` + +### 4. 常用环境变量 + +**系统级** + +* `PATH` 可执行文件的搜索路径 +* `LANG` 定义系统的语言环境和字符集, export LANG=zh_CN.utf8,编辑文件不乱码 +* `LANGUAGE` 用于设置消息语言的优先级 ,提示语言为中文 +* `EDITOR` 默认文本编辑器 editor + +**用户级** + +* **`HOME`** :当前用户的主目录。 +* **`USER`**:当前用户名。 +* **`UID`**:当前用户的用户ID。 +* **`SHELL`**:当前用户的默认Shell。 + +### 5. 临时变量与环境变量 + +定义一个变量时,在变量名前加了export关键字,就是环境变量,作用域是全局环境子子进程中也有效,否则就是临时变量,只在当前脚本文件或shell中有效。 + +命令行示例: + +```bash +MY_NAME="张三" # 临时变量(局部) +echo $MY_NAME +bash -c 'echo $MY_NAME' +# 什么结果?对比下面的效果 + +export MY_NAME="张三" # 临时变量(全局) +echo $MY_NAME +bash -c 'echo $MY_NAME' # 子进程 +# 看下效果 +``` + + + +脚本文件示例 : + +`test1.sh` + +```bash +#!/bin/bash +MY_NAME="张三" # 前面加上export再试一次 +echo "test:我的名字是:$MY_NAME" +./subscript.sh +``` + +`test2.sh`: + +```bash +#!/bin/bash +echo "test2:你的名字是: $MY_NAME" +``` + +**临时变量**:在脚本中定义但不导出的变量仅在脚本执行期间有效,不会影响其他 shell 会话或子进程。 + +**环境变量**:使用 `export` 导出的变量在当前 shell 会话和所有子进程中都有效。 + +### 6. 总结: + +### 4.1 分类 + +#### 按生命周期分 + +- 永久环境变量 写在指定类型的配置文件,永不失效 ~/.bashrc /etc/profile.d/xxx.sh +- 临时环境变量 临时使用export 命令设置的环境变量 退出终端即失效 + +#### 按作用域分 + +* 系统级环境变量 对所有用户生效 /etc/profile.d/xxx.sh +* 用户级环境变量 只对当前用户生效 ~/.bashrc + + + diff --git "a/11\347\216\213\351\200\212/2024-06.19\346\234\215\345\212\241\347\256\241\347\220\206.md" "b/11\347\216\213\351\200\212/2024-06.19\346\234\215\345\212\241\347\256\241\347\220\206.md" new file mode 100644 index 0000000..ef24745 --- /dev/null +++ "b/11\347\216\213\351\200\212/2024-06.19\346\234\215\345\212\241\347\256\241\347\220\206.md" @@ -0,0 +1,29 @@ +## 服务管理 + +1.systemctl + +​ 启动 systemctl start 服务名 (Nginx) + +​ 停止 systemctl stop 服务名 + +​ 查看状态 systemctl status 服务名 + +​ 重启 systemctl restart 服务名 + +​ 重新加载配置文件 systemctl reload 服务名 + +2.service + +​ 启动 service 服务名 start + +​ 停止 service 服务名 stop + +​ 查看状态 service 服务名 status + +​ 重新加载配置文件 service 服务名 reload + +3.服务要怎么配置 + +​ Nginx 怎么变成服务的 + +​ 怎么删除一个删除 \ No newline at end of file -- Gitee