热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[转]Linux下的权限问题

转载自:网络1、umask值:它定义了用户新建文件以及文件夹的所具有的权限。这同windows里面的权限继承有点相似。umask的配置etcprofil

转载自: 网络

1、umask值:它定义了用户新建文件以及文件夹的所具有的权限。 
这同windows里面的权限继承有点相似。 
umask的配置/etc/profile 
umask的值的算法:这可能是很多linux爱好者比较迷惑的地方。我在这里就贡献一个我的自己总结的一个算法,有不正确的请大家一起来探讨一下。 
umask的值+chmod文件的值=666 
umask的值+chmod文件夹的值=777 

比如你新建了一个文件,myfile,你的umask的值是022那么这个文件具有的权限是多少乃?是644。哈哈,请注意,凡是具有可执行权限的内容都要使用第二个公式。 

查看umask参数:umask;设置umask参数:umask ***

如果创建文件则预设没有可执行项目, 即只有rw两个项目,就是最大为666分,为: --rw-rw-rw-

如果创建目录,则由于x与是否可以进入此目录有关, 因此预设为所有权限均开放为777分,即:drwxrwxrwx

那么 umask 指定的是『该默认值需要减掉的权限!』因为 r、w、x 分别是 4、2、1 分,所以啰!也就是说,当要拿掉能写的权限,就是输入 2 分,而如果要拿掉能读的权限,也就是 4 分,那么要拿掉读与写的权限,也就是 6 分,而要拿掉执行与写入的权限,也就是 3 分,这样了解吗?请问您, 5 分是什么?呵呵!就是读与执行的权限啦!如果以上面的例子来说明的话,因为 umask 为 002 ,所以 user, group 并没有被拿掉属性,不过 others 的属性被拿掉了 2 ( 也就是 w 这个属性 ),那么由于当使用者:
 
建立档案时:(-rw-rw-rw-) – (--------w-) ==> -rw-rw-r--
建立目录时:(drwxrwxrwx) – (--------w-) ==> drwxrwxr-x

做个测试: 

[root@vbird test]# umask 003
[root@vbird test]# touch test3
[root@vbird test]# mkdir test4
[root@vbird test]# ll
-rw-rw-r-- 1 root root 0 Oct 22 00:03 test3
drwxrwxr-- 2 root root 4096 Oct 22 00:03 test4/

分析: 

(-rw-rw-rw-) - (--------wx)=-rw-rw-r--


2、权限位和修改 
rwx  rwx  rwx 
所有者 所有者所在的组 其他用户 
如果用数字表示,r=4,w=2,x=1。r是读的意思,w是写的意思,x是执行。 

你可以使用命令来修改权限。一般情况下,这个命令只能有root来执行。请注意。 
chmod [参数] [模式] <文件或者目录>; /符号标记模式 

[参数] &#xff0d;c 只有在文件的权限确认改变才进行详细说明 
&#xff0d;f 不输出权限不能改变的文件的错误 
&#xff0d;v 详细说明权限的变化 
&#xff0d;r 改变目录及其子目录的文件的权限&#xff08;比较有用&#xff09; 
[模式] [ugoa] [&#43;-&#xff1d;] [rwxXs] 
u&#xff1a;文件的所有者 
g&#xff1a;所有者所在的组 
o&#xff1a;其他的组 
a&#xff1a;其他的用户 

&#43;&#xff1a;增加 
-&#xff1a;去掉 
&#61;&#xff1a;指定文件的权限 

r&#xff1a;是读的意思 
w&#xff1a;是写的意思 
x&#xff1a;是执行 
X&#xff1a;只有目标文件对某些用户是可执行的火灾该目标文件是目录是才追加X属性。 
t&#xff1a;T位&#xff0c;拒绝删除的权限位 
s&#xff1a;设置SUID,SGID&#xff0c;指拥有这样的权限的可执行程序当某一用户执行的时候拥有属主或者属主所在的组的权限。 

当然&#xff0c;你也可以使用数字来表示权限&#xff0c;用数值请注意了 
XYZ&#xff0c;四个位 
x代表文件的类型&#xff0c;你只有通过mc才能看到。 
y代表SUID,SGID,T位&#xff0c;其中SUID&#61;4,SGID&#61;2,T位&#61;1 
Z代表权限位r&#61;4,w&#61;2,x&#61;1 

比如现在我要修改一个文件的权限&#xff0c;让它的权限为属主拥有所有权限&#xff0c;属主所在的组拥有读和写的权限&#xff0c;其他用户拥有读的权限&#xff0c;并防止其他用户删除我的文件。那么执行 
#chmod 1764 myfile 
用字符表示就是 
#chmod u&#43;rwx,g&#43;rw,o&#43;r,a&#43;T myfile 

3、修改属主和属主所在的组 
使用chown来修改 
比如你要将myfile的属主修改为nicry的&#xff0c;那么请使用 
#chown nicry myfile 
如果你要将文件的属主所在的组改为sohubbs组&#xff0c;请使用 
#chown .sohubbs myfile 
和在一块就是 
#chown nicry.sohubbs myfile 
注意&#xff0c;该命令为root专用。 


参考链接:

http://www.chinaunix.net/jh/4/287192.html

http://www.linuxidc.com/Linux/2008-07/14208.htm

http://www.linuxdiyf.com/viewarticle.php?id&#61;59956

转:https://www.cnblogs.com/DavidYan/articles/2144388.html



推荐阅读
author-avatar
lifetime8_797
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有