linux初学   特殊权限 隐藏权限 文件搜索 链接文件的建立

一、特殊权限设置

chattr命令      这个命令为文件或目录添加特殊权限,较常用的有i、a这两个权限。
chattr +i 名称(文件或目录) 
    文件:文件添加此权限后无法写入数据,无法重命名、删除此文件。
    目录:目录添加此权限后无法再写入文件、无法删除目录内的文件或目录、无法移动或重命名目录内的数据。
chattr -i    为文件或目录去掉i权限
实例:
[[email protected] tmp]# chattr +i 2        //给目录2添加i权限
[[email protected] tmp]# lsattr -d 2         //查看目录2的权限
----i--------e- 2                                //显示有i权限

chattr +a     追加特殊权限
    文件    无法写入数据
    目录:只能追加信息,不能删除或移动内容。
chattr -a 文件或目录名         去掉a权限
实例:
[[email protected] tmp]# chattr +a 1           //为文件1添加a权限
[[email protected] tmp]# lsattr 1                  //查看文件1的特殊权限
-----a-------e- 1                                   //文件1目前有a权限
[[email protected] tmp]# vi 1                     //vi进入该文件,无法写入任何数据

注:默认一个文件没有任何特殊权限

lsattr 常用选项
    -V 显示lsattr版本
    -a 显示所有文件,包括隐藏文件
    -d 显示目录本身特效
    -R 递归显示

[[email protected] tmp]# ls -ld /usr/bin/passwd 
-rwsr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image.png
上面的rws的s 是set_uid权限  这个权限可以让其他用户拥有属主的权限

如果把这个文件的set_uid权限去掉,则普通用户无法修改自己的密码。
实例:chmod u+s   /usr/bin/passwd
注意:如果属主没有x执行权限,添加s权限后,会变成大S,且没有任何意义
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(1).png
什么样的文件可以设置s权限?:可执行文件、必须是二进制文件

set_gid 简写sgid     让其他用户新建目录或文件时,继承父目录所属组。
实例:file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(2).png
[[email protected] tmp]# mkdir 2
[[email protected] tmp]# chmod 777 2
[[email protected] tmp]# chmod g+s 2
[[email protected] tmp]# su - xiaoqi
[[email protected] ~]$ cd /tmp/
[[email protected] tmp]$ mkdir 2/123                                   //用户xiaoqi建立了一个目录
[[email protected] tmp]$ ls -ld 2/123
drwxrwsr-x. 2 xiaoqi root 4096 3月  20 00:21 2/123       //属组并不是xiaoqi,而是root

sticky_bit 特殊权限  防删除位   用户1创建的文件,只有用户1才能删除。file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(3).png
使用方法 :chomd o+t 目录名
实例:
[[email protected] tmp]$ ls -ld /tmp/           
drwxrwxrwt. 4 root root 4096 3月  20 00:20 /tmp/         //tmp目录下的文件,只有创建它的用户才能修改

删除目录下的文件,有写权限
强制写入(删掉原来的文件,重新建立一个文件  属主和属组都变了)
set_uid、set_gid、stick_bit可以分别用数字来表示:
set_uid     4
set_gid     2
stick_bit      1
这样在给文件添加权限时,就可以这样设置了:
实例:chmod 4755 /tmp/2     给/tmp/2添加set_uid权限
实例:chmod 6644 /tmp/2     给/tmp/2添加set_gid权限和set_uid权限
实例:chmod 5644 /tmp/2     给/tmp/2添加set_uid权限和sticky_bit权限

三、搜索文件

which    在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪个位置的命令。
实例:
[[email protected] ~]# which grep
/bin/grep

whereis      只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s),如果省略参数,则返回所有信息。
whereis 会在固定的几个目录中搜索  /bin 、/sbin//、/usr/bin/、 /usr/sbin/、 /usr/share/man/man1/

/bin   /usr/bin   /usr/share      局限于这两个目录下

实例:whereis grep
[[email protected] ~]# whereis grep                    
grep: /bin/grep /usr/share/man/man1/grep.1.gz           //返回所有信息(二进制文件、man说明文件、源代码文件)
[[email protected] ~]# whereis -b grep                                   //只搜索二进制文件
grep: /bin/grep 
[[email protected] ~]# whereis -m grep                                  //只搜索man说明文件
grep: /usr/share/man/man1/grep.1.gz
[[email protected] ~]# whereis -s grep                                   //只搜索源代码文件
grep:

locate   相当于find -name     不搜索具体目录,而是搜索一个数据库(var/lib/locatedb) ,这个数据库中含有本地所有文件信息。LINUX系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。实例:locate /etc/sh     搜索etc目录下所有以sh开头的文件
实例:locate ~/m     搜索用户主目录下,所有以m开头的文件
实例:locate -i ~/m     搜索用户主目录下,所有以m开头的文件,并且忽略大小写。
不检索/tmp下的文件
updatedb     手动更新数据库
yum  install  -y  mlocate

find      查找命令
使用格式: find 指定目录 指定条件 指定动作
     指定目录     所要搜索的目录及其所有子目录。默认为当前目录
     指定条件     所要搜索的文件的特征。
     指定动作     对搜索结果进行特定的处理
  指定条件:  -type d    //类型为目录的文件
                    -type f     //类型为普通文件
                    -name “文件名”      //根据文件名搜索
  指定动作    -mtime +1     //修改时间(修改文件内容)一天以上
                   -mtime -1      //一天以内
                   -mmin -10    //10分钟以内
                   -mmin +10   //10分钟以上
                   -atime +1     //访问时间一天以上
                   -ctime +1     //改变时间(修改文件信息)一天以上
实例:find . -name ‘my*‘     搜索当前目录(含子目录)中,所有文件名以my开头的文件

实例:find . -name ‘my*‘ -ls     搜索当前目录中,所有以my开头的文件,并显示它们的详细信息。

实例:find . -type f -mmin -10     搜索当前目录中,所有过去10分钟更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录

file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(4).png实例:find /etc/init.d/ -type d           //搜索/etc/init.d目录下所有的目录文件
          find /etc/init.d/ ! -type d        //搜索/etc/init.d目录下非目录的文件(!是取反的意思)
          find /etc/ -type d -name "cron.d"           //搜索/etc/下文件名为cron.d的目录文件
          find /etc/ -type d -a -name "cron.d"      //搜索/etc/下文件名为cron.d的目录文件
          find /etc/ -type d -o -name "cron.d"      //搜索/etc/的目录文件或文件名为cron.d的文件
          find /etc/ -type d -name "cron.d" -mtime -1  //搜索/etc/下最近一天修改过的名为cron.d的目录文件
-name  根据文件名查询

stat命令查看文件的三个time(ctime、mtime、atime)
实例:stat 文件名

扩展:
进行哪些操作会修改3个time的时间呢?
vi文件     三个time都变(注:只进入vi,不修改就退出,只修改atime)
cat 文件     atime会变
echo 追加一个文本    m和 c

四、linux下的链接文件
ln  链接命令
软连接

ln -s  建立软链接
ln -s /root/3.txt /tmp/21.txt     创建软链接要使用绝对路径

注如果建立软链接使用相对路径会怎么样?
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(8).png
查看软链接信息,链接到的也是一个相对路径,根本看不到链接到哪里了
使用pwd -P,查看到的信息也是错误的

如何检查一个软链接的真实路径呢?
pwd -P     真正路径
pwd -L     逻辑路径

硬链接
不可以作用于目录
ln 文件名
ls -l
不能作用在不同分区 因为inode号会冲突
可以删除其中一个文件,同级
硬链接可以同步修改
硬链接=复制+同步+删除源文件无碍+不能跨分区+不能作用于目录
软链接=快捷方式+同步+删除源文件废废+能跨分区+也能作用于目录

时间: 2024-10-13 21:55:46

linux初学   特殊权限 隐藏权限 文件搜索 链接文件的建立的相关文章

特殊权限及软连接和硬链接文件

特殊权限set_uid [[email protected] ~]# ll /usr/bin/passwd -rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd s就是set_uid权限,如果没有x权限显示S 当普通用户执行这个命令的时候临时赋予root权限,只能给并必须是二进制文件可以给目录设置但没意义 特殊权限set_gid 作用在组权限位上,也是用s标识,主要用于命令文件上,当普通用户执行这个命令的时候临时赋予root所属组的权限

Linux常用命令-文件搜索命令-文件搜索命令find

命令名称:find 命令所在路径:/bin/find 语法:find [搜索范围] [匹配条件] 功能描述:文件搜索 示例 find /etc - name init 在目录/etc 中查找文件init -iname 不区分大小写 * 代表通配符 ? 代表一个字符 find / -size +204800 在根目录下查找大于100MB的文件 +n 大于 -n 小于 n 等于 find /home -user shenchao 在home目录下查找所有者为shenchao的文件 -group 根据

Linux经常使用命令-文件搜索命令-文件搜索命令find

命令名称:find 命令所在路径:/bin/find 语法:find [搜索范围] [匹配条件] 功能描写叙述:文件搜索 演示样例 find /etc - name init 在文件夹/etc 中查找文件init -iname 不区分大写和小写 * 代表通配符 ? 代表一个字符 find / -size +204800 在根文件夹下查找大于100MB的文件 +n 大于 -n 小于 n 等于 find /home -user shenchao 在home文件夹下查找全部者为shenchao的文件

文件编辑、文件权限以及文件搜索 04

本文将阐述linux当中的文件编辑.权限查看以及修改.文件查找以及内容搜索等命令. 1.操作环境 vmware 14.1 centos7 64 putty或者xshell 2.前提约束 已安装vmware vmware中已安装centos[注意,也可以直接就是一台linux机子,使用vmware是一个选项而已] 在本机能访问到centos[注意,本文中所涉及的linux服务器的ip是 192.168.100.192,请读者根据实际设置] 熟练使用putty 3.操作 3.1 vi.vim #新建

ugo,ACL,3s及隐藏权限

ugo权限 实际上是三个权限的缩写:user , group  ,other chown  属主:属组  文件名 (更改属主及属组) chmod  -v  u+rwx  文件名  更改user用户的权限 chmod  -v  g+rwx  文件名  更改group组的权限 chmod  -v  o+rwx  文件名  更改其他人的权限 r:可读--4 w:可写--2 x:可执行--1 所以也可以用数字代替要修改的权限 chmod  -v    754   文件名 #属主有满权限,属组有读和执行权

九、特殊权限set_uid、set_gid、stick_bit;软链接文件;硬链接文件

(一)特殊权限set_uid(针对文件) set_uid:该权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限.比如,passwd这个命令就具有该权限.当普通用户执行passwd命令时,可以临时获得root权限,从而更改密码.通俗的来说,就是普通用户在编辑这个文件的时候才会获得root用户的改文件的权力. 设置这个命令的前提是这个文件需要是二进制文件,且须为可执行文件. 二进制文件:如ls命令,passwd命令这些命令的文件就是二进制文件. 更改密码的文件:/etc/shadow #

Linux运维实战之文件系统、链接文件

计算机操作系统作为最重要的系统软件,被用户直接使用的部分就是它的文件管理.因为用户使用计算机遇到的首要问题是如何保存程序和数据,然后如何查找.复制.删改它们.文件管理就是为用户的这些问题而设置的. 本次博文的主要内容: 1.文件系统基础(文件的概念.分类及存储机制) 2.从文件系统管理机制角度理解文件的复制.移动和删除 3.ext文件系统的扩展属性 4.硬链接和软链接 一.文件系统基础: 1.什么是文件系统: 操作系统中负责管理和存取文件信息的软件机构叫做文件系统.文件系统的目标是向用户提供简便

特殊权限以及软、硬链接

特殊权限 文件或目录的特殊权限共有三类:suid.sgid以及sticky. root用户是超级用户,不管一个文件的权限(普通权限)是怎样的,root都可以编辑.(若有隐藏权限,root可以先去掉隐藏权限,然后再编辑) 这里的/etc/shadow文件没有任何权限,但是root用户依然可以编辑它,使用vi编辑器,然后wq!保存退出. suid 针对可执行文件设置,运行该命令时,临时获得命令拥有者的权限. 例如,可执行文件/usr/bin/passwd,因为有suid权限,所以普通用户在使用pas

Linux root用户密码重置,远程登陆,文件基本属性

忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当然不用!进入单用户模式更改一下root密码即可. 单用户模式 步骤如下: 重启linux系统 3 秒之内要按一下回车, 然后输入e 在 第二行最后边输入 single,有一个空格.具体方法为按向下尖头移动到第二行,按"e"进入编辑模式 kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ single 在后边加上single 回车 最后按"