首页 > 代码库 > 文件与目录的权限

文件与目录的权限

在修改目录和文件的属性之前先要考虑什么数据是可变的什么是不变的,什么是可变的

当把自己的文件给别人的时候需要修改权限

1文件所有者:文件被用户所有,不同的用户创建的文件的所有者不同.如a用户创建一个文件,这个文件就被a所有。

2.用户:登录系统需要的账户,每一个用户都在/home下有自己的文件夹

3.用户组:当用户被分配到一个用户组时,其中的用户便可以访问别的用户的文件,也就是文件共享.不属于该用户组的便不能访问该文件.(这需要用户自己设置权限)

4.root:可以访问任何文件

5.用户账号信息(含root)都放在 /etc/passwd 文件中

6账户个人密码信息 放在/etc/shadow文件

7.用户组的信息放在/etc/group

8.文件权限: 权限总共有10列  如drwxrwxrwx

可以分为4组 (权限可以分为r读w写x执行 —无权限)

第一列 代表(文件的属性和权限  d 目录 —文件)

第234列 代表(用户的权限)

第567 列代表(用户组的权限)

第8910代表(其他人的权限)

9.目录与文件权限的区别:

文件主要存储的是文件的内容,但目录存放的实际是记录文件名的列表。

文件权限:r代表可以读取文件内容 w代表可以修改文件内容(不可以删除文件)x代表该文件可以被系统执行(但是可不可以执行还是看文件的内容).

注:windos下是根据后缀名判断是否可以执行,但linux下是查看是否有x属性.

目录的权限:r代表可以读取目录结构列表(即只能查看文件名)w代表修改目录结构(增删改目录和文件(改代表改文件名))x代表是否可以进入该目录

注:如果想让别的用户进入目录,至少有rx权限

10.修改权限:chgrp(change group)   改变用户组   (组名必须在/etc/group下存在)

                            Chown(chagne owner)  改变文件所有者(用户必须在/etc/passwd下存在)

                            Chmod(change file mode bit) 改变文件权限

11:命令:

                   Chgrp  [-r]  组名 文件名/目录     -r代表递归(目录下所有文件属性均要变化)

                   Chown  [-r]  用户名 文件名/目录

                   Chown  [-r]  用户名:组名  文件名/目录

                   Chown  [-r]  用户名 .组名  文件名/目录

                   Chmod  2种方法:

                   1数字法 :r代表4  w代表2 x代表1  --代表0 总共是7(rwx)   

                   Chmod [-r] xyz 文件/目录   x y z分别代表 rwx rwx rwx 的和

                   2符号法:u 代表用户 g代表用户组 o代表其他人 a代表所有人(ugo

                   每一个有3个权限(rwx

                   Chmod [-r]  u=rwx,go=rw  文件名  

                   Chmod [-r ]  a+w  文件名  (所有人加上w权限)

12:其他命令:

cp 源  目标  复制的文件属性也会被复制过去所以若想要你的朋友想有文件的权限需要修改该文件的权限 

su – 用户名 切换用户   用exit注销当前账户

13.文件与目录的隐藏权限和默认权限

默认权限:文件一半默认权限为(-rw-rw-rw-)(去掉执行)目录一般默认为(drwxrwxrwx

Umask 是在此基础上设置

查看:umask –S

0022 4组第一组代表特殊权限,第二组用户权限,第3组用户组权限,第4组其他人权限

这里的数字代表的是去掉权限如0022( rwxr-xr-x)一般root的默认权限

如果是普通用户建议是修改 为 umask 002(rwxrwxr-x)(保留用户组的写入)

14.文件的特殊权限:

Suid (set uid):

  1. 1.       当s出现在文件所有者x权限上 ,如(-rwsr-xr-x称为set uid
  2. 2.       功能:执行者将拥有文件拥有者的权限(owner
  3. 3.       限制:只对2进制文件有效,执行者需要有x权限,本权限只在程序执行中有效
  4. 4.       只能用在2进制文件上,不能用在shell script

如:                        

个人认为是权限的暂时转移,当x变成s时代表别的用户可以暂时使用该文件。

Sgid

1.当s出现在用户组的x上时,如(-rwxr-sr-x) 称为 set gid

2.对目录文件都可以操作

3.针对2进制程序有用,

4程序执行者对该文件有x权限

5执行中将会获得该程序用户组的支持。

将会临时变成文件的用户组

Sbit  只有文件所有者才能删除

Suid 4 sgid 2 sbit 1

修改时在权限前面加上即可 如-rwsr-xr-x   chomd 4755

当没x权限是仍要加特殊权限则没有x的地方会变成大写.

 

15.文件的隐藏属性:

Chattr [+-=][ASacdistu] 文件或目录

Lsattr  [-adR] 查看文件的隐藏属性

16.file 查看文件的类型

17which(寻找执行文件在path下) 脚本文件名的查询

18.whereis(寻找特定文件)比which厉害

19.locate [-ir] 关键字

20.find 按照时间查找,按照用户名查找,权限大小,

Find [path] [option][action

Find 路径  -atime 4

Find 路径  -uid  n

Find  path  -name 文件名

Find   path  -type 类型

Find path –perm 权限

 

 

                           

 

文件与目录的权限