Linux读书笔记-3
来源:互联网 发布:视频壁纸软件 编辑:程序博客网 时间:2024/06/05 10:49
例题:
假设test1, test2, test3同属于testgroup这个群组,如果有下面的两个文件,请说明两个文件的拥有者与其相关的权限为何?
答:-rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt -rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsai
- 文件test.txt的拥有者为root,所属群组为root。至于权限方面则只有root这个账号可以存取此文件,其他人则仅能读此文件;
- 另一个文件ping_tsai的拥有者为test1,而所属群组为testgroup。其中:
- test1 可以针对此文件具有可读可写可执行的权力;
- 而同群组的test2, test3两个人与test1同样是testgroup的群组账号,则仅可读可执行但不能写(亦即不能修改);
- 至于非testgoup这一个群组的人则仅可以读,不能写也不能执行!
例题:如果我的目录为底下的样式,请问testgroup这个群组的成员与其他人(others)是否可以进入本目录?答:drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/
- 文件拥有者test1[rwx]可以在本目录中进行任何工作;
- 而testgroup这个群组[r-x]的账号,例如test2, test3亦可以进入本目录进行工作,但是不能在本目录下进行写入的动作;
- 至于other的权限中[r--]虽然有r ,但是由于没有x的权限,因此others的使用者,并不能进入此目录!
- 改变所属群组, chgrp
[root@www ~]# chgrp [-R] dirname/filename ...选项与参数:-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录 都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。范例:[root@www ~]# chgrp users install.log[root@www ~]# ls -l-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log[root@www ~]# chgrp testing install.logchgrp: invalid group name `testing' <== 发生错误讯息啰~找不到这个群组名~
- 改变文件拥有者, chown
root@www ~]# chown [-R] 账号名称 文件或目录[root@www ~]# chown [-R] 账号名称:组名 文件或目录选项与参数:-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更范例:将install.log的拥有者改为bin这个账号:[root@www ~]# chown bin install.log[root@www ~]# ls -l-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log范例:将install.log的拥有者与群组改回为root:[root@www ~]# chown root:root install.log[root@www ~]# ls -l-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
[root@www ~]# cp 来源文件 目标文件
[root@www ~]# cp .bashrc .bashrc_test[root@www ~]# ls -al .bashrc*-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc-rw-r--r-- 1 root root 395 Jul 13 11:31 .bashrc_test <==新文件的属性没变
- 改变权限, chmod
文件权限的改变使用的是chmod这个指令,但是,权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更。我们就来谈一谈:
- 数字类型改变文件权限
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:r:4
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
w:2
x:1owner = rwx = 4+2+1 = 7
所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!变更权限的指令chmod的语法是这样的:
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0[root@www ~]# chmod [-R] xyz 文件或目录选项与参数:xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么就下达:[root@www ~]# ls -al .bashrc-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc[root@www ~]# chmod 777 .bashrc[root@www ~]# ls -al .bashrc-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
那如果要将权限变成『 -rwxr-xr-- 』呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754 啰!所以你需要下达『chmod 754 filename』。 另外,在实际的系统运作中最常发生的一个问题就是,常常我们以vim编辑一个shell的文字批处理文件后,他的权限通常是 -rw-rw-r-- 也就是664, 如果要将该文件变成可执行文件,并且不要让其他人修改此一文件的话, 那么就需要-rwxr-xr-x这样的权限,此时就得要下达:『 chmod 755 test.sh 』的指令啰!
另外,如果有些文件你不希望被其他人看到,那么应该将文件的权限设定为例如:『-rwxr-----』,那就下达『 chmod 740 filename 』吧!
例题:将刚刚你的.bashrc这个文件的权限修改回-rw-r--r--的情况吧!答:-rw-r--r--的分数是644,所以指令为:
chmod 644 .bashrc - 符号类型改变文件权限
还有一个改变权限的方法呦!从之前的介绍中我们可以发现,基本上就九个权限分别是(1)user (2)group (3)others三种身份啦!那么我们就可以藉由u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那么读写的权限就可以写成r, w, x!也就是可以使用底下的方式来看:
chmodu
g
o
a+(加入)
-(除去)
=(设定)r
w
x文件或目录
来实作一下吧!假如我们要『设定』一个文件的权限成为『-rwxr-xr-x』时,基本上就是:- user (u):具有可读、可写、可执行的权限;
- group 与 others (g/o):具有可读与执行的权限。
所以就是:[root@www ~]# chmod u=rwx,go=rx .bashrc# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格![root@www ~]# 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这个文件的每个人均可写入的权限, 那么我就可以使用:[root@www ~]# ls -al .bashrc-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc[root@www ~]# chmod a+w .bashrc[root@www ~]# ls -al .bashrc-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
而如果是要将权限去掉而不更动其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:[root@www ~]# chmod a-x .bashrc[root@www ~]# ls -al .bashrc-rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc
知道 +, -, = 的不同点了吗?对啦! + 与 – 的状态下,只要是没有指定到的项目,则该权限『不会被变动』, 例如上面的例子中,由于仅以 – 拿掉 x 则其他两个保持当时的值不变!多多实作一下,你就会知道如何改变权限啰! 这在某些情况底下很好用的~举例来说,你想要教一个朋友如何让一个程序可以拥有执行的权限, 但你又不知道该文件原本的权限为何,此时,利用『chmod a+x filename』 ,就可以让该程序拥有执行的权限了。是否很方便?
0 0
- Linux读书笔记-3
- linux读书笔记3
- 读书笔记(3) Linux
- Linux网络编程读书笔记(3)
- 《Linux设备驱动程序3》读书笔记
- LINUX读书笔记
- linux读书笔记
- linux 读书笔记
- linux 读书笔记
- linux 读书笔记
- linux读书笔记
- linux读书笔记
- Linux读书笔记
- 、《linux device driver 3》读书笔记(-)
- 【读书笔记0101】Beginning linux programming-3rd
- 【读书笔记0102】Beginning linux programming-3rd
- Linux程序设计(Beginning Linux Programming 3rd Edition)读书笔记
- Linux内核设计与实现 读书笔记(3)Linux的进程
- Sed and AWK
- 负载均衡入门和一些基本概念
- android通过代码动态添加和删除控件
- Kinect+OpenNI安装
- java多线程二
- Linux读书笔记-3
- ubntu14.10安装qt4
- Add Two Numbers
- C++ Primer 第四版读书笔记(八)之顺序容器
- scrapy运行
- 负载均衡硬件之F5
- SICP 笔记:1 - 1.1.8
- Size Classes
- .net 当月的第一天和最后一天的方法