这篇博客主要来记录linux文件的一些基本知识,在GNU/linux里,文件管理是非常重要的,我个人认为原因主要体现在两个方面。首先,linux从UNIX系统继承下来的一切设备皆文件的理念,对硬件设备的管理也体现在对文件的管理上;其次是linux是一个多用户多任务的操作系统,从安全的角度,对不同用户文件权限的管理显的尤为重要。下面我们来看一下linux系统有关文件的一些基本知识:
linux文件访问类别主要有3个类别,owner、group、other,权限分别为read、write、excute;与windows不同之处在于,windows下可执行文件以.bat或者.exe后缀名;而linux下可执行文件以其是否拥有可执行权限来判定,当然普通文件即使有可执行权限也是不能执行的,这主要是因为其内容不可执行。
- [huang@myhost/etc]$ cd /dev/
- [huang@myhost/dev]$ ls -l
- total 0
- crw-rw---- 1 root video 10, 175 Oct 2 22:33 agpgart
- drwxr-xr-x 2 root root 80 Oct 2 22:33 bsg
- lrwxrwxrwx 1 root root 11 Oct 2 22:33 core -> /proc/kcore
- ## 部分内容省略 ##
- [huang@myhost/~]$ ls -l
- drwxrwxrwx 23 root root 4096 Jun 29 00:28 openssl-0.9.8r
- -rw-r--r-- 1 huang huang 26347 Sep 18 20:12 Unsaved Document 1
- drwxr-xr-x 4 huang huang 4096 Sep 22 03:20 work
- ## 部分内容省略 ##
- -rw-r--r-- 文件类型及文件权限
- 1 链接数
- huang 文件拥有者
- huang 文件所属组
- 26347 文件大小
- Sep 18 20:12 文件最后一次修改时间
- Unsaved Document 1 文件名 , 如果文件名前有.,表示这个文件为隐藏文件
接下来9个字符的宽度分别代表文件拥有的权限,[r] 代表可读( read ) , [w] 代表可写( write ) , [x] 代表可执行( excute ). 用数字表示分别为 [r] = 4 , [w] = 2 , [x] = 1 .
再来看这个文件拥有者为huang, huang对其有读、写权限,所属huang用户组的用户对该文件有读的权限,其他用户对这个文件也只有读权限。
下面来看看文件管理的3个常用命令:chown , chmod , chgrp .
- chown -- 改变文件所属用户
- [-R] 递归的改变文件夹内文件
- [-f] 忽略错误信息
- [huang@myhost/~]$ touch ./test ## 新建测试文件
- [huang@myhost/~]$ ls -al ./test
- -rw-r--r-- 1 huang huang 0 Oct 2 23:36 ./test
- [huang@myhost/~]$ sudo cp ./test /home/whu/ ## 拷贝文件后,文件的用户及用户组都发生变化
- [whu@myhost ~]$ ls -al
- -rw-r--r-- 1 root root 0 Oct 2 23:36 test
- [whu@myhost ~]$ sudo chown huang ./test ## 修改文件用户组
- [whu@myhost ~]$ ls -l ./test
- -rw-r--r-- 1 huang root 0 Oct 2 23:36 ./test
- [whu@myhost ~]$ sudo chown whu:whu ./test ## 修改用户及用户组
- [whu@myhost ~]$ ls -l ./test
- -rw-r--r-- 1 whu whu 0 Oct 2 23:36 ./test
- chmod -- 改变文件的权限属性
- 常用的修改方法有两种,一种是用英文字符来设置改变权限( w , r , x ) ; 另外一种是用数字来直接设置([r] = 4 , [w] = 2 , [x] = 1 );
- chmod -[参数] [文件]
- [-f] 忽略错误
- [-R] 递归改变文件目录下的所有文件
- [huang@myhost/~]$ ls -l ./test
- -rw-r--r-- 1 huang huang 0 Oct 2 23:36 ./test
- [huang@myhost/~]$ chmod u=rwx,g=rw,o=r ./test
- [huang@myhost/~]$ ls -l ./test
- -rwxrw-r-- 1 huang huang 0 Oct 2 23:36 ./test
- [huang@myhost/~]$ chmod a=rwx ./test
- [huang@myhost/~]$ ls -l ./test
- -rwxrwxrwx 1 huang huang 0 Oct 2 23:36 ./test
- [huang@myhost/~]$ chmod o-xw ./test ## other减少 wx 权限
- [huang@myhost/~]$ ls -l ./test
- -rwxrwxr-- 1 huang huang 0 Oct 2 23:36 ./test
- [huang@myhost/~]$ chmod 733 ./test
- [huang@myhost/~]$ ls -l ./test
- -rwx-wx-wx 1 huang huang 0 Oct 2 23:36 ./test ##文件属性为733
- chgrp -- 更改文件所属用户组
- chgrp -[参数] [文件]
- [-f] 忽略错误信息
- [-R] 递归改变目录下文件
- [-H] 如果参数是某个目录的符号链接,转化改连接
- [huang@myhost/~]$ ls -l ./test
- -rwx-wx-wx 1 huang huang 0 Oct 2 23:36 ./test
- [huang@myhost/~]$ sudo chgrp root ./test
- [huang@myhost/~]$ ls -l ./test
- -rwx-wx-wx 1 huang root 0 Oct 2 23:36 ./test