CentOS   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了CentOS6.5菜鸟之旅:文件权限详解 一、前言                                 Linux下所有资源、设备均被视作文件来操作,而文件权限则是决定用户可各文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

CentOS6.5菜鸟之旅:文件权限详解 一、前言                                   Linux下所有资源、设备均被视作文件来操作,而文件权限则是决定用户可各文件操作的范围,无论是平时使用Linux,还是写程序均涉及这方面。以下为个人学习的整理,供以后查阅。   二、 三种权限                              1. 普通权限 权限 文件

CentOS6.5菜鸟之旅:文件权限详解

@H_262_20@一、前言                                

@H_262_20@ Linux下所有资源、设备均被视作文件来操作,而文件权限则是决定用户可各文件操作的范围,无论是平时使用Linux,还是写程序均涉及这方面。以下为个人学习的整理,供以后查阅。

@H_262_20@ @H_262_20@二、 三种权限                             

@H_262_20@1. 普通权限

权限 文件 目录
r,读权限 查看文件内容 列出其子目录结构信息(就是可执行ls 目录
w,写权限 配合r权限,则可对文件进行修改删除 配合x权限就可以添加删除和移动内部文件,而删除目录和复制目录内文件则需要配合r和x权限。
x,执行权限 配合r权限,可执行的权限 可以进入该目录和对其下文件作操作(就是可执行cd 目录
@H_262_20@2. 特殊权限

@H_262_20@场景1:用户A在调用程序B时,且程序B需要修改文件C,而用户A无权修改文件C,那么程序B同样将被拒绝修改文件C。

@H_262_20@ 原因:程序将使用调用者(就是用户A)的用户标识去对系统作操作,程序的权限与调用者的权限一致。

@H_262_20@ 需要:让程序使用与调用者无关的用户用户组标识,那么任何调用者执行该程序时均无差异。

@H_262_20@ 解决办法:使用特殊权限SUID和GUID。

权限 文件 目录
SUID @H_262_20@注意:仅对二进制可执行文件设置

@H_262_20@二进制可执行文件会以所有者和调用者的用户标识去执行,也就是拥有两者的权限。

不对目录设置
GUID @H_262_20@注意:仅对二进制可执行文件设置

@H_262_20@二进制可执行文件会以所属组和调用者的标识去执行,也就是拥有两者的权限。

在目录下创建文件、目录等,其所属组与该目录的所属组相同。而不是所有者的用户组了。
@H_262_20@场景2:用户在执行rm -rf 目录/*时,把所有者不是它的文件、目录都误删除了。

@H_262_20@ 原因:认情况下,只要用户拥有某目录的wx权限,则可以删除、剪切该目录下的所有文件、目录,即使该用户对该目录下的文件、目录任何权限都没有。

@H_262_20@ 需求:只删除所有者为自己的文件、目录。

@H_262_20@ 解决办法:使用特殊权限SBIT。

权限 文件 目录
SBIT(stick bit,粘滞位) 不对文件设置 配合wx权限,仅目录的所有者、子目录或文件的所有者和root用户才能删除、移动该目录下的子目录和文件
@H_262_20@ @H_262_20@3. 隐藏权限

@H_262_20@ 共13种,仅在文件系统格式为Ext2+才有效。

@H_262_20@ @H_262_20@三、通过命令了解权限                            

@H_262_20@上一节我们从概念上了解了linux的文件权限的种类,下面通过命令来实干一番。

@H_262_20@1. 查看权限

@H_262_20@输入ls -l就可以查看当前目录下所有文件和子目录的权限信息了。

@H_262_20@假设回显信息为 -rwsr-xr-x1rootroot430540Dec 20 18:27/usr/sbin/passwd,现在逐一分析其内容

@H_262_20@ ①. 首字符-,表示该文件为普通文件

@H_262_20@ -,普通文件

@H_262_20@ d,目录文件

@H_262_20@ l,符号链接

@H_262_20@ c,字符设备文件

@H_262_20@ b,字节设备文件

@H_262_20@ p,先进先出文件

@H_262_20@ s,套接文件

@H_262_20@ ②. 第2~4个字符,表示所有者(owner)的权限

@H_262_20@ ③. 第5~7个字符,表示所属组(group)的权限

@H_262_20@ ④. 第8~10个字符,表示其他用户(other)的权限

@H_262_20@ ⑤. 第11个字符,表示硬链接

@H_262_20@ ⑥. 是文件所有者的用户名称(owner)

@H_262_20@ ⑦. 是文件所属组的用户名称(group)

@H_262_20@ ⑧. 是文件大小,以块为单位,通过ls -lh则会以KB,MB作单位

@H_262_20@ ⑨. 是最后修改日期

@H_262_20@ ⑩. 是文件或目录的绝对路径

@H_262_20@ 从上述内容我们可以得知Linux下的权限角色有三种,分别是所有者(owner)所属组(group)其他用户(other)

@H_262_20@2. 权限表示形式

@H_262_20@ [a]. 符号表示法

@H_262_20@ 普通权限:

@H_262_20@ r,读权限; w,写权限;x,可执行权限。

@H_262_20@ 特殊权限:

@H_262_20@ SUID权限只能设置在②中,s表示二进制可执行文件同时拥有SUID权限和x可执行权限;S表示二进制可执行文件拥有SUID权限但没有x可执行权限。

@H_262_20@ SGID权限只能设置在③中,s表示二进制可执行文件或目录同时拥有SGID权限和x可执行权限;S表示二进制可执行文件或目录拥有SGID权限但没有x可执行权限。

@H_262_20@ SBIT权限只能设置在④中,t表示目录同时拥有SBIT权限和x可执行权限;T表示目录拥有SBIT权限但没有x可执行权限。

@H_262_20@ @H_262_20@ [b]. 数字表示法

@H_262_20@ 数字表示法采用二进制形式计算,八进制形式设置的方式。

@H_262_20@ 二进制形式计算,1代表有权限,0代表无权限:

所有者 所属组 其他用户
SUID SGID SBIT R W X R W X R W X
1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0
@H_262_20@ 然后每三位为一组转为八进制,例如现在二进制形式为100111101101,那么转为八进制则为4755。

@H_262_20@ 然后通过chmod4755文件就可以改变文件的权限,ls -l回显中权限部分则为rwsr-xr-x。

@H_262_20@ 注意:1. 若不设置特殊权限时,我们可以直接省去八进制的第一位数,例如:chmod 755 文件

@H_262_20@ 2. 采用数字表示法设置特殊权限,仅能启动特殊权限,却无法关闭。例如,文件A拥有特殊权限SUID和SGID,执行chmod 0755 文件A,但通过ls -l查看权限依然为rwsr-sr-x。

@H_262_20@ @H_262_20@四、通过符号表示法设置权限                      

@H_262_20@ 通过数组表示法设置权限有时确实不够方便,于是bash为我们提供了符号表示法来设置权限。

@H_262_20@ 设置普通权限

// 为所有者、所属组和其他用户添加执行的权限
chmod +x 文件路径
 为所有者、所属组和其他用户删除执行的权限
chmod -x 文件路径

 为所有者添加执行的权限
chmod u+x 文件路径
 为所属组添加执行的权限
chmod g+x 文件路径
 为其用户添加执行的权限
chmod o+x 文件路径
 为所有者、所属组添加执行的权限
chmod ug+x 文件路径

 为所有者、所属组和其他用户添加写、执行的权限,取消读权限
chmod =wx 文件路径
 为所有者、所属组添加写、执行的权限,取消读权限
chmod ug=wx 文件路径
@H_262_20@ 设置特殊权限

开启、关闭SUID chmod u+s 文件名 chmod u-s 文件 开启、关闭SGID chmod g+s 文件名 chmod g-s 文件 开启、关闭SBIT chmod o+t 文件名 chmod o-t 文件
@H_262_20@ @H_262_20@五、改变所有者、所属组                            

@H_262_20@ 1. 查看用户信息

查看当前用户 whoami 查看当前用户所属组 groups 查看其他用户所属组 groups 用户1 用户2
@H_262_20@ 2. 改变所有者、所属组

@H_262_20@仅root用户才有权限执行下列命令。

改变所有者 chown 用户名 文件路径 改变所属组 chgrp 用户文件路径 改变所有者和所属组 chown 用户名.用户文件路径 递归改变所有者和所属组 chown -R 用户名.用户目录路径
@H_262_20@ @H_262_20@六、管理用户                                    

@H_262_20@1.添加用户

@H_262_20@ 命令:useradd [-u uid] [-g group] [-d home] [-s sHell] 用户名
-u,用户ID,用户ID是给系统使用的,而用户名是给用户使用的,两者是一一对应的关系
-g,用户所属的用户组标识
-d,以已存在的目录作为用户的家目录
-s,定义sHell

@H_262_20@ 示例:

 添加用户标识 garfield
# useradd garfield
@H_262_20@ 并通过查看/etc/passwd、/etc/shadow和/etc/group文件内容,检查用户是否创建成功。具体内容如下

@H_262_20@

@H_262_20@ 注意:在创建用户时,系统会根据/etc/login.defs和/etc/default/useradd文件内容新用户做基本设置。

@H_262_20@ /etc/login.defs文件内容

@H_262_20@

@H_262_20@ /etc/default/useradd

@H_262_20@ SKEL选项是指定用户家目录内容是从`/etc/skel`复制过来的。

@H_262_20@2. 设置密码

@H_262_20@ 命令:passwd 用户名 密码

@H_262_20@3.启用、禁用帐号

禁用 # usermod -L 用户名 启用 # usermod -U 用户名
@H_262_20@启用禁用实质就是在`/etc/shadow`文件中该用户名对应的记录上,在用户密码前删除添加!(感叹号)来实现。

@H_262_20@4. 其他

用户添加用户组 usermod -G 用户组名 用户 改变用户用户 usermod -g 用户组名 用户 修改用户名 usermod -l 新用户名 旧用户 删除用户 userdel 用户名
@H_262_20@ @H_262_20@六、管理用户组                                

添加用户组 groupadd [-g gid [-o]] [-r] [-f] 用户组名 修改用户名称 groupmod -n 新用户组名 旧用户组名 删除用户 groupdel 用户组名
@H_262_20@ @H_262_20@七、用户用户组的配置文件                              

@H_262_20@1./etc/passwd,任何用户都可以读取该文件内容。存放各个用户用户名称、加密后的密码(若操作系统采用了shadow技术,则用加密密码在/etc/shadow文件中,这里用X或\*表示)、用户ID(一个用户ID可以对应多个用户名,每个用户名拥有独立的口令、家目录和sHell,但系统会认为这些用户名是同一个用户。0是超级用户,1~99系统保留,100开始是普通用户认从500建普通用户。整体取值范围是0~65535)、用户组ID(对应/etc/group中的一条记录)、注释性描述字符串、家目录、sHell程序路径<br/>

@H_262_20@用户(psuedousers):sHell程序路径为空或为/sbin/nologin,主要用于方便系统管理、满足相应系统进程对文件属性的要求。

@H_262_20@用户如下:

@H_262_20@  bin,拥有可执行的用户命令文件
  sys,拥有系统文件
  adm,拥有账号文件
  uucp,UUCP使用
  lp,lp或lpd子系统使用
  nobody,NFS使用

@H_262_20@可通过设置"sHell程序路径"为某程序,限制某用户进入系统后仅能执行该程序,程序执行结束则退出系统。

@H_262_20@2./etc/shadow,仅超级用户可以查看和修改,由pwconv命令根据/etc/passwd中的数据自动生成,记录为一对一关系。记录格式为:用户名、加密后的密码(固定长度为13个字符,空则表示没有密码,若含\./0-9A-Za-z的字符则无法登录)、最后修改密码的时间(以距离1970年1月1日的天数来计算)、最小时间间隔(修改密码的最小天数)、最大时间间隔(密码有效天数)、警告时间(从系统开始警告用户修改密码到无法登录的天数)、不活动时间(用户没有登录活动,但账号仍保持有效的最大天数)、失效时间(用户名的有效天数)

@H_262_20@3./etc/group,存放用户名称用户组加密后的密码(空、\*或x表示没有密码)、用户组ID、成员用户名称(成员用户名称间用,隔开)

@H_262_20@ @H_262_20@八、总结                                        

@H_262_20@ Linux的文件权限暂时了解到这里吧,以后继续深入继续补充!

@H_262_20@ 尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/3999224.html^_^肥仔John

@H_262_20@ @H_262_20@九、参                                        

@H_262_20@http://blog.csdn.net/fan_zhen_hua/article/details/2050009 http://blog.csdn.net/xsz0606/article/details/5256719 http://blog.chinaunix.net/uid-20671208-id-3488852.html http://www.cnblogs.com/huangzhen/archive/2011/08/22/2149300.html http://blog.csdn.net/liqfyiyi/article/details/7742775 http://os.51cto.com/art/201003/187591.htm http://os.51cto.com/art/201003/187572.htm

大佬总结

以上是大佬教程为你收集整理的CentOS6.5菜鸟之旅:文件权限详解 一、前言                                 Linux下所有资源、设备均被视作文件来操作,而文件权限则是决定用户可各文件全部内容,希望文章能够帮你解决CentOS6.5菜鸟之旅:文件权限详解 一、前言                                 Linux下所有资源、设备均被视作文件来操作,而文件权限则是决定用户可各文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。