1.文件与目录属性

# ls -l filename###文件属性查看

-rwxr-xr-x.2rootroot     6Oct  2 09:42file

第一列:文件类型和文件权限

如果这一位上有点,那只能证明系统开启过SELinux,或者该文件在开启SELinux之前

就已经存在;如果这一位上面是+号那么可以证明是该文件具有acl权限控制。

第二列:文件副本个数(硬链接数)

第三列:文件所有人

第四列:文件所有组

第五列:大小

第六列:文件最后的访问时间

第七列:文件名

# ls -ld directory###目录属性查看

drwxr-xr-x    3kiosk kiosk33Aug 27 09:47 Documents

第一列:类型和权限

第二列:子目录个数(包括隐藏目录)

第三列:目录所有人

第四列:目录所有组

第五列:目录中的文件大小

第六列:目录中最后一次内容变化时间

第七列:目录名字

关于文件的权限:

强制位与冒险位(suid、sgid、stickty):

(1)suid数字为4

说明:任何用户在执行拥有suid权限的命令时都会以命令用者的身份拥有

添加与去除的方法同添加去除普通选项

chmod  u+s  添加suid权限(往命令上添加)

chmod  u-s  删除suid权限

注:suid作用到可执行文件上,作用到目录上没有意义

(2)sgid数字为2

说明:任何用户在拥有sgid权限的目录下创建的文件都要继承该目录的组

添加与删除方法:

chmod g+s  添加sgid权限

chmod g-s  删除suid权限

注:sgid作用到目录上,作用到文件上没有意义,cp过去的文件也会被作用

(3)sticky:t数字为1

说明:任何用户在拥有t权限的目录下创建的文件,只能该用户删除,其他人无权删除

添加与去除:

chmod o+t 添加t权限

chmod o-t 添加t权限

注:sticky作用到目录上,作用在文件上没有意义

强制位与冒险位同样可以使用数字模式添加或去除;添加和去除的方法为在普通数字权限前加上强制位与冒险位的数字权限。 例如:chmod  4777 cat

关于文件的类型:

-:普通文件

d:文件目录

b:块设备文件

[root@orser ~]# ls -l /dev/sda1

brw-rw----. 1 root disk 8, 1 Apr 25 19:41 /dev/sda1

c:字符设备文件

[root@orser ~]# ls -l /dev/console

crw-------. 1 root root 5, 1 Apr 25 19:41 /dev/console

l:连接文件(软连接)

[root@orser ~]# ls -l /dev/fd

lrwxrwxrwx. 1 root root 13 Apr 25 19:41 /dev/fd -> /proc/self/fd

p:管道文件:确切的说是FIFO(先进先出),也可以说是有名管道,跟管道稍有区别s:套接字文件

注:

(1)块设备与字符设备:

其最大的区别在于是否可以被随机访问,块设备可以被随机访问,字符设备不可以被随机访问。

(2)管道:

管道是一种特殊文件,也可以说是一种特殊的虚拟文件,因为他只是在内存中开辟了一块区域。通过对两个进程的索引节点inode进行关联,使得两个进程间传输。不过管道属于半双工,也就是数据只能流向一个方向。

(3)硬链接与软链接区别:

1)一个文件分别做硬链接和软链接,当删除原文件时,软链接失效而硬链接依然可用。

2)软链接与原文件的inode号不同,而硬链接与原文件的inode号相同

3)硬链接不能跨设备做,而软链接可以

测试软链接和硬链接的区别:

[root@orser orser]# touch link  //创建源文件

[root@orser orser]# ln -s link links  //创建软链接

[root@orser orser]# ln link linkh  //创建硬链接

[root@orser orser]#ls -li  //查看inode号和详细信息

137901 -rw-r--r--. 2 root root 11 Apr 25 23:13 link

138760 lrwxrwxrwx. 1 root root  4 Apr 25 23:14 links -> link

137901 -rw-r--r--. 2 root root 11 Apr 25 23:13 linkh

以上可以看出软链接的inode号与原文件不同,硬链接的inode号与原文件相同

[root@orser orser]# cat link

kkkskdadsf

[root@orser orser]# cat links

kkkskdadsf

[root@orser orser]# cat linkh

kkkskdadsf

[root@orser orser]# rm -f link

[root@orser orser]# cat links

cat: links: No such file or directory

[root@orser orser]# cat linkh

kkkskdadsf

以上可以得出当原文件被删除时,软链接不可用,硬连接可用。

[root@orser orser]# ln -s /home/text linkss

[root@orser orser]# ls -l

lrwxrwxrwx. 1 root root    10 Apr 26 15:17 linkss -> /home/text

[root@orser orser]# ln /home/text linkhh

ln: creating hard link `linkhh' => `/home/text': Invalid cross-device link

以上可以看出软链接可以跨设备,而硬链接不能跨设备

umask默认权限反掩码:

当我们在创建文件或者目录的时候都会有一个默认权限,那么这个默认权限是怎么来的,就是通过umask计算得来的,一般root用户的umask值为022,普通用户的umask值为002。那么系统是怎么通过umask计算出创建文件或目录的权限的呢?(1)创建目录

取得777中每一位的二进制码(111 111 111)

取得umask中每一位的二进制码(000 010 010)

对umask中每一位的二进制码取反(111 101 101)

用777中每一位的二进制码和取反后的umask中每一位的二进制码做与运算(111 101 101)即755.

如果上面的国语繁琐,可以直接使用下列步骤

777=rwxrwxrwx

022=----w--w-

两者相减就是了。

(2)创建文件

和创建目录的算法相同,只不过创建文件是用666与umask做运算。

因为文件默认是不考虑执行权限的,linux系统认为这很危险

测试与SELinux的关系[root@orser orser]# sestatusSELinux status:                 disabled

[root@orser orser]# touch se

[root@orser orser]# ls -l se

-rw-r--r-- 1 root root 0 Apr 26 17:58 se

[root@orser orser]# sestatus

SELinux status:                 enabled

[root@orser orser]# ls -l se

-rw-r--r--. 1 root root 0 Apr 26 17:58 se经过测试发现当SELinux开启时创建文件此位会有点出现;当SELinux关闭时创建文件此位不会出现点,但是当再次开启SELinux时该文件此位置又会出现点。

测试与ACL的关系

[root@orser orser]# touch aclt

[root@orser orser]# ls -l aclt

-rw-r--r--. 1 root root 0 Apr 26 18:33 aclt

[root@orser orser]# setfacl -m user:oracle:--x aclt

[root@orser orser]# ls -l aclt-rw-r-xr--+ 1 root root 0 Apr 26 18:33 aclt

经过测试我们发现当此文件设置了acl权限的时候这一位上变成了+号。

2.文件用户组更改

chown用户名称文件###更改文件所有人

chgrp组名称文件###更改文件所有组

chown -R 用户目录###更改目录本身以及目录中子文件的所有人

chgrp -R 组名目录###更改目录本身以及目录中子文件的所有组

3.权限的识别

<1>#ls -l中2-10字符为文件权限

rwxr-xr-x

用户权限组成员权限其他用户权限

<2>权限种类

r:

r权限针对文件,表示可以查看文件内容

r权限针对目录,表示可以ls查看目录中存在的文件

w:

w权限针对文件,表示可以更改文件的内容

w权限针对目录,表示是否可以删除目录中的子文件或子目录

x:

x权限针对文件,表示是否可以开启文件当中记录的程序

x权限针对目录,表示是否可以进入目录中

# chmod u|g|o+-r|w|x###改权限

u=rwx=7 | g=rwx=7 | o=rwx=7

421

u=rw-=6 | g=r--=4 | o=r--=4###644

r=4,w=2,x=1,-=0

rwx=7,rw-=6,r-x=5,r--=4,-wx=3,-w-=2,--r=1,---=0

练习:

<1>新建用户组:shengchan,caiwu,jishu

<2>新建用户要求如下:

tom是shengchan组的附加用户

harry是caiwu组的附加用户

leo是jishu组的附加用户

新建admin用户,此用户不属于以上提到的三个部门

<3>新建目录要求如下:

/pub目录为公共存储目录对所有用户可以读,写,执行

/sc目录为生产部存储目录只能对生产部人员可以写入

/cw目录为财务部存储目录只能对财务部人员可以写入

# for i in shengchan caiwu jishu;do groupadd $i && echo $i is ok;done

# useradd -G shengchan tom

# useradd -G caiwu harry

# useradd -G jishu leo

# useradd admin

# chmod 777 /pub/

# chgrp shengchan /sc/

# chgrp caiwu /cw/

# chmod 770 cw/

# chmod 770 sc/

# ll -d pub/ sc/ cw/

4.文件默认权限

umask:显示系统预留权限值

# vim /etc/bashrc###71行是普通用户更改,73是超级用户更改

# vim /etc/profile###60行是普通用户更改,62是超级用户更改

# source /etc/bashrc /etc/profile#让更改立即生效

5.特殊权限

stickyid:强制位

o+t:只针对目录,当一个目录上有t权限时,此目录中的文件只能被文件拥有者删除

chmod o+t directory (t=1) <===> chmod 1(777) directory

sgid:粘制位

g+s:针对目录时,在目录中创建的文件都自动归属到目录所在组;针对二进制文件时,文件记录的程序在执行时与执行者的组身份没关系,而是以二进制文件的所有组身份执行的

chmod g+s file | directory <===> chmod 2(777) directory

suid:冒险位

u+s:针对文件,文件记录动作在执行时是以文件所有人身份执行的,与谁发起无关

chmod u+s file <===> chmod 4(777) file

练习:

<1>新建用户组:shengchan,caiwu,jishu

<2>新建用户要求如下:

tom是shengchan组的附加用户;

harry是caiwu组的附加用户;

leo是jishu组的附加用户;

新建admin用户,此用户不属于以上提到的三个部门;

<3>新建目录要求如下:

/pub目录为公共存储目录对所有用户可以读,写,执行,但用户只能删除属于自己的文件;

/sc目录为生产部存储目录只能对生产部人员可以写入,且生产部人员所建立的文件都自动归属到shengchan组中;

/cw目录为财务部存储目录只能对财务部人员可以写入,且财务部人员所建立的文件都自动归属到caiwu组中;

<4>admin用户能用/mnt/touch工具在/sc目录和/cw目录中任意建立文件,但不能删除文件

# for i in shengchan caiwu jishu;do groupadd $i && echo $i is ok;done

# useradd -G shengchan tom

# useradd -G caiwu harry

# useradd -G jishu leo

# useradd admin

# mkdir /pub /sc /cw

# chmod 1777 /pub

# chgrp caiwu /cw/

# chmod 770 /cw/

# chgrp shengchan /sc/

# chmod 770 /sc/

# cp /bin/touch /mnt

# chmod 711 /mnt/touch

# chmod u+s /mnt/touch

[root@localhost ~]# su - admin

[admin@localhost ~]$ /mnt/touch /sc/h1

[admin@localhost ~]$ /mnt/touch /cw/h2

[admin@localhost ~]$ logout

[root@localhost ~]# ls /sc/

h1

[root@localhost ~]# ls /cw/

h2

umask  推算一下建立的目录的默认权限,和创建文件默认权限,学413被这个一下搞混了,今天彻底觉悟了,以下是个人解决方法,希望对各位有帮助

如果umask 为121我们怎样算知道创建默认目录的权限呢? 创建 文件的默认权限的?

目录为: 777

文件为: 666

目录权限为: 777 - 121

rwx  rwx  rwx

|相减|

--x   -w-  --x

|等于|

rw-  r-x  rw

==============================================================================================

文件权限为: 666 - 121

rw-  rw-  rw-          #个人总结:比如: x权限:相减,上面没x下面有x,消掉 ,上面有x,下面有x消掉,上面有x下面没有x,继承

|相减|

--x   -w-  --x

| 等于|

rw-   r--  rw

参考博客:http://blog.itpub.net/29621173/viewspace-1150127/

linux给文件夹腹权限,文件的权限_腹有诗书气自华的技术博客_51CTO博客相关推荐

  1. Linux:centos释放缓存,查看磁盘空间大小,xxx文件夹, 查看文件夹大小,查看剩余内存,查看xxx软件位置,统计某文件夹,统计某文件夹下目录数量,查看文件夹大小,给文件夹下所有的文件赋值权限

    一台老的PHP后台服务器,今天用 free -m 查看,发现内存跑满了. 再 top,然后按下shift+m,也就是按内存占用百分比排序,发现排在第一的进程,才占用0.9%,那是什么占用的呢?谷歌了一 ...

  2. Chmod 提升一个文件夹下所有文件(夹)的权限

    还在为没有权限而发愁吗? 那就狠一点,在一个你想要操作的目录上全部给予权限吧. 首先切换root身份 $su - 运行 #chmod -R 777 目录名 样了. 之后,你用 "ls -l ...

  3. linux如何查询某个关键字所处在哪个文件夹的哪个文件下

    问题:: linux如何查询某个关键字所处在哪个文件夹的哪个文件下 或者 linux如何查询文件夹中的某个文件中的关键字 前提: 你要知道关键字是什么 原理: 在 Linux 中,可以使用 grep ...

  4. linux给文件夹下所有文件授权,Linux 如何将一个文件夹的所有内容授权给某一个用户...

    我们可以使用chown命令,ch这里代表change(改变)的意思,own代表英文单词的owner(拥有者),连在一起就是 change owner ,改变某个文件或者文件夹的拥有者. 一般只有roo ...

  5. linux 压缩当前文件夹下所有文件

    linux zip压缩.压缩当前文件夹下所有文件,压缩为a.zip.命令行的方法是怎样. zip -r fileName.zip 文件夹名 tar tar命令可以用来压缩打包单文件.多个文件.单个目录 ...

  6. Linux下统计当前文件夹下的文件个数、目录个数

    这篇文章主要介绍了Linux下统计当前文件夹下的文件个数.目录个数,本文使用ls命令配合管理.grep命令实现统计需求,需要的朋友可以参考下 1) 统计当前文件夹下文件的个数 复制代码 代码如下: l ...

  7. 服务器内提取文件,linux命令如何提取文件夹内特定文件路径

    linux命令如何提取文件夹内特定文件路径 发布时间:2020-07-20 16:35:25 来源:亿速云 阅读:102 作者:小猪 栏目:服务器 这篇文章主要为大家展示了linux命令如何提取文件夹 ...

  8. linux替换某个文件夹下所有文件,Linux 批量查找并替换文件夹下所有文件的内容...

    1.批量查找某个目下文件的包含的内容 cd etc grep -rn "查找的内容" ./ 2.批量替换某个目下所有包含的文件的内容 cd etc sed -i "s/查 ...

  9. linux du 文件大小排序,du命令 实现Linux 某个文件夹下的文件按大小排序

    1. df -lh 2. du -s /usr/* | sort -rn 这是按字节排序 3. du -sh /usr/* | sort -rn 这是按兆(M)来排序 4.选出排在前面的10个 du ...

最新文章

  1. 测试django_如何像专业人士一样测试Django Signals
  2. 如何做一款成功的APP应用
  3. java五子棋胜负判定_五子棋的判断输赢规则—Java编程(简单优化完整版)
  4. Unable to start activity ComponentInfo{com.first/com.first.Game}
  5. 网易工业级WebRTC应用实践深度解析
  6. python如何关闭multiprocess_python 开启进程两种方法 multiprocessing模块 介绍
  7. opencv3.1.0 交叉编译 H3516a
  8. 教你几招Mac的省电小技巧
  9. rocketmq下单支付场景
  10. C语言指针类型和类型转换
  11. 学习java.awt
  12. 怎么做应力应变曲线_如何用Origin画应力应变曲线
  13. 05 JavaScript框架汇总
  14. 参与百度世界2012 赢百度APP推广大礼包
  15. 一文解析推特上最常见的加密骗局
  16. JVM参数 KV设值类型
  17. 工业机器人码垛教学实施_工业机器人码垛方案设计
  18. selenium 处理多浏览器测试
  19. 网通、电信、教育网IP查询
  20. 7.4 Java(农夫果园【5】:一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果葡萄、草莓、苹果)

热门文章

  1. 【092】召唤神龙-指尖大鱼吃小鱼的魔性游戏
  2. 三种数据交换技术的比较
  3. windows 连接蓝牙耳机失败 解决方法
  4. 为什么技术开发者应该读一读《浪潮之巅》
  5. 新用户域名实名认证教程---金万维
  6. UVALive 6657 GCD XOR
  7. ACCEPTED: waiting for AM container to be allocated, launched and register with RM.
  8. Web功能设计:登录与退出
  9. 案例分析|戴森如何以DTC全渠道营销打造百亿规模增长
  10. 操作系统的概念、功能和目标(操作系统1)