一、用户身份与群组的记录文件
在linux系统中,系统上的账号记录在/etc/passwd文件中
个人的密码记录在/etc/shadow这个文件中
linux的所有组名都记录在/etc/group中
二、linux的文件属性
[root@www ~]# ls -al total 156 drwxr-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 .cshrc drwx------ 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
举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么就下达:[root@www ~]# chmod [-R] xyz 文件或目录 选项与参数: xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。 -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
那如果要将权限变成『 -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 』的指令啰![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-----』,那就下达『 chmod 740 filename 』吧!
chmod | u 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 |
[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 |
四、linux的文件种类,扩展名基本上可以无视
在linux下一切皆文件
文件的种类有:
1、常规文件:【-】纯文本文件,二进制文件,数据格式文件
2、目录:【d】
3、连结档:【l】
4、设备与装置文件:系统周别及存储相关的的一些文件通常都几种在/dev这个目录下,通常文卫两种块设备【b】和字符设备【c】
5、数据接口文件:【s】
6、数据传送文件:【p】
五、linux文件长度的限制:
在linux地下,使用预设的ext2/ext3文件系统,针对文件的档名长度限制为:
1、单一文件或目录的最大容许文件名为255个字符
2、包含完整路径名臣攻击目录(/)的完整档名为4096个字符
文件名的限制
* ? > < ; & ! [ ] | \ ' " ` ( ) { }
因为这些符号在文字接口下,是有特殊意义的!另外,文件名的开头为小数点『.』时, 代表这个文件为『隐藏档』喔!