一、使用者与群组
1、文件拥有者
由于linux时隔多人多用户的系统,所以每个文件都有自己的拥有者,当设置了合适的权限之后,该文件就只有文件拥有着可以查看,从而防止不必要的人看到自己的文件。
2、群组
简单点说,就是一个共享文件可以属于一个群组,这个群组包含几个用户,这几个用户可以查看这个文件,而这个群组以外的用户不可以查看这个文件。
3、其他人
其他人需要得到这个群组里的人认同之后才可以查看这个共享文件。
4、linux用户身份与群组记录
用户身份信息记录在/etc/passwd文件中,密码记录在/etc/shadow中
所有组名都记录在/etc/group中
#############################################################
二、文件权限
1、文件属性
[root@server1 ~]# ls -al
total 1416
dr-xr-x---. 8 root root 4096 Dec 10 2016 .
dr-xr-xr-x. 25 root root 4096 Aug 11 17:11 ..
-rw-------. 1 root root 13830 Aug 11 02:01 .bash_history
-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout
-rw-r--r-- 1 root root 202 Sep 17 2016 .bash_profile
-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc
drwx------ 3 root root 4096 Oct 1 2016 .cache
drwx------ 3 root root 4096 Oct 1 2016 .config
-rw-r--r--. 1 root root 100 Sep 23 2004 .cshrc
-rw------- 1 root root 55 Sep 17 2016 .lesshst
drwxr-xr-x 2 root root 4096 Sep 11 2016 .lftp
...........
ls命令显示文件的名称与相关属性
7个字段分别代表的含义:
权限 链接数 拥有者 群组 文件大小 文件最后修改时间 文件名
权限字段(共十个字符):
第一个字符:表示文件的类型
d :目录
- :普通文件
l :链接文件
b :存储设备文件
c :串行端口设备文件,如键盘,鼠标
接下来的字符三个为一组,一共三组,且均为rwx,r代表可读,w代表可写,x代表可执行,如果是-则表示没有权限。rwx也可以用数字表示,r为4,w为2,x为1,所以rwxrwxrwx也可以表示为777(4+2+1)
第一组为文件拥有者的权限
第二组为同群组的权限
第三组为其他非本群组的权限
如:-rwxr-xr--
分成四部分:- rwx r-x r--
这是一个普通文件,拥有者的权限为可读可写可执行;同群组用户的权力为可读可执行,但是不可写;其他人的权力为可读。
#######################################################
三、如何改变文件属性与权限
1、chgrp :改变文件所属群组
[root@server1 home]# ls -l
total 8
drwx------ 6 hadoop hadoop 4096 Dec 10 2016 hadoop
drwx------ 2 test test 4096 Dec 10 2016 test
[root@server1 home]#
test文件所属的群组为test
改变群组为user
[root@server1 home]# groupadd user ##首先user这个群组得存在
[root@server1 home]# chgrp user test/
[root@server1 home]# ls -l
total 8
drwx------ 6 hadoop hadoop 4096 Dec 10 2016 hadoop
drwx------ 2 test user 4096 Dec 10 2016 test
[root@server1 home]#
可以看见test的群组已经变为user
###################################
2、chown :改变文件拥有者
chown [-R] 用户名称 文件或目录 ##-R表示把目录里的文件都同时修改
chown [-R] 用户名称:组名 文件或目录
将test的拥有者改为user1
[root@server1 home]# useradd user1 ##用户必须存在
[root@server1 home]# chown user1 test
[root@server1 home]# ls -l
total 12
drwx------ 6 hadoop hadoop 4096 Dec 10 2016 hadoop
drwx------ 2 user1 user 4096 Dec 10 2016 test ##test的拥有者变为了user1
drwx------ 2 user1 user1 4096 Aug 11 18:12 user1 ##创建新用户的同时会生成该用户的家目录
[root@server1 home]#
[root@server1 home]# chown test:test test ##将test的拥有者和群组同时改为test
[root@server1 home]# ls -l
total 12
drwx------ 6 hadoop hadoop 4096 Dec 10 2016 hadoop
drwx------ 2 test test 4096 Dec 10 2016 test
drwx------ 2 user1 user1 4096 Aug 11 18:12 user1
[root@server1 home]#
#############################################################
3、chmod :改变文件的权限,SUID、SGID、SBIT等等的特性
可以使用数字修改,也可以使用rwx修改
u=owner=rwx=4+2+1
g=group=rwx=4+2+1
o=others=---=0+0+0=0
如:
[root@server1 home]# chmod 777 test
[root@server1 home]# ls -l
total 12
drwx------ 6 hadoop hadoop 4096 Dec 10 2016 hadoop
drwxrwxrwx 2 test test 4096 Dec 10 2016 test
drwx------ 2 user1 user1 4096 Aug 11 18:12 user1
[root@server1 home]# chmod 754 test
[root@server1 home]# ls -l
total 12
drwx------ 6 hadoop hadoop 4096 Dec 10 2016 hadoop
drwxr-xr-- 2 test test 4096 Dec 10 2016 test ##rwxr-xr--=4+2+1|4+0+1|4+0+0=754
drwx------ 2 user1 user1 4096 Aug 11 18:12 user1
[root@server1 home]#
通过字符修改
[root@server1 home]# chmod u=rwx,go=rx test
[root@server1 home]# ls -l
total 12
drwx------ 6 hadoop hadoop 4096 Dec 10 2016 hadoop
drwxr-xr-x 2 test test 4096 Dec 10 2016 test
drwx------ 2 user1 user1 4096 Aug 11 18:12 user1
[root@server1 home]#
| u
| g | +(增加) | r |
chmod | | -(减少) | w | 文件或目录
| 0 | =(设定) | x |
| a
####################################################################4
4、权限对文件爱你的重要性
r(read) : 可读取此一文件的实际内容
w(srite) : 可以编辑、新增或者是修改该文件的内容,但不能删除
x(execute) : 该文件具有可以被系统执行的权限
######################################################
5、权限对目录的重要性
r : 表示具有读取目录结构列表的权限,也就是可以用ls命令查看这个目录里的内容
w : 建立新的文件与目录
删除已经存在的文件与目录(不论该文件的权限为何)
将已存在的档案或目录进行更名
搬移该目录内的文件、目录位置
x : 目录不可以被执行,所以这里的x表示用户能否进入该目录成为当前目录的用途
当开放目录给任何人浏览时,应至少要给予r或x权限,w需视情况而定
例:用root的身份在所有人都可以和工作的/tmp目录中建立一个名为testing的目录,该目录的权限为744,且目录拥有者为root。另外,在testing目录下再建立一个空的文件testing。
[root@server1 ~]# cd /tmp/ ##进入tmp目录
[root@server1 tmp]# mkdir testing
[root@server1 tmp]# ls -l testing/ ##-l只能查看文件的属性,而testing是一个空目录
total 0
[root@server1 tmp]# ls -ld testing/
drwxr-xr-x 2 root root 4096 Aug 13 01:11 testing/ ##-d可以查看某个目录的属性,可以看到现在testing的权限是755,群组和其他人的权限为可读,可进入,不可增删改移
[root@server1 tmp]# chmod 744 testing/
[root@server1 tmp]# ls -ld testing/
drwxr--r-- 2 root root 4096 Aug 13 01:11 testing/ ##将testing的权限改为群组和其他人可读不可进入,不可增删改移
[root@server1 tmp]# touch testing/testing ##再testing目录里建立一个文件testing
[root@server1 tmp]# cd testing/ ##
[root@server1 testing]# ls -l
total 0
-rw-r--r-- 1 root root 0 Aug 13 01:19 testing ##权限为644,即拥有者可读可写不可执行,群组和其他人只可读
[root@server1 testing]# chmod 600 testing
[root@server1 testing]# ls -l
total 0
-rw------- 1 root root 0 Aug 13 01:19 testing ##将文件的权限改为只有拥有者可读可写
[root@server1 tmp]# ls -ald testing/testing
-rw------- 1 root root 0 Aug 13 01:19 testing/testing ##目录和文件的拥有者和群组都是root
[root@server1 tmp]# ls -ld testing
drwxr--r-- 2 root root 4096 Aug 13 01:19 testing
[root@server1 tmp]#
[root@server1 tmp]# su - test ##切换到普通用户
[test@server1 ~]$
[test@server1 ~]$ cd /tmp/
[test@server1 tmp]$ ls -ld testing/ ##其他人具有读权限,所以可以查看
drwxr--r-- 2 root root 4096 Aug 13 01:19 testing/
[test@server1 tmp]$ cd testing/
-bash: cd: testing/: Permission denied ##其他人没有x权限,所以会提示进入这个目录被拒绝
[test@server1 tmp]$
[test@server1 tmp]$ exit ##退出登陆
logout
[root@server1 tmp]# chown test testing/ ##将testing目录的拥有者改为test用户
[root@server1 tmp]# ls -ld testing/
drwxr--r-- 2 test root 4096 Aug 13 01:19 testing/
[root@server1 tmp]# su - test
[test@server1 ~]$ cd /tmp/testing/
[test@server1 testing]$ ls -l
total 0
-rw------- 1 root root 0 Aug 13 01:19 testing ##可以查看testing文件了
[test@server1 testing]$ rm testing
rm: remove write-protected regular empty file `testing'?
[test@server1 testing]$ ls -l
total 0
-rw------- 1 root root 0 Aug 13 01:19 testing
[test@server1 testing]$ rm testing
rm: remove write-protected regular empty file `testing'? y ##询问是否删除
[test@server1 testing]$ ls -l
total 0 ##test用户可以删除testing文件
[test@server1 testing]$
###########################################################################
四、文件种类与扩展名
1、普通文件:准文本文档、二进制文件、数据格式文件(具有特定格式的文件)
2、目录文件(d)
3、链接文件(l):相当于windows底下的快捷工具
4、设备文件:块设备文件(b,硬盘软盘等)、字符设备文件(c,鼠标键盘等)
5、资料接口文件(s):通常用在网络上的数据承接
6、数据传送文件(FIFO,pipe管道):主要解决多个程序同时存取一个文件造成的错误问题
#######################################################
文件扩展名:
*.sh:脚本或批处理文件
*.Z,*.tar,*.tar.gz,*.zip,*.tgz:经过打包的压缩文件
*.html,*.php:网页相关文件
五、目录结构
1)linux系统结构是倒树型
2)/bin ##binary,二进制可执行文件,即系统命令
/sbin ##system binary,系统管理命令存放位置,仅root用户可执行
/boot ##启动分区,负责系统启动
/dev ##设备管理文件
/etc ##大多数系统管理文件,即系统的配置
/home ##普通用户的家目录
/lib ##library,32位系统库文件存放位置
/lib64 ##library64,64位系统库文件存放位置
/media、/mnt,/run ##系统临时设备挂载点
/opt ##第三方软件安装位置
/proc ##系统信息
/root ##超级用户的家目录
/srv,/var ##系统数据
/sys ##系统管理,主要是关于内核的
/tmp ##系统临时文件存放位置
/usr ##系统用户相关信息数据及用户自定义软件存放位置
3)系统文件路径
绝对路径(absolute paths):文件在系统的真实位置,文件名字以‘/’开头
相对路径(relative paths):文件相对与当前所在位置名字的一个简写,不会以‘/’开头,并名字会自动添加‘pwd’的值
4)有关路径涉及的命令
pwd ##print name of current/working directory,显示当前系统的位置
ls ##list directory contents,列出目标文件
-a ##list all
-l ##列出文件属性
-s ##列出文件大小
-R ##递归列出
-d ##指定目录本身
cd ##change the current directory,进入目标目录
~ ##回到当前用户家目录
~ username ##进入指定用户家目录
.. ##进入之前系统所在目录
.. ##进入当前目录的上一级
touch ##新建文件
mkdir ##建立目录
mkdir -p ##递归式建立目录
cp 被复制文件 目的地
-r ##递归复制
mv 被移动文件 目的地 ##移动文件或重命名
mv 老名字 新名字 ##把test/file移动到当前目录
eg:mv test/file .
rm ##删除
-f ##强制删除文件
-fr ##强制递归删除目录
vim filename ##编辑文件
按i键进入insert模式
文件编辑完成后按esc退出到浏览模式
:wq 进行保存退出
注意:当vim非正常关闭文件时,再次编辑会出现提示,
解决问题:删除隐藏文件.filename.swp
3、通配符
* ##匹配0~任意个字符
? ##匹配任意单个字符
~ ##(the current working home directory)当前用户的家目录File: /home/kiosk/Desktop/study/day02
~user ##匹配到user的家目录
~+ ##匹配到当前工作目录,和‘.’作用相同。
~- ##匹配到当前目录之前所在目录,和‘-’作用相同
[abc] ##有a或b或c
[!abc] ##除了含有a或b或c
[^abc] ##除了含有a或b或c
[[:alpha:]] ##表示单个字母
[[:lower:]] ##表示单个小写字母
[[:upper:]] ##表示单个大写字母
[[:alnum:]] ##表示单个字母或数字
[[:punct:]] ##表示单个字符,除数字、字母、空格之外的符号
[[:digit:]] ##表示数字
[[:space:]] ##表示单个空格
#################################################################33
08/13/2017 02:13:51 AM