上条博客linux笔记-CSDN博客
2.6查找根目录下的文件
根据文件类型查找:find 路径 -type f/d/l/b/c/p/s 根据文件的权限查找:find 路径 -perm 755 根据文件的所属者查找:find 路径 -user/uid 用户名/用户名的编号 根据文件的所属组查找:find 路径 -group/-gid 组名/组编号 根据文件的大小查找:find 路径 -size 2k/+2k/-2k 根据文件的atime时间查找:find 路径 -atime +2/-2/2 根据文件的mtime时间查找:find 路径 -mtime +2/-2/2 根据文件的ctime时间查找:find 路径 -ctime +2/-2/2 根据文件的名字查找:find 路径 -name 文件名/“*host”/“host*”/“*host*”
#将find找到的文件复制到指定目录操作: 利用-exec \ find / -group redhat -exec cp -r {} /root/redhat \ {}表示find找到的文件
2.7文件的打包压缩
#压缩文件的后缀:.zip,.tar.gz,.tar.bz2,.tar.lz等等 #zip压缩与解压缩 [root@rhel9-1 ~]# zip /root/pc.zip /root/ceshi /root/passwd adding: root/ceshi (stored 0%) adding: root/passwd (stored 0%) #解压缩 #这样解压缩会在工作目录下生成root目录 [root@rhel9-1 ~]# unzip /root/pc.zip Archive: /root/pc.zip extracting: root/ceshi //相对路径 extracting: root/passwd #可以cd到其他目录中进行解压缩操作 #也可以用-d选项指定目录 [root@rhel9-1 ~]# unzip /root/pc.zip -d /root/dir Archive: /root/pc.zip extracting: /root/dir/root/ceshi extracting: /root/dir/root/passwd [root@rhel9-1 ~]# tree /root/dir /root/dir └── root ├── ceshi └── passwd #gzip的压缩与解压缩,查看内容zcat [root@rhel9-1 ~]# gzip /root/passwd /root/ceshi 直接在工作目录中压缩为两个文件 #gzip -c 可以指定文件压缩到的目录,也可以重新命名 [root@rhel9-1 ~]# gunzip -c /root/ceshi.gz > /home/ceshi1 [root@rhel9-1 ~]# ll /home 总用量 8 -rw-r--r--. 1 root root 6 9月 18 01:17 ceshi1 drwx------. 14 xuehanwen xuehanwen 4096 9月 17 00:48 xuehanwen #当我们用gzip压缩文件时,发现无法压缩目录文件,这时需要先用tar命令将目录文件和普通文件打包成普通文件,之后再进行压缩 [root@rhel9-1 ~]# tar -czf /root/sd.tar.gz /root/dir/ /root/test1 tar: 从成员名中删除开头的“/” tar: 从硬连接目标中删除开头的“/” #不解压缩的情况下看文件结构 [root@rhel9-1 ~]# tar -tf /root/sd.tar.gz root/dir/ root/dir/test root/test1 #解压缩,-xf,会在/root下创建root目录 [root@rhel9-1 ~]# tar -xf /root/sd.tar.gz #-C选项:指定文件压缩位置 [root@rhel9-1 ~]# tar -xf /root/sd.tar.gz -C /root/dir2
2.8文件在不同主机上的传输
#windows和linux间传输文件 sftp或者xftp #linux和linux #下载192.168.168.130主机的/root/file3到当前工作目录 scp root@192.168.168.130:root/file3 ./ #上传test.tar.gz到192.168.168.130主机的/root/dir/目录中 scp /root/test.tar.gz root@192.168.168.130:/root/dir
3.用户和用户组的管理
3.1用户的管理
#用户的个人信息文件:root,系统账号(运行系统的程序),普通用户 [root@rhel9-1 ~]# ll /etc/passwd -rw-r--r--. 1 root root 2104 9月 12 21:14 /etc/passwd [root@rhel9-1 ~]# grep root /etc/passwd root:x:0:0:root:/root:/bin/bash 用户名:密码:uid:gid:用户的描述信息:家目录:命令解释器(shell) #添加账号,-r添加系统账号 [root@rhel9-1 ~]# useradd xiaoming [root@rhel9-1 ~]# id xiaoming 用户id=1001(xiaoming) 组id=1001(xiaoming) 组=1001(xiaoming) [root@rhel9-1 ~]# grep xiaoming /etc/passwd xiaoming:x:1001:1001::/home/xiaoming:/bin/bash #修改账号信息 [root@rhel9-1 ~]# usermod -l daming xiaoming id daming 用户id=1001(daming) 组id=1001(xiaoming) 组=1001(xiaoming) 此时的gid显示还是xiaoming #删除账号 [root@rhel9-1 ~]# userdel daming 此时发现home目录下依旧存在/xiaoming文件 #userdel -r选项同时删除该账号的家目录 [root@rhel9-1 ~]# userdel -r daming
#账号的密码管理 [root@rhel9-1 ~]# ll /etc/shadow ----------. 1 root root 1141 9月 18 14:58 /etc/shadow #普通用户和root账号改密码的区别:普通用户只能改自己的密码,修改密码时需要原密码 [root@rhel9-1 ~]# passwd xiaohei 更改用户 xiaohei 的密码 。 新的密码: 无效的密码: 密码少于 8 个字符 重新输入新的密码: #非交互式修改root密码 [root@rhel9-1 ~]# echo 123 | passwd --stdin root 更改用户 root 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@rhel9-1 ~]# [root@rhel9-1 ~]# echo 123 | passwd --stdin xuehanwen 更改用户 xuehanwen 的密码 。 passwd:所有的身份验证令牌已经成功更新。
3.2用户组的管理
基本组:用户必须拥有的组,有且仅有一个 附加组:除了基本组以外的都叫附加组,可以有很多个附加组 #添加组:groupadd [root@rhel9-1 ~]# groupadd xiaoming [root@rhel9-1 ~]# grep xiaoming /etc/group xiaoming:x:1001: 组名:组密码:gid:组成员(以该组为附加组的成员) #useradd的-G表示指定用户的附加组 [root@rhel9-1 ~]# useradd user3 -g xiaoming [root@rhel9-1 ~]# useradd user2 -G xiaoming [root@rhel9-1 ~]# id user2 用户id=1002(user2) 组id=1003(user2) 组=1003(user2),1001(xiaoming) #组密码配置文件 [root@rhel9-1 ~]# ll /etc/gshadow ----------. 1 root root 705 9月 19 10:41 /etc/gshadow [root@rhel9-1 ~]# grep xiaoming /etc/gshadow xiaoming:!::user2 组名:组密码:组管理员:组成员(以该组为附加组的成员) #修改组信息:groupmod #修改组名 [root@rhel9-1 ~]# groupmod -n zu1 xiaoming [root@rhel9-1 ~]# grep zu1 /etc/group zu1:x:1001:user2 #删除组:groupdel #不能删除用户的基本组,可以删除附加组 [root@rhel9-1 ~]# groupdel group2 [root@rhel9-1 ~]# [root@rhel9-1 ~]# groupdel group1 groupdel:不能移除用户“user1”的主组
3.3用户登录情况查看
[root@rhel9-1 ~]# w 02:38:55 up 16 min, 2 users, load average: 1.51, 0.35, 0.11 USER TTY LOGIN@ IDLE JCPU PCPU WHAT root pts/0 02:24 0.00s 0.07s 0.01s w xuehanwe tty2 02:38 16:30 0.04s 0.04s /usr/libexec/gnome-session-bina 查看哪个ip连接此系统 [root@rhel9-1 ~]# who root pts/0 2023-09-20 02:24 (192.168.225.1) xuehanwen tty2 2023-09-20 02:38 (tty2) xuehanwen pts/1 2023-09-20 02:39 (192.168.225.1)
3.4用户的提权
#用户提权 su - 用户名【必须知道该用户名的密码】 #用户提权 sudo -u 用户名 command【是当前用户的密码】 当我们新创建一个用户user1,并为其设置密码,发现其无法使用sudo -u [root@rhel9-1 ~]# useradd user1 [root@rhel9-1 ~]# echo 123 | passwd --stdin user1 [root@rhel9-1 ~]# su - user1 [user1@rhel9-1 ~]$ sudo -u root ls -l /root 我们信任您已经从系统管理员那里了解了日常注意事项。 总结起来无外乎这三点: #1) 尊重别人的隐私。 #2) 输入前要先考虑(后果和风险)。 #3) 权力越大,责任越大。 [sudo] user1 的密码: user1 不在 sudoers 文件中。此事将被报告。 屏幕输出这些话,并有重要信息:user1 不在 sudoers 文件中。此事将被报告。 所以我们可以通过vim修改sudoers文件 我们先用find找一下该文件 [root@rhel9-1 ~]# find / -name sudoers /etc/sudoers /usr/share/doc/sudo/examples/sudoers 我们知道usr/是资源目录,里面放了可执行命令,所以应该不是修改此文件 etc/是系统配置文件,应该修改此文件 [root@rhel9-1 ~]# vim /etc/sudoers 进入此文件中,我们找到该语句 ## Allow root to run any commands anywhere root ALL=(ALL) ALL 以相同语法添加新用户 user1 ALL=(ALL) ALL 当然我们也可以修改ALL为指定允许的命令的路径(注意是路径) 但我们发现我们的xuehanwen用户却可以直接使用sudo -u root [xuehanwen@rhel9-1 ~]$ id xuehanwen 用户id=1000(xuehanwen) 组id=1000(xuehanwen) 组=1000(xuehanwen),10(wheel) 我们id了一下这个用户,发现其在wheel副组中 [xuehanwen@rhel9-1 ~]$ grep wheel /etc/group wheel:x:10:xuehanwen 我们刚刚也在/etc/sudoers文件中看到了 ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL 所以当我们创建新用户时指定其副组为wheel组,也可直接进行提权 当然我们还有别的方法,修改用户的uid(不建议使用) 我们vim进/etc/passwd文件 user1:x:1001:1002::/home/user1:/bin/bash 修改1001为0,并为user1设置密码 当我们想要su进user1用户时,发现输入密码后进入了root用户。
4.文件权限
-
修改文件的所属者和所属组
[root@rhel9-1 ~]# ll /root/file1 -rw-r--r--. 1 root root 0 9月 20 23:43 /root/file1 #修改文件的所属者和所属组 [root@rhel9-1 ~]# chown user1:group1 /root/file1 [root@rhel9-1 ~]# ll /root/file1 #修改文件的所属者,所属组不变 [root@rhel9-1 ~]# chown user1 /root/file1 [root@rhel9-1 ~]# ll /root/file1 -rw-r--r--. 1 user1 group1 0 9月 20 23:43 /root/file1 #修改文件的所属者为user1,所属组为所属者的基本组(user1) [root@rhel9-1 ~]# chown user1: /root/file2 [root@rhel9-1 ~]# ll /root/file2 -rw-r--r--. 1 user1 user1 0 9月 20 23:43 /root/file2 #修改文件的所属组,所属者不变 [root@rhel9-1 ~]# chown :user1 /root/file3 [root@rhel9-1 ~]# ll /root/file3 -rw-r--r--. 1 root user1 0 9月 20 23:41 /root/file3
-
修改文件的某一类人【所属者、所属组、其他人的权限】
#所属者user,u;所属组group,g;其他人other,o;all-a表示所有人 [root@rhel9-1 ~]# ll /root/file1 -rw-r--r--. 1 xuehanwen group1 0 9月 20 23:43 /root/file1 #chmod chmod u/g/o/a + - = rwx 文件 chmod 750 文件 [root@rhel9-1 ~]# chmod u=rwx,g=wx,o=w /root/file1 [root@rhel9-1 ~]# ll /root/file1 -rwx-wx-w-. 1 xuehanwen group1 0 9月 20 23:43 /root/file1
4.1用户对于普通文件的权限
权限 | r-- | -w- | --x |
---|---|---|---|
普通用户可以执行的命令 | 读,cat | 写,vim,但是不能查看内容 | 执行,啥也干不了 |
[root@rhel9-1 ~]# cd /test [root@rhel9-1 test]# echo hello > /test/hi [root@rhel9-1 test]# ll 总用量 4 -rw-r--r--. 1 root root 6 9月 21 10:47 hi [root@rhel9-1 test]# cat /test/hi hello 普通文件可能出现的正常的权限:---,r--,rw-,r-x,rwx
4.2用户对于目录文件的权限
权限 | r-- | -w- | --x |
---|---|---|---|
可以执行的命令 | 读,只能看到文件的名字,看不见属性 | 写,啥也干不了 | 执行,cd |
#g=r [root@rhel9-1 dir1]# chmod g=r /dir1/ [user2@rhel9-1 ~]$ ll /dir1 ls: 无法访问 '/dir1/test1': 权限不够 总用量 0 -????????? ? ? ? ? ? test1 [user2@rhel9-1 ~]$ ll /dir1/test1 ls: 无法访问 '/dir1/test1': 权限不够 #g=w:什么也做不了 #r-x:可读不可写 [user2@rhel9-1 ~]$ touch /dir1/test2 touch: 无法创建 '/dir1/test2': 权限不够 #rwx:什么都能做 目录文件可能出现的权限:---,
总结:
1.你是谁
2.你在哪,仅限于使用相对路径才需要考虑当前的工作目录在哪
3.你要干什么
4.3特殊权限
-
suid:u+s,二进制文件,/bin和/sbin:用户执行指令的时候,先找到指令的可执行文件,执行文件后会变成一个进程,该进程的所属者会变成该程序文件的所属者。
[root@rhel9-1 ~]# ll /usr/bin/passwd -rwsr-xr-x. 1 root root 3 2648 8月 10 2021 /usr/bin/passwd 用户修改密码:密码信息存储在/etc/shadow(只有root才能修改该文件)
-
sgid:g+s:目录文件:任何人在该目录下创建的文件的所属组和目录的所属组保持一致
[root@rhel9-1 ~]# chmod g+s /dir1 [root@rhel9-1 ~]# ll -d /dir1 drwxr-srwx. 2 root root 19 9月 23 21:06 /dir1 [xuehanwen@rhel9-1 ~]$ touch /dir1/test2 [root@rhel9-1 ~]# ll /dir1 总用量 0 -rw-r--r--. 1 xuehanwen xuehanwen 0 9月 23 21:06 test1 -rw-r--r--. 1 xuehanwen root 0 9月 23 21:07 test2
-
sticky:o+t,用户不能删除别人创建的文件,只能删除自己创建的文件
[root@rhel9-1 ~]# mkdir /dir2 [root@rhel9-1 ~]# chmod o+t /dir2 [xuehanwen@rhel9-1 ~]$ touch /dir2/test1 #由于文件时xuehanwen用户创建的,所以user1用户无法删除 [user1@rhel9-1 ~]$ rm -rf /dir2/test1 rm: 无法删除 '/dir2/test1': 不允许的操作 [xuehanwen@rhel9-1 ~]$ rm -rf /dir2/test1 [xuehanwen@rhel9-1 ~]$ ll /dir2 总用量 0
4.4 umask(权限掩码)--可以控制用户创建文件的权限
[root@rhel9-1 ~]# umask 0022 普通文件的权限属性:666 目录文件的权限属性:777 xxx-022=权限