鸟哥的linux私房菜学习-(七)改变文件属性与权限

1.Linux文件权限的重要性

与Windows系统不一样的是,在Linux系统当中,每一个文件都多加了很多的属性进来,尤其是群组的概念,这样有什么用途呢? 其实,最大的用途是在『数据安全性』上面的。

  • 系统保护的功能:
    举个简单的例子,在你的系统中,关于系统服务的文件通常只有root才能读写或者是执行,例如/etc/shadow这一个账号管理的文件,由于该文件记录了你系统中所有账号的数据, 因此是很重要的一个配置文件,当然不能让任何人读取(否则密码会被窃取啊),只有root才能够来读取啰!所以该文件的权限就会成为[ -rw------- ]啰!
  • 团队开发软件或数据共享的功能:
    此外,如果你有一个软件开发团队,在你的团队中,你希望每个人都可以使用某一些目录下的文件, 而非你的团队的其他人则不予以开放呢?以上面的例子来说,testgroup的团队共有三个人,分别是test1, test2, test3,那么我就可以将团队所需的文件权限订为[ -rwxrwx--- ]来提供给testgroup的工作团队使用啰!
  • 未将权限设定妥当的危害:
    再举个例子来说,如果你的目录权限没有作好的话,可能造成其他人都可以在你的系统上面乱搞啰! 例如本来只有root才能做的开关机、ADSL的拨接程序、新增或删除用户等等的指令,若被你改成任何人都可以执行的话, 那么如果使用者不小心给你重新启动啦!重新拨接啦!等等的!那么你的系统不就会常常莫名其妙的挂掉啰! 而且万一你的用户的密码被其他不明人士取得的话,只要他登入你的系统就可以轻而易举的执行一些root的工作!

可怕吧!因此,在你修改你的linux文件与目录的属性之前,一定要先搞清楚, 什么数据是可变的,什么是不可变的!千万注意啰!接下来我们来处理一下文件属性与权限的变更吧!

2.如何改变文件属性与权限

几个常用于群组、拥有者、各种身份的权限之修改的指令,如下所示:

  chgrp:改变文件所属维护群组

  chown:改变文件拥有者

  chmod:改变文件的权限,SUID, SGID, SBIT等等的特性

2.1 chgrp:改变文件所属维护群组

chgrp=change group

注意:要被改变的组名必须要在/etc/group文件内存在才行,否则就会显示错误!

2.2 chown:改变文件拥有者

chown=change owner

2.3 chmod:改变文件的权限,SUID, SGID, SBIT等等的特性

权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更。

数字类型改变文件权限:

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

r:4
w:2
x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0

所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!变更权限的指令chmod的语法是这样的:

从之前的介绍中我们可以发现,基本上就九个权限分别是(1)user (2)group (3)others三种身份啦!那么我们就可以藉由u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那么读写的权限就可以写成r, w, x!也就是可以使用底下的方式来看:

chmod u
g
o
a
+(加入)
-(除去)
=(设定)
r
w
x
文件或目录

来实作一下吧!假如我们要『设定』一个文件的权限成为『-rwxr-xr-x』时,基本上就是:

  • user (u):具有可读、可写、可执行的权限;
  • group 与 others (g/o):具有可读与执行的权限。

所以就是:

[[email protected] ~]# chmod  u=rwx,go=rx  .bashrc
# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格!
[[email protected] ~]# ls -al .bashrc
-rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc

那么假如是『 -rwxr-xr-- 』这样的权限呢?可以使用『 chmod u=rwx,g=rx,o=r filename 』来设定。此外,如果我不知道原先的文件属性,而我只想要增加.bashrc这个文件的每个人均可写入的权限, 那么我就可以使用:

[[email protected] ~]# ls -al .bashrc
-rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc
[[email protected] ~]# chmod  a+w  .bashrc
[[email protected] ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

而如果是要将权限去掉而不更动其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

[[email protected] ~]# chmod  a-x  .bashrc
[[email protected] ~]# ls -al .bashrc
-rw-rw-rw-  1 root root 395 Jul  4 11:45 .bashrc

知道 +, -, = 的不同点了吗?对啦! + 与 – 的状态下,只要是没有指定到的项目,则该权限『不会被变动』, 例如上面的例子中,由于仅以 – 拿掉 x 则其他两个保持当时的值不变!多多实作一下,你就会知道如何改变权限啰! 这在某些情况底下很好用的~举例来说,你想要教一个朋友如何让一个程序可以拥有执行的权限, 但你又不知道该文件原本的权限为何,此时,利用『chmod a+x filename』 ,就可以让该程序拥有执行的权限了。是否很方便?

原文地址:https://www.cnblogs.com/wenlin66/p/8269845.html

时间: 2024-10-03 22:40:33

鸟哥的linux私房菜学习-(七)改变文件属性与权限的相关文章

鸟哥的linux私房菜学习-(十)vim程序编辑器

1.vi和vim 在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设定了! 常常听到的就有: emacs, pico, nano, joe, 与 vim 等等(注1). 2.vi的使用 基本上 vi 共分为三种模式,分别是『一般模式』.『编辑模式』与『指令列命令模式』. 这三种模式的作用分别是: 一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式). 编辑模式:在一般模式中可以进行删除.复制.贴上等等的动作,

鸟哥的linux私房菜学习笔记 ---第7章-1

1, /usr UNIX software resource 关于软件的文件都存放在这个目录下2, 开机仅有根目录会被挂载,其他分区则是在开机完成之后才会持续进行挂载的行为3, 根目录下的子目录不一定和根目录在同一个分区下.但是,要注意根目录下与开机过程有关的目录不能与根目录放在不同的分区下.4, linux目录配置标准:FHS(Filesystem hierarchy standard) 仅定义根目录及其子目录       FHS 定义的三层主目录为: /, /var,/usr   有五个目录

鸟哥的linux私房菜学习笔记 ---第6章-1

linux是多任务多用户系统-r 进行递归的持续更改 连同子目录下的所有文件都会改变 shutdown -选项 时间参数 显示消息 shutdown -k nowshutdown -h +10shutdown -r 10:28 ‘the system will reboot at 10:28’ reboot init 0 关机 init 是切换执行等级的意思,不同的数字代笔不同的执行等级:0关机,3纯命令行模式,5含有图形界面的模式 6重启 ls -a ls -al chgrp 组名 文件名 c

鸟哥的linux私房菜学习笔记 ---第8章-1

1,磁盘的扇区为最小的物理存储单位,大小为512bytes2,扇区sector 组成 柱面cylinder 组成 分区partition 一个分区对应一个文件系统,一个文件系统要挂载到相应的目录上去3,linux的正规文件系统为ext24,inode 记录文件的权限及相关属性和此文件所占用的block的编号 一个文件占用一个inode    block 记录文件的实际内容,文件很大会占用多个block   super block

鸟哥的linux私房菜学习笔记 ---第5章-2

1,bc 简易计算器2,[ctrl]+d end of file3,~代表用户的主文件夹,是个变量 root的主文件夹在 /root4,sync 将内存中的数据写入到硬盘中,一般在关机之前必做步骤,好的习惯5,nano 简单好用的文本编辑器  nano 文件名直接打开新或已有文件  可以直接编辑  ctrl+x 离开 然后选择保存与否 然后回车退出nano6,记住一般^标识Ctrl键 M表示Alt键, 6,info 利用node来存储文件,node的链接仅适用于info page格式的文档  u

鸟哥的linux私房菜学习笔记 ---第7章-2

1,文件内容查阅的命令: cat ,tac nl,more, less,head,tail ,od  文件的查阅参数,显示行号如何显示行号  nl 中的所有参数都是关于如何显示行号的  这里面less的功能更多,更灵活 :空格 下一页 pageup上一页 pagedown 下一页 /string 字符串查询 ?string 反向字符串查询  man的命令就是调用less进行显示的  tail -f 会一直检测文件的更新,实时显示出文件的更新 除非 ctrl+c 才会停止  head -n 20

鸟哥的linux私房菜学习-(八)Linux 文件与目录管理

1. 目录与路径 1.1相对路径与绝对路径: 绝对路径:路径的写法『一定由根目录 / 写起』,例如: /usr/share/doc 这个目录. 相对路径:路径的写法『不是由 / 写起』,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 『cd ../man』这就是相对路径的写法啦!相对路径意指『相对於目前工作目录的路径!』 1.2目录的相关操作: 需要特别注意的是:在所有目录底下都会存在的两个目录,分别是『.』与『..』 分别代表此层与上一级目录的意思

鸟哥的linux私房菜学习笔记 ---第6章-3

1,使用last命令读取data file ,数据格式文件使用cat读取会出现乱码2,- 普通文件,使用cat或者 last命令来读取  d 目录  l 链接  b 块设备文件  c 字符设备文件 ,一次性读取  s 套接字 网络数据通信  p FIFO 文件

鸟哥的linux私房菜学习记录之认识系统服务(daemons)