From d6c5afed99090017074884f06e4d4bacb0c112fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E6=AD=A3=E6=B3=A2?= <1938448998@qq.com> Date: Sun, 16 Jun 2024 19:56:32 +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 --- ...07\344\273\266\346\235\203\351\231\220.md" | 260 ++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 "14 \346\233\271\346\255\243\346\263\242/20240615\347\224\250\346\210\267\346\226\207\344\273\266\346\235\203\351\231\220.md" diff --git "a/14 \346\233\271\346\255\243\346\263\242/20240615\347\224\250\346\210\267\346\226\207\344\273\266\346\235\203\351\231\220.md" "b/14 \346\233\271\346\255\243\346\263\242/20240615\347\224\250\346\210\267\346\226\207\344\273\266\346\235\203\351\231\220.md" new file mode 100644 index 0000000..39d7e96 --- /dev/null +++ "b/14 \346\233\271\346\255\243\346\263\242/20240615\347\224\250\346\210\267\346\226\207\344\273\266\346\235\203\351\231\220.md" @@ -0,0 +1,260 @@ +# 用户与文件权限的管理 + +课后作业: + +- ​ 什么是linux 硬连接和软连接(快捷方式) + + - ```bash + 硬链接(Hard Link): 硬链接是指多个文件名指向同一个索引节点(inode),它们共享相同的数据块(实际文件内容)。如果一个文件被删除,只有在所有链接都被删除后,文件的实际内容才会被释放。硬链接只能对文件进行创建,不能对目录进行创建。硬链接的限制是必须链接到同一个文件系统中的文件。当改动了其中一个文件,其他硬链接创建出来的文件也会改变。 + 在命令行中,可以使用 ln 命令来创建硬链接。例如: + + ln file1 file2 + 软链接(Symbolic Link,也称为快捷方式): 软链接是一个特殊类型的文件,它保存的是目标文件的路径。当访问软链接时,系统会根据软链接中保存的路径找到目标文件。软链接类似于Windows系统中的快捷方式。软链接可以跨越文件系统边界创建,甚至可以链接到目录。如果目标文件被删除,软链接将失效。 + 在命令行中,可以使用 ln -s 命令来创建软链接。例如: + + ln -s /path/to/target/file link_name + 总的来说,硬链接是直接指向文件数据块的一个链接,而软链接是指向文件路径的一个链接。硬链接只能链接到同一个文件系统中的文件,而软链接可以跨越文件系统边界链接文件。 + + +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 两个目录(一条命令) + + 1. ``` + mkdir guanli && mkdir guanli/zonghe guanli/jishu + +2. 添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003 + + 1. ``` + groupadd -g 2001 zonghe + groupadd -g 2002 caiwu + groupadd -g 2003 jishu + ``` + + + +3. 创建jerry、kylin、tsengia、obama用户,其中的kylin用户帐号在2020年12月30日后失效 + + 1. ``` + useradd jerry + useradd kulin + useradd tsengia + useradd obama + ``` + + ``` + sudo chage -E 2020-12-30 kylin + ``` + + + +4. 将jerry、kylin、tsengia、obama等用户添加到zonghe组内 + + 1. ``` + sudo usermod -aG zonghe jerry + sudo usermod -aG zonghe kylin + sudo usermod -aG zonghe tsengia + sudo usermod -aG zonghe obama + +5. 创建handy、cucci用户,其中cucci帐号的登录Shell设置为“/sbin/nologin” + + 1. ``` + sudo useradd handy + sudo useradd cucci + sudo usermod -s /sbin/nologin/cucci + +6. 将handy、cucci等用户添加到jishu组内 + + 1. ``` + sudo usermod -aG jishu handy + sudo usermod -aG jishu cucci + +7. 将上述的所有用户均要求加入到guanli组内 + + 1. ``` + sudo usermod -a -G guanli jerry + sudo usermod -a -G guanli kylin + sudo usermod -a -G guanli tsengia + sudo usermod -a -G guanli obama + sudo usermod -a -G guanli handy + sudo usermod -a -G guanli cucci + +8. 将zonghe组内的obama用户删除 + + 1. ``` + sudo gpasswd -d obama zonghe + +9. 为jerry用户设置密码为“123456”(使用普通方法)为cucci用户设置密码为“redhat” + + 1. ``` + passwd jerry 输入密码123456 + passwd cucci 输入密码redhat + +10. 将jerry用户锁定,并查看锁定状态 + + 1. ``` + sudo passwd -l jerry + sudo passwd -S jerry + +11. 打开两个xshell窗口,通过(who 或者 w)命令查看连接状态,并通过fuser杀掉其中一个 + + 1. ``` + ps -aux | grep sshd + sudo fuser -k -TERM -u jerry /dev/pts/1 + +12. 查看cucci用户,属于那些组,并查看其详细信息 + + 1. ``` + groups cucci + ``` + +13. 手工创建账号student(预留) + + 1. ``` + sudo useradd student + sudo passwd student + sudo mkdir /home/student + sudo chown student:student /home/student + +14. 设置权限及归属:/guanli目录属组设为guanli, /guanli/zonghe目录的属组设为zonghe /guanli/jishu目录的属组设为jishu,设置3个目录都是禁止其他用户访问的权限 + + 1. ``` + sudo mkdir /guanli + sudo mkdir /guanli/zonghe + sudo mkdir /guanli/jishu + + sudo chown root:guanli /guanli + sudo chown root:zonghe /guanli/zonghe + sudo chown root:jishu /guanli/jishu + + sudo chmod 770 /guanli + sudo chmod 770 /guanli/zonghe + sudo chmod 770 /guanli/jishu + +15. 建立公共目录/ceshi允许技术组内的所有用户读取、写入、执行文件, 禁止其他用户读、写、执行 + + 1. ``` + sudo mkdir /ceshi + sudo chmod 770 /ceshi + +16. 清除jerry用户密码 + + 1. ``` + sudo passwd -d jerry + +17. 锁定cucci用户密码并查看状态 + + 1. ``` + sudo passwd -l cucci + sudo passwd -S cucci + +18. 修改obama用户的UID为8888 + + 1. ``` + sudo usermod -u 8888 obama + +19. 通过passwd命令修改kylin用户的最长密码使用期限为60天 + + 1. ``` + sudo passwd -x 60 kulin + +20. 通过id groups等命令查看用户handy信息 + + 1. ``` + id handy + groups handy -- Gitee