Linux文件权限属性说明与目录文件的一些命令

1 Linux的文件权限与目录配置

了解文件的权限,首先先要知道文件的拥有者,文件对于用户主要有3个部分:文件拥有者用户组非用户组外其他人

1.1 Linux文件属性

查看文件的命令是ls,此处查询使用ls -al,其中a是展示所有文件,l是以列表是个显示所有文件。

gpu-server@gpu-server:~$ ls -al
total 352052
drwxr-xr-x 4 gpu-server gpu-server      4096 Jun 21 07:13 .
drwxr-xr-x 5 root       root            4096 Jun 21 01:18 ..
-rw------- 1 gpu-server gpu-server      2664 Jun 21 06:41 .bash_history
-rw-r--r-- 1 gpu-server gpu-server       220 Apr  4  2018 .bash_logout
-rw-r--r-- 1 gpu-server gpu-server      3771 Apr  4  2018 .bashrc
drwx------ 2 gpu-server gpu-server      4096 Jun 20 14:24 .cache
drwx------ 3 gpu-server gpu-server      4096 Jun 20 14:24 .gnupg
-rw-rw-r-- 1 gpu-server gpu-server 360459673 Jun 20 14:31 NVIDIA-Linux-x86_64-515.48.07.run
-rw-r--r-- 1 gpu-server gpu-server       807 Apr  4  2018 .profile
-rw-r--r-- 1 gpu-server gpu-server         0 Jun 20 14:24 .sudo_as_admin_successful
-rw------- 1 root       root            1466 Jun 21 01:18 .viminfo
-rw------- 1 gpu-server gpu-server       112 Jun 21 07:13 .Xauthority
[---1---] [2][---3----] [----4444]  [---5---][----6------] [------7----------------] 
[  权限 ][连接][   用户 ] [ 用户组  ]  [文件大小][   修改日期  ] [---文件名-----] 
  • 权限
    • 第一个文件类型, d = 目 录 , − = 文 件 , l = 链 接 d=目录 , - = 文件 , l=链接 d==l=
    • 接着是第一组权限,为用户权限 一组3个标志位,分别为 r w x = 读 写 可 执 行 r w x=读 写 可执行 rwx=(权限位置不可变),若不具备则是用-
    • 第二组权限是用户组的权限
    • 第三组权限是非用户组成员的权限

Linux的文件权限有何作用

  • 保护系统服务文件,例如/etc/shadow,一个账号管理文件,不让任何人读取,root除外
  • 但可以发现它的权限是[----------],所有人不可读。
  • 需要知道root用户不论权限,都默认读写

若一个文件是目录,X难道还代表可执行嘛?

  • 此时,X代表是否可以进入目录。

1.2 如何修改文件权限

  • chgrp:修改文件所属用户组
  • chown:修改文件拥有者
  • chmod:修改文件权限

1.2.1 修改所属用户组

若在root用户下,可执行:chgrp [用户组] [文件名]

root@gpu-server:/home/gpu-server# ls -l
total 352012
-rw-rw-r-- 1 gpu-server gpu-server 360459673 Jun 20 14:31 NVIDIA-Linux-x86_64-515.48.07.run
-rw-r--r-- 1 root       users              0 Jun 21 11:37 tets.txt

若输入的用户名,不存在则会报错。 invalid group:[你输入的错误用户组]

1.2.2 修改文件所属用户

若在root用户下,可执行:chown -R [用户]:[用户组] [文件或者目录]

-R 参数是指递归,即若是目录,其下的文件也修改权限。

root@gpu-server:/home/gpu-server# chown root tets.txt 
root@gpu-server:/home/gpu-server# ls -l
total 352012
-rw-rw-r-- 1 gpu-server gpu-server 360459673 Jun 20 14:31 NVIDIA-Linux-x86_64-515.48.07.run
-rw-r--r-- 1 root       users              0 Jun 21 11:37 tets.txt
root@gpu-server:/home/gpu-server# chown root:root tets.txt 
root@gpu-server:/home/gpu-server# ls -l
total 352012
-rw-rw-r-- 1 gpu-server gpu-server 360459673 Jun 20 14:31 NVIDIA-Linux-x86_64-515.48.07.run
-rw-r--r-- 1 root       root               0 Jun 21 11:37 tets.txt

1.2.3 修改文件权限

上文提到,文件的权限有3组,分别是用户,用户组,非用户组其他人。在修改文件权限时,linux用数字表示文件的权限,权限与数字对应关系如下:
r = 4 , w = 2 , x = 1 r=4,w=2,x=1 r=4,w=2,x=1
则若一个文件的所属用户权限是:rwx则其权限数字是 4 + 2 + 1 = 7 4+2+1=7 4+2+1=7,即7是最高权限

修改文件权限命令:chmod -R xyz 文件或者目录

xyz则是用户,用户组,非用户组成员的权限数字。

其实还有一种符号的方法,太复杂了不学了。

1.3 文件目录配置

早期linux为了文件目录方便管理,推出了如下表四种交互作用的形态:

可分享不可分享
不变/usr(软件存放处)/etc(配置文件)
/opt(第三方辅助软件)/boot(启动内核文件)
可变/var/mail(用户邮箱)/var/run(程序相关)
/var/spool/news(新闻组)var/lock(程序相关)

这4类具体是什么?

  • 可分享:可以给其他系统挂载继而使用的目录
  • 不可以分享:与自己系统运行息息相关的文件等
  • 不变:数据不会经常变动
  • 可变:经常修改的

1.3.1 根目录(/)的意义与内容

根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来,同时根目录也与启动、还原、系统修复等操作有关 由于系统启动时需要特定的启动软件、内核文件、启动所需 程序、函数库等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行 因为根目录这么重要,所以希望根目录不要放在非常大的分区内,因为越大的 分区你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。

目录存放的文件内容
/opt第三方辅助软件
/run系统启动后产生的各项信息
/sbin一些系统环境的命令,只能root使用,比如:启动,修复,还原系统等等,如有:fdisk,fsck,ifconfig,mkfs
/srv网络服务启动后产生的文件
/tmp执行程序展示存放的位置,任何人都能够访问修改,一般是不重要的数据
/usr看后一节
/var
/home系统默认的用户目录,一个用户将会在此目录下有个子目录,目录名为用户名。
/lib用户存放二进制文件库
/rootroot用户的home目录,没有挂载到/home

1.3.2 /usr的意义与内容

此目录下的文件有可分享和不可分享,这个目录下类比windows的默认下载地址c://windows//Program Files

目录存放的文件内容
/usr/bin/用户的常规可执行命令都
/usr/lib/就是/lib,它是链接到这里的
/usr/local/系统管理员下载的一些软件存放地址,例如cuda的默认存放地址也是这里
/usr/sbin/非系统正常运行的系统命令,/sbin也是链接到此处
/usr/games游戏相关的数据放置处
/usr/includesc与c++头文件存放的位置
/usr/libexec不会被用户执行的文件和脚本
/usr/src源代码存放处,内核源代码就是在/usr/src/Linux下

1.3.3 /var的意义与内容

此目录是系统运行后慢慢会积累的内容,其中包括一些:cache、log file 、 以及一些产生的文件如数据库文件

目录应该放置的文件内容
/var/cache/应用程序本身运行过程中会产生的一些缓存
/var/lib/程序执行过程中,需要用到的配置文件,如:/var/lib/mysql
/var/lock设备锁的相关文件目录
/var/log日志文件
/var/run程序和服务启动后,会将他们的PID放到这个目录下面
/var/spool这个目录会放置一些队列数据,就是排队等到其他程序使用的数据

其中 ~表示当前用户的home目录

.表示当前级目录

…表示上一级目录

-表示前一个工作区的目录

1.3.4 目录与文件的基本命令

  • cd:切换目录

  • pwd:显示当前目录

  • mkdir:创建一个新目录

  • rmdir:删除一个目录

  • cp:复制

    • [ root@study ~]# cp [ adfilprsu ]源文件( source 目标文件 destination)
      [ root@study ~]# cp [options] sourcel source2 source3 ... directory 
      选项与参数
      - a 相当于 dr -- preserve=all 的意思,至于 dr 请参考下列说明(常用)
      - d 若源文件为链接文件的属性 link il ,则复和 链接文件 性而非文件本身
      -f 为强制 force 的意思,若目标文件已经存在且无法 则删除后再尝试一次
      - i 若目标文件 destination 已经存在时,在覆盖时会先询问操作的进行(常用),
      - 1 进行硬链接 hard link 的链接文件建立,而非复制文件本身
      - p 连同文件的属性 权限 用户 时间 一起复制过去,而 默认属性 备份常用 );
      - r 递归复制 用于目录的复制操作(常用)
      - s 复制成为符号链接文件( lbolic link ),亦即“快捷方式”文件
      - u : destination source 旧才更新 destination estination 不存在的情况下才复制;
      -- preserve=all 除了 的权限相关参数外,还加入 SELi 的属性, li xattr 制,
      最后需要注意的是,如果源文件有两个以上,则最后一个目标文件一定要是“目录”才行.
      
  • rm:删除

    • [ root@study ~]# rm 文件或者目录
      选项与参数
      - r 递归删除 用于目录的删除操作(常用)
      -f 为强制忽略不存在的的文件
      -T 交互模式,询问是否操作
      
  • mv:移动文件与目录、重命名

[ root@study ~]# mv [-fiu] source destination
[ root@study ~]# mv [options] sourcel source2 source3 ... directory 
选项与参数
-f 为强制,若已存在,直接覆盖
-u 若目标文件已经存在,会比新,新才替换
-i 若目标文件已经存在,就会询问是否覆盖

  • 文件查看命令:

    • cat:从第一行显示文件内容

    • tac:从最后一行开始显示文件内容

    • nl:显示同时输出行号 nl [-bnw] 文件

      • -b 有两种方式

        a 不论是否空行,输出行号

        t 与上相反,(默认)

        使用方式:nl -b a 文件

        -n 有三种方式

        ln 行号在屏幕最左边

        rn行号在自己栏位里的右边,不加0

        rz行号在自己栏位里的右边,加0

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wdQDCXpd-1656559867459)(F:\书籍目录\笔记\鸟叔linux\assets\1655817038885.png)]

        -w 行号栏位占用的字符数

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BoeyGDdB-1656559867460)(F:\书籍目录\笔记\鸟叔linux\assets\1655817088636.png)]

    • more:一页一页显示文件内容

      空格:向下翻页

      pageup: 向上翻页

      pagedown:向下翻页

      /字符串:查找(向上)

      ?字符串:查找(向上)

      n:重复前一个查找(在/或者?后使用)

      N:方向的重复前一个查找

      g:前进到这个数据第一行

      G:前进到这个数据最后一行

      q:离开

    • less:与more类似,但是可以往前翻页

      功能按键和more一样

    • head:只看前面几行

    • tail:只看后面几行

    • od:以二进制方式读取文件内容

  • umask:查看文件创建的默认权限数字

    ?字符串:查找(向上)

    n:重复前一个查找(在/或者?后使用)

    N:方向的重复前一个查找

    g:前进到这个数据第一行

    G:前进到这个数据最后一行

    q:离开

    • less:与more类似,但是可以往前翻页

      功能按键和more一样

    • head:只看前面几行

    • tail:只看后面几行

    • od:以二进制方式读取文件内容

  • umask:查看文件创建的默认权限数字

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值