您现在的位置是:首页 > 文章详情

CentOS文件属性、权限、umask、find

日期:2017-10-29点击:712
任务:2.14-2.27 文件或目录权限chmod,chown,umask,lsattr,chattr,set uid,set gid, stick bit,find
文件的所有者和所属组
 
每一个Linux的目录和文件都有所有者和所属组权限,owner所有者和group所属组。owner,group和非本组的其他用户others分别有各自的权限。用命令ls -l 可以查看目录和文件的权限。例如:
 
-rw-r--r--. 1 root root    0 10月 28 15:36 1.txt
drwxr-xr-x. 2 root root    6 10月 28 15:35 abc
 
第一列,d开头表示是目录,- 开头表示是普通文件,l开头表示是链接,b开头表示是块文件如硬盘,c开头是字符设备文件如键盘鼠标,s开头表示套接字文件在mysql中会用到。
 
后面的九位中每三位是一段,分别表示owner,group和others的权限。r表示可读,w表示可写,x表示可执行。
 
需要特别注意的是,打开目录需要有执行权限,所以系统默认的文件权限为rw-r--r-- ,目录默认权限为rwxr-xr-x ,目录的r权限必须伴随有x权限才真正有意义。
 
为了方便描述,规定rwx分别用对应的阿拉伯数字计算权限,r为4,w为2,x为1,所以文件默认权限为644,目录默认权限是755。
 
chgrp  用来更改所属组。  用来更改目录的所属组时,需要在命令后加上-R 才可以让他的级联子目录和子文件的所属组权限一起更改。
 
chown  用来更改所有者。同时也可以在参数中修改所属组。  用来更改目录的所有者时,需要在命令后加上-R 才可以让他的级联子目录和子文件的所属组权限一起更改。
 
用法示例如下:
 
chown -R user1:group1 dir1 //把目录dir1的所有者更改为user1,所属组更改为group1。
 
chmod  用来更改权限,文件夹的默认权限为755,文件的默认权限为644。使用示例如下:
 
chmod 750 dir1 //更改dir的权限为rwxr-x---
 
umask  umask值是预设所有权限开放时需要减去的权限,如果预设目录的所有权限打开为rwxrwxrwx,文件的所有权限打开为rw-rw-rw-,那么想得到默认权限就是:
 
rwxrwxrwx - ----w--w-=rwxr-x-r-x //目录
rw-rw-rw- - ----w--w-=rw-r--r-- //普通文件
 
umask就是被减去的那个值,此处为022。
 
如果改变umask的值为002,如使用命令umask 002 ,文件和目录的默认权限也会相应的进行改变。
 
chattr, lsattr  chattr用来增减权限,增加权限用+,减去权限用-,常用的权限有i和a:
 
i表示不能写入删除重命名以及设定链接
a表示只能追加不能删除
示例如下:
 
chattr +i dir2 //为目录dir2增加i权限
chattr -i dir2 //为目录dir2减去i权限
chattr +a dir2 //为目录dir2增加a权限
 
lsattr和ls用法相似,用于读取文件或者目录的特殊权限。可选参数有a和R,-a表示隐藏文件一起列出,-R表示连目录内的子文件和文件夹的属性一起列出。
 
set uid,set gid, stick bit  set uid 可以让普通用户在执行二进制文件时临时拥有owner的权限,例如passwd就有这个权限。  使用方法为
 
chmod u+s /usr/bin/ls  //添加s权限
chmod u-s /usr/bin/ls  //去除s权限
 
set gid 与set uid类似,当作用在二进制文件上时,可以让文件在执行阶段具有所属组的权限。当作用在目录上时,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。
 
chmod g+s /usr/bin/ls  //添加s权限
chmod g-s /usr/bin/ls  //去除s权限
 
有时候,set uid上的权限为大写S,这是因为其没有x权限,添加上x权限后即会变成小写的s。
 
stick bit称为防删除位,在权限中用t表示,命令为chmod o+s dir 。一般来说,当文件所在目录拥有写权限时,那么就可以删除文件,但是具有写权限的目录如果加上了t权限,那么就不能删除此目录下的文件。
 
find  which 命令可以查看环境变量PATH中出现的可执行命令的路劲。如which ls 等。
 
locate命令需要先提前安装mlocate然后生成文件列表库后搜索使用。
 
yum install -y mlocate //从yum安装mlocate
updatedb //需要更新文件列表库才能开始搜索
locate ls //查找ls
 
find命令的使用格式为: find [路径] [参数]
 
-atime +n/-n //表示最近访问时间大于/小于n天的文件
-ctime +n/-n //表示最近更改时间(更改内容、权限、链接等)大于/小于n天的文件
-mtime +n/-n //表示最近内容修改时间大于/小于n天的文件
 
find /tmp/dir/ -mtime -1 //表示查找1天内修改过内容的文件
 
以下命令可以查看mtime,ctime和atime:stat
 
通过添加参数-name和-filetype可以搜索指定类型的文件。  filetype包含了f,b, c, d, l, s等类型。
 
find /tmp/ -name test //搜索文件名为test的文件
find /tmp/ d  //搜索类型为目录的文件
 
 

原文链接:https://www.centoschina.cn/command/help/9107.html
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章