2018年7月28日第三节课笔记——权限、软硬链接及find
人气:0内容摘要
- 隐藏权限lsattr_chattr
- 特殊权限set_uid
- 特殊权限set_gid
- 特殊权限stick_bit
- 软链接
- 硬链接
- 查询命令find
- 文件后缀
- 第三次课堂笔记和扩展
- 涉及命令:chattr(设置隐藏权限)、lsattr(查看隐藏权限)、chmod(文件目录的权限)、ln(创建软链接或硬链接)、which(通过环境变量PATH查询路径)、whereis(在准备好的库中查询文件)、locate(查询相关文件路径)、find(查询文件路径)、stat(显示文件的信息如创建时间)、sz(将linux下的文件传输到Windows下)、rz(将windows下的文件传输到linux下)、echo(输出文本信息)、date(日期和时间相关的信息)、setfacl(用于增加或者修改文件的扩展权限),getfacl(用于显示文件的扩展权限);
一、隐藏权限lsattr_chattr
chattr 设置隐藏权限
- 命令chattr +i 1.txt设置目录或文件无法被更改和删除。(无法再目标目录下新建文件,但能更改已存在的文件)
- 命令chattr +a 1.txt设置目录或文件只能追加内容,无法删除或更改已有内容和文件名称。(当目标为目录时,依然可以在目录下新建文件或目录并能更改文件内容。)
lsattr 查看隐藏权限
- 命令lsattr -d 仅查看目标目录本身的隐藏权限。不加-d则显示目标目录下的目录和文件的隐藏权限。
- 命令lsattr -R 查看目标目录及目录下的所有文件的隐藏权限。
- 命令lsattr -a 查看目标目录及目录下的全部文件(包括隐藏文件)的隐藏权限。
二、特殊权限set_uid
set_uid的定义(权限背景色红色):set_uid使普通用户临时拥有该文件所有者(root)的权限,该权限只能给二进制文件,赋予普通文件没有意义(也能加,但是没有实际意义)。
- 使用chmod为目标命令添加s(即set_uid)权限,让普通用户使用ls命令查看/root/目录时临时拥有root用户权限,使得普通用户能够查看/root/目录。(不赋予ls命令set_uid权限时,无法查看/root/目录)
三、特殊权限set_gid
set_gid的定义(权限背景色黄色):set_gid可以作用在文件和目录,当作用在文件时可以使普通用户临时拥有该文件用户组的权限。当作用在目录时,你创建的子目录和子文件,它们的所属组和该目录的所属组保持一致(不设置set_gid权限时,在root所属组下依然为root所属组)。。。
- 使用chmod为目标命令添加s(即set_gid)权限,让普通用户使用ls命令查看/root/目录时临时拥有所属组的权限,使得普通用户能够查看/root/目录。(效果类似set_uid只是从root用户权限变为root用户组的权限)
四、特殊权限stick_bit
stick_bit的定义(权限背景色绿色):stick_bit就是防删除位权限,防止其他用户删除文件(当该文件权限为777时可以更改但依然不能删除)。
五、软连接
软链接的使用方式:
六、硬链接
硬链接的使用方式
- 硬链接的两个文件相互的为对方的硬链接。硬链接的inode号是相同的,并不会占用双份空间。硬链接不能对目录使用,并且无法跨分区做硬链接。
- 硬链接的使用方式:ln+目标文件地址+硬链接文件地址 目标文件1.txt,硬链接文件2.txt,查看两个文件的inode号显示相同,如图:
七、查询命令find
查找文件的几个常用命令:
- 命令which 通过环境变量PATH查询路径
- 命令whereis 事先在准备好的库中查询,定期更新后才能找到文件。(局限性交大)
- 命令locate 需安装 yum install -y mlocate并使用updatedb(也会自动更新)手动生成db(文件目录)文件后才能查询相关文件路径(模糊查找)。
find命令的几个常用方法:
- 使用stat可以查询文件的详细信息,如创建、修改、访问等信息。
- 命令find+路径+-name+“文件名称” 可以搜索所有的文件类型或目录
- 命令find+路径+-type+类型+-name+“文件名称” 可以搜索指定的类型。文件类型:d=目录、f=普通文件、l=软链接文件、b=设备块文件、c=字符串设备文件、s=socket文件。
- 选项-o 在条件之间表示或者、-ctime写入或更改inode属性的时间、-mtime更改文件内容或创建文件的时间、-atime最近访问或执行的时间、(使用time搜索时,可跟+1或-1分别表示1天以上和1天一下。)。如图:
解析:find查询文件地址,/root/目标目录,,-type f 文件类型为普通文件,-mmin -150小于150分钟,-exec mv {} {}.bak \;搜索后的文件更改后缀为.bak。
八、文件后缀
- 在linux下也是有后缀名的,但并不能代表这个文件的类型。
- 在linux下大家约定俗成的让相同类型的文件,使用相同的后缀名。
- 一般来讲在linux下,后缀名为1.sh代表一个shell脚本、2.gz代表一个压缩包、3.conf代表一个配置文件。
- 默认的系统语言:echo $LANG
九、linux和windows的文件互传
必须在xshell或securecrt下才能传输,首先安装yum install -y lrzsz后才能传输。
课堂笔记和扩展:
- inode 是用来表示文件唯一性的。(类似SFZ,多个文件同时拥有一个inode号意味着他们可以被视为是同一份文件)
- 命令which 搜索命令路径时,就是在PATH下的路径查询。
- 在日常使用一些复杂路径或命令时可以使用类似的方式简化操作:alias abc="systemctl restart network" (为命令设置别名) ln /root/123/abc /bin/abc (为文件设置软链接,可以通过直接访问软链接文件来达到减少输入的目的)
- cp命令不会创建目录。 cp命令复制时也可以更改文件或目录的名字。
十、facl 文件系统访问控制列表
利用文件扩展属性保存额外的访问控制权限,你可以增加权限给其他用户或组别,而不单只是简单 的"other"或者是拥有者不存在的组别。基础ACL通过两条命令管理:setfacl用于增加或者修改ACL,getfacl用于显示分配完的ACL。
- 取消设定的alc权限:setfalc -x u:zhaoyujie 1.txt 或 setfalc -x g:zhaoyujie 1.txt
- 设置alc权限的文件,在使用ls查看时,会在权限末尾添加一个+号。如图:
十一、将用户限制在指定的家目录下:
- 对于交互式会话,这需要至少一个 shell,通常为 sh 和基本的 /dev 节点,例如 null、zero、stdin、stdout、stderr 和 tty 设备:ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
- mkdir -p /home/test/dev/
- cd /home/test/dev/
- mknod -m 666 null c 1 3
- mknod -m 666 tty c 5 0
- mknod -m 666 zero c 1 5
- mknod -m 666 random c 1 8
- 为 SSH chroot 监狱设置交互式 shell,创建 bin 目录并复制 /bin/bash 到 bin 中:
- 现在,识别 bash 所需的共享库,如下所示复制它们到 lib64 中:
- ldd /bin/bash
- mkdir -p /home/test/lib64
- cp /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/
- 现在,使用 useradd 命令[3]创建 SSH 用户,并设置安全密码:
- 创建 chroot 监狱通用配置目录 /home/test/etc 并复制已更新的账号文件(/etc/passwd 和 /etc/group)到这个目录中:
- vi /etc/ssh/sshd_config
- 定义要使用 chroot 监狱的用户Match User tecmint# 指定 chroot 监狱ChrootDirectory /home/test
1. mkdir -p /home/test/home/tecmint
2.chown -R tecmint:tecmint /home/test/home/tecmint
加载全部内容