鸟哥的私房菜学习笔记九 关于文件。。。。。
来源:互联网 发布:香港青旅 知乎 编辑:程序博客网 时间:2024/06/08 02:16
一、用户身份与群组的记录文件
在linux系统中,系统上的账号记录在/etc/passwd文件中
个人的密码记录在/etc/shadow这个文件中
linux的所有组名都记录在/etc/group中
二、linux的文件属性
[root@www ~]# ls -altotal 156drwxr-x--- 4 root root 4096 Sep 8 14:06 .drwxr-xr-x 23 root root 4096 Sep 8 14:21 ..-rw------- 1 root root 1474 Sep 4 18:27 anaconda-ks.cfg-rw------- 1 root root 199 Sep 8 17:14 .bash_history-rw-r--r-- 1 root root 24 Jan 6 2007 .bash_logout-rw-r--r-- 1 root root 191 Jan 6 2007 .bash_profile-rw-r--r-- 1 root root 176 Jan 6 2007 .bashrc-rw-r--r-- 1 root root 100 Jan 6 2007 .cshrcdrwx------ 3 root root 4096 Sep 5 10:37 .gconf <=范例说明处drwx------ 2 root root 4096 Sep 5 14:09 .gconfd-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log <=范例说明处-rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ][ 权限 ][连结][拥有者][群组][文件容量][ 修改日期 ][ 檔名 ]
第一个字符代表这个文件是『目录、文件或链接文件等等』:
- 当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
- 当为[ - ]则是文件,例如上表档名为『install.log』那一行;
- 若是[ l ]则表示为连结档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
- 第一组为『文件拥有者的权限』,以『install.log』那个文件为例, 该文件的拥有者可以读写,但不可执行;
- 第二组为『同群组的权限』;
- 第三组为『其他非本群组的权限』。
- 文件的档名
这个字段就是档名了。比较特殊的是:如果档名之前多一个『 . 』,则代表这个文件为『隐藏档』,例如上表中的.gconf那一行,该文件就是隐藏档。 你可以使用『ls』及『ls -a』这两个指令去感受一下什么是隐藏档啰!
1、系统保护的功能
2、团队开发软件或数据共享的功能
3、未将权限设定妥当的危害
三、改变文件属性与权限
1、chgrp:改变文件的所属群组:要改变的组名必须要在/etc/group内存在才可以 exp: chgrp users install.log
2、chown:改变文件的拥有者,要改变的用户必须要在/etc/passwd内存在才可以, exp: chown junson install.log,如果要莲目录项的所有此目录或者文件同时更改文件的拥有者的话直接加上-R即可。
3、chmod:改变文件的权限,SUID,SGID,SBIT等等的特性
这个就全抄了:
文件权限的改变使用的是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 』吧!
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』 ,就可以让该程序拥有执行的权限了。是否很方便?
四、linux的文件种类,扩展名基本上可以无视
在linux下一切皆文件
文件的种类有:
1、常规文件:【-】纯文本文件,二进制文件,数据格式文件
2、目录:【d】
3、连结档:【l】
4、设备与装置文件:系统周别及存储相关的的一些文件通常都几种在/dev这个目录下,通常文卫两种块设备【b】和字符设备【c】
5、数据接口文件:【s】
6、数据传送文件:【p】
五、linux文件长度的限制:
在linux地下,使用预设的ext2/ext3文件系统,针对文件的档名长度限制为:
1、单一文件或目录的最大容许文件名为255个字符
2、包含完整路径名臣攻击目录(/)的完整档名为4096个字符
文件名的限制
* ? > < ; & ! [ ] | \ ' " ` ( ) { }
因为这些符号在文字接口下,是有特殊意义的!另外,文件名的开头为小数点『.』时, 代表这个文件为『隐藏档』喔!
- 鸟哥的私房菜学习笔记九 关于文件。。。。。
- 鸟哥的linux私房菜学习笔记《九》默认、隐藏、特殊权限
- 鸟哥的私房菜学习笔记
- 我的《鸟哥的Linux私房菜》笔记(九)认识与学习 BASH(二)
- 鸟哥的私房菜学习笔记十三 关于正则表达式
- 【九】鸟哥私房菜
- 鸟哥的私房菜学习笔记——Linux 的文件权限与目录配置
- 鸟哥的私房菜学习笔记十二 文件与文件系统的压缩与打包
- 【鸟哥的linux私房菜-学习笔记】文件的格式化与相关处理
- 鸟哥的linux私房菜学习笔记《十》命令与文件的查询
- 学习鸟哥的Linux私房菜笔记(4)——文件
- linux学习笔记鸟哥的私房菜(二)-文件与目录管理
- 学习鸟哥的Linux私房菜笔记(4)——文件
- 鸟哥的私房菜学习笔记十 linux文件与目录管理
- 【鸟哥的linux私房菜-学习笔记】文件与目录管理
- 【鸟哥的linux私房菜-学习笔记】认识与分析登录文件
- 学习鸟哥的Linux私房菜笔记(4)——文件
- 鸟哥的linux私房菜学习笔记《五》文件权限与目录配置
- js预加载/延迟加载
- 编程之美:第四章 数字之趣 4.10_2数字哑谜和回文
- 2015 Multi-University Training Contest 4(hdu5334 - Virtual Participation)数学
- CSS基础-14CSS盒子模型-内边距
- 优化listview的方法
- 鸟哥的私房菜学习笔记九 关于文件。。。。。
- 【独立开发者er Cocos2d-x实战 013】Cocos2dx 网络编程实战之星座运势
- Best Time to Buy and Sell Stock II
- [二分]poj2976 Dropping tests
- 【剑指Offer面试题】 九度OJ1367:二叉搜索树的后序遍历序列
- hdu网格中有多少个矩形【模拟】
- 编程之美:第四章 数字之趣 4.11扫雷游戏的概率
- NYOJ 311 完全背包
- java 左右移位运算