Linux文件权限与目录管理详解

一、Linux文件系统的三种身份

1)、文件所有者
2)、同组用户
同一个用户组的用户可以访问该用户组的文件;
每个账号可以加入多个用户组。
在同一个用户组的文件也可以设置不同的权限,可以不让本组用户查看。
3)、其他人
除了文件主、同组用户以外的人就是其他人。
PS: /etc/passwd 记录所有用户的账号
/etc/shadow 记录所有用户的密码
/etc/group 记录所有的组名

二、文件属性

ls -al 显示所有的文件名和相关属性(包括以.开头的隐藏文件)

total 72
drwxr-xr-x+ 28 chaibozhou staff  952 4 23 08:08 .
drwxr-xr-x  5 root    admin  170 4 13 21:24 ..
-r--------  1 chaibozhou staff   9 3 21 12:00 .CFUserTextEncoding
-rw-r--r--@ 1 chaibozhou staff 10244 4 23 11:25 .DS_Store
drwx------  5 chaibozhou staff  170 4 23 14:13 .Trash
-rw-------  1 chaibozhou staff  3205 4 23 16:37 .bash_history
drwxr-xr-x  6 chaibozhou staff  204 4 4 15:51 .config

第一列:文件的类型和权限
d:目录文件
-:普通文件
l:链接文件
b:用于存储数据的设备文件
c:用于传输数据的设备文件:鼠标、键盘

接下来都是三个字符为一组,分别表示文件所有者的权限、同组用户的权限、其他用户的权限,而且r、w、x的顺序是固定不变的。

第二列:有多少文件名连接到此节点

第三列:这个文件/目录的所有者账号
第四列:这个文件所属的用户组
第五列:这个文件的大小,单位是B
第六列:这个文件的创建日期或修改日期
若想要现实完整的日期时间,可以在ls上加上参数:ls -l –full-time
PS:在Linux的命令中,如果参数以-开头,则表示后面的参数是简写;如果以--开头,则表示后面的参数是完整的。这里的full-time就是一个完整的参数。
PS:如果当初使用中文安装Linux的话,显示完整的日期应该会以中文显示,但中文无法在命令窗口中显示,此时就会出现乱码,此时只能设置一下,让日期用英文显示:LANG=en_US
第七列:文件名

三、Linux权限的重要性

1、保护系统文件的功能
通常系统文件只有root管理员才有读、写、执行的权限。
2、为团队开发提供数据共享的功能
同一个开发团队可以设置成同组用户,从而能够共享文件。

四、改变文件属性与权限的命令

1、chgrp:改变文件所属的用户组
chgrp [-R] 新用户组 目录或文件 : 将这个路径下的文件的用户组改成“新用户组“
PS:这个新用户组一定得是/etc/group下有的,否则会报错。
PS:若最后一个参数是目录,则表示只将这个目录下的文件的用户组改成这个。
PS:-R表示若最后一个参数是目录,则将当前目录下的文件连同子目录下的所有文件的用户组都改成这个。
2、chown:改变文件主
chown [-R] 用户名 文件或目录 : 将这个目录下的所有文件的文件主都改成这个用户名。
PS:这个用户名必须是/etc/passwd下有的才行。
这个命令可以既修改文件主又修改用户组:chown [-R] 用户名:用户组名 目录/文件
chown [-R] 用户名.用户组名 目录/文件
PS:由于用户名可以存在小数点,当出现含有小数点的用户名时,系统会发生误判,所以我们一般都使用:来连接用户名和用户组名。
还可以仅修改用户组名:chown [-R] .用户组名 目录/文件
什么时候需要改变文件的文件主和用户组?
当我们把一个文件拷贝给别人的时候,假设这个文件只能文件主读取,由于拷贝会把文件的权限和所有的属性都一同复制,那么当另外一个人拿到拷贝后的文件后仍然无法访问;所以在拷贝完成之后,第一个人应当修改文件的属性和权限。

cp  原目录/原文件  新目录/新文件
1、chmod:改变文件的权限
改变文件的权限有两种办法,分别是:用数字进行权限的修改、用符号进行权限的修改。
a)用数字进行权限的修改
前面我们已经知道,权限有9个字母组成,并且每三个为一组,分别表示:文件主的权限、同组用户的权限、其他人的权限。在这种方式中,r=4、w=2、x=1,将每一组的三个值加起来,组成一个三位数即可。例如:
文件主:rwx = 4+2+1=7;
同组用户:rwx=4+2+1=7;
其他人:---=0+0+0=0;
所以命令如下:

chmod [-R] 770 文件/目录

b)用符号进行权限的修改
chmod  u/g/o/a  +/-/=  r/w/x  文件/目录
例子:文件主能够读、写、执行;同组用户和其他用户能够读、执行。
chmod  u=rwx,go=rx  文件名
假设原先不知道文件的属性,现在只想让所有的人能够执行这个文件,则:
chmod  a+x  文件/目录
假设原先不知道文件的属性,现在只想让同组用户和其他用户无法写,则:
chmod  go-w  文件/目录
目录与文件权限的意义

一个文件具有rwx,仅仅表示用户可以对这个文件内容进行读、写、执行,即读取文件内容、向文件中写入内容、执行文件。但并不具备删除这个文件的权限。

一个目录具有rwx:
r:表示具有读取目录结构的权限,也就是我可以通过ls这个命令来查看目录的结构,但是,我是无法通过cd进入到这个目录下的。
w:表示具有更改目录结构的权限,即能够创建/删除/重命名/移动文件/目录。
x:表示某一用户能够通过cd进入到这个目录下。
PS:一个目录是否有x权限是非常重要的,如果没有x权限,表示不能进入到这个目录下,也就是不能执行这个目录下的所有程序。例:有一个目录文件如下

drwxr--r--  3  root  root  4096  日期  .ssh
这个目录文件的同组用户和其他用户只能通过ls查看目录的结构,不能cd到这个目录中去,也不能执行这里面的所有程序。

在架站时,要将服务器中的一些资源给外界访问,但如果一个目录只开放了r权限,那么只能ls这个目录的结构,却不能进入到这个目录中访问里面的数据。若要把目录中的数据开放给别人浏览的话,至少要开放r和x权限,但w权限不能轻易开放。例如:

假设有个账号user1,她的主文件夹是:/home/user1,user1对此目录文件具有rwx权限,在这个文件夹下有一个data文件,权限如下:-rwx—— 1 root root ……,则:
user1对于这个文件来说属于其他用户,不具备任何权限;但是对于这个文件夹来说,具有rwx,能够通过ls查看文件夹的目录结构,能够通过cd进入该文件夹,能够在这个文件夹下创建、删除、重命名、移动文件。

使用root账号在/temp下创建一个目录/dir,该目录的权限为744;再在/dir下创建文件test。
分析:对于dir这个目录,文件主rwx,同组用户和其他用户只能r;即:文件主能够ls这个目录结构,能够cd到这个目录,能够在这个目录中创建、删除、重命名、移动文件;而同组用户和其他用户只能ls这个目录结构。
PS:创建目录:mkdir 目录名
PS:创建空文件:touch 文件名

#用root身份进行以下操作
cd /temp
mkdir dir
chmod 744 dir
touch dir/test
chmod 600 dir/test #对于这个文件,文件主4+2:读和写,同组用户和其他用户啥也不能干
#现在切换身份至chai
su - chai #切换身份的命令:su - 用户名
cd /temp
ls -l dir #现在身份是chai,对于这个目录来说,是其他用户,那么只有r权限,也就是只能ls这个目录的结构,无法cd到这个目录中去
cd dir #直接报错:permission denied
exit #退出到刚才的身份
chown chai /temp/dir #将dir这个目录的文件主改为chai,此时chai具有rwx权限
cd /temp/dir #此时chai可以cd到dir中,可以在dir中创建、删除、重命名、移动文件
rm test #删除test文件

五、Linux文件种类

普通文件-
1. 纯文本文件
可以通过cat /chai来查看chai这个普通文件。
2. 二进制文件
Linux中的可执行文件(scripts和文字批处理文件不算)。
刚才的cat就是二进制文件。
3. 数据格式文件
就是程序运行时会被读取的具有特定格式的文件,如配置文件。
例如:用户在登陆Linux时,登陆日志会被记录在/var/log/wtmp这个文件中,这个文件就是一个数据格式文件。
PS:数据格式文件要用last去读,若用cat读会出现乱码。

目录文件d

连接文件l
就是Windows下的快捷方式。

设备文件
1. 块设备文件b
用于存储数据的设备文件,如:硬盘、软盘。
2. 字符设备文件c
用于数据传输的设备文件,如:键盘、鼠标。
3. 套接字s
这个设备文件在/var/run中。
4. 管道p
用于解决多个程序同时访问一个文件所造成的错误问题。

六、Linux扩展名

Linux并没有扩展名,一个Linux的文件是否可以执行,取决于这个文件的属性中是否有x这个权限。
但是为了增强文件的可读性,我们还是给文件增加了“扩展名“。
*.sh表示脚本或批处理文件。
*Z、*.tar、*.tar.gz、*.zip、*.tgz他们都是压缩文件。
PS:从网上下载的文件的权限是有可能发生改变的,所以当我们下载的文件无法运行时查看一下它的权限是否有x。

七、Linux对文件的限制

Linxu默认采用Ext2/Ext3文件系统,对文件名的长度限制为:
单个文件名或目录名最大长度255个字符;
完整的文件或目录名最大长度为4096个字符。
文件命名时要避免一些特殊字符。

八、Linux目录配置标准

由于开发Linux distribution的厂商非常多,所以要对这些厂商开发的文件系统规范化,因此就出现了文件系统配置规范:Filesystem Hierarchy Standard=FHS。

FHS对目录规范的四种类型:

1、可分享的目录
表示这个目录可以分享给网络上的其他主机挂载使用。
2、不可分享的目录
只能在自己机器上运行的设备文件或者与程序有关的socket文件,由于只与自己的机器有关,所以自然就不能分享给其他主机了。
3、不变的目录
不管什么样的distributions,这些目录是固定不变的,而且目录里面的文件数据基本不发生变化。一般这些目录中存放函数库、系统配置文件等。
4、可变的目录
这些目录中文件的数据一直会发生变化,如日志文件。
根目录是整个系统最重要的目录,其他所有的饿目录都是由根目录衍生而来的,同时根目录也与开机、还原、系统修复等操作有关。

FHS建议:根目录要足够的小,而且应用程序不要和根目录放在同一个分区中。

FHS建议根目录下必须要有这些目录:
- /bin:在bin目录下的命令可以被所有账号使用,一般的命令是:cat、chmod、chown、date、mv、mkdir、cp、bash
- /boot:放开机会用到的文件
- /dev:任何设备都是以文件的形式存放在这个目录当中
- /etc:系统主要的配置文件都放在这个目录中。这个目录下的文件属性是可以给一般用户查阅的,但只有root才可以修改,FHS建议:这个目录下不要放置可执行文件。
- /home:系统默认的用户主文件夹。
~表示当前登陆用户的主文件夹
~chai表示指定用户的主文件夹
- /lib:存放开机时用到的库函数及/bin、/sbin目录下的命令会使用到的库函数。
- /media:放置可删除的设备文件。如:软盘、光盘。
- /mnt:如果要临时挂载一些额外的设备就放在这个文件夹下。
- /opt:放置第三方软件的目录
- /root:系统管理员的主文件夹
- /sbin:放置开机过程中需要的,包括开机、修复、还原系统所需要的命令
- /srv:是service的缩写,存放网络服务所需的一些数据。
- /tmp:一般用户执行程序暂时存放数据的地方。任何人都可以访问,所以要定时清理一下。FHS建议distributions开机时要将这个目录清空。

其他重要的目录:
- /lost+found:使用ext2/ext3文件系统才会产生的一个目录。当文件系统发生错误时,一些丢失的片段就会放在这个目录中。
- /proc:是一个虚拟文件系统,也就是它的数据都是存放在内存中的,不占用硬盘空间。
- /sys:也是一个虚拟文件系统,记录内核相关信息。

开机的时候只有根目录被挂载了,其他的目录所在的分区都是在系统启动完成之后才被挂载的。因此与开机过程有关的目录就必须要和根目录放在同一个分区中。必须与根目录放在同一个分区中的目录有:

/etc:配置文件
/bin:重要的执行文件
/dev:所需要的设备文件
/lib:执行文件所需要的库函数与内核所需要的模块
/sbin:重要的系统执行文件

/usr目录
=UNIX Software Resource,是操作系统关键资源放置的目录。
FHS建议:所有软件开发者都应将数据放置在这个目录的子目录下,而不要自行创建独立的目录。
这个目录就相当于Windows下的c:\program files。

/var目录
/usr放置安装程序时所需要的较大容量的文件,而/var下存放在程序执行过程中渐渐才会占用硬盘的目录。如:缓存、日志等。

每一个目录不只能挂载本地的文件系统,还可以使用网络上的文件系统。可以利用Network File System服务器=NFS服务器来挂载网络山的指定目录。

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • linux文件上传,给文件或目录添加apache权限的方法

    在LAMP环境中,测试一个简单的php文件上传功能时,发现/var/log/apache2/error.log中出现如下php警告: 1. [Tue Jan 31 09:40:27 2012] [error] [client 127.0.0.1] PHP Warning: move_uploaded_file(/home/leotody/32883679.jpeg): failed to open stream: Permission denied in /var/www/upload_file

  • Linux 下目录文件权限(命令)的查看和修改

    Linux 下目录文件权限的查看和修改 在我的服务器下面有这几个文件夹 同时用ls -l也可以查看到这几个文件的权限. 看其中的assets文件一共有十位数,其中: 最前面那个 - 代表的是类型 中间那三个 rwx 代表的是所有者(user)拥有的权限 然后那三个 rwx 代表的是组群(group)拥有的权限 最后那三个 rwx 代表的是其他人(other)拥有的权限 r 表示文件可以被读(read) w 表示文件可以被写(write) x 表示文件可以被执行(如果它是程序的话) -表示相应的权

  • 简析Linux中如何改变文件或目录的访问权限

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

  • Linux 文件和目录权限详细介绍

    Linux文件和目录权限解读 如何设置Linxu文件和目录的权限 字符表示法   1)ls -l:查看所在目录所有文件的权限 2)chmod u=r file:把file文件的当前(用户user)的权限赋值为可写模式 3)chmod g=wrx file:把file文件的当前(组gruop)的权限赋值为可写,可读,可执行模式 4)chmod g-x file:把file文件的当前(组group)的权限减去可执行模式 5)chmod o+w file:把file文件的当前(所有人other)的权限

  • linux修改目录和文件权限的简单命令解释

    今天遇到的问题,如何一个用户如www的权限复制给我的用户? 目录的权限表示:dwrxr--r-- 其中第一个字符 d代表目录, -代表字符 w代表可写,r代表可读 x代表可执行 数字为4,2,1其中第一组是文件或者目录所有者权限,第二组代表当前用户所在用户组,第三组是其他用户组的权限所以控制文件的权限是精确到组的 用 chmod 权限 目录 复制代码 代码如下: chmod 777 testchmod u+w test

  • linux文件目录默认权限(详解)

    1.文件的默认权限是没有x的,即文件的最大默认权限为666(-rw-rw-rw) 2.由于进入目录和目录的x权限有关,故目录的最大默认权限为777(drwxrwxrwx) 查看默认权限需要使用umask命令: [123@123 ~]$ umask           //数字方式显示 0022 [123@123 ~]$ umask -S        //符号方式显示 u=rwx,g=rx,o=rx以数字范式显示有4个数字,只看后3个即可,第一个为特殊权限使用 [123@123 ~]$ touc

  • 详解Linux系统中设置SFTP服务用户目录权限的方法

    前言 在工作或者学习的时候,我们常常会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加.修改.删除操作,并且只能使用sftp登录服务器,不能用ssh操作.这些可以通过配置sftp服务实现. 方法如下 提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下: 1.创建新用户ui,禁止ssh登录,不创建家目录 useradd -s /sbin/nologin -M www 2.设置用户密码 passwd www

  • linux下建站目录分配权限的经验技巧总结

    前言 在网上搜索网站文件夹权限配置一般都是是: 文件夹权限最小权限755 文件最小权限644 文件的可读可写可执行很容易理解,但文件夹的权限就需要好好梳理梳理啦,下面是自己的一些经验分享给大家,需要的一起来看看详细的介绍: 前期工作 先创建一个文件夹 test mkdir test 在该目录下创建一个1.txt文件并写入111 cat > 1.txt 111 现在退出该目录来一个一个分析改目录权限 不要用root用户来创建文件夹,因为文件权限配置对root用户无效 目录的可执行权限 chmod

  • Linux中文件权限目录权限的意义及权限对文件目录的意义

    linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括增加删除文件的具体内容: x:文件就具有了可执行的权限-------注意:这里和window不一样,在win中,文件的可执行权限是通过扩展名表现出来的,如exe.bat等,但是在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系. 二.目录权限的意义 r:可以查看此目录下的完整文件列表信息. w:可以对此目录下的所有的文件及目录进行相关的更改,也就是可以更改这个

  • Linux文件权限与目录管理详解

    一.Linux文件系统的三种身份 1).文件所有者 2).同组用户 同一个用户组的用户可以访问该用户组的文件: 每个账号可以加入多个用户组. 在同一个用户组的文件也可以设置不同的权限,可以不让本组用户查看. 3).其他人 除了文件主.同组用户以外的人就是其他人. PS: /etc/passwd 记录所有用户的账号 /etc/shadow 记录所有用户的密码 /etc/group 记录所有的组名 二.文件属性 ls -al 显示所有的文件名和相关属性(包括以.开头的隐藏文件) total 72 d

  • Mac中文件权限查看和设置详解

    前言 在 Mac 系统的终端上修改文件权限使用的是 Linux 中的 chmod 命令.本文将给大家介绍Unix.Linux下文件和权限.下面话不多说了,来一起看看详细的介绍吧 举例 # 我们先创建一个测试目录 $ mkdir test && cd test # 创建一个main.txt文件并写入一些内容 $ echo hello world >> text.txt # 再创建一个空目录 $ mkdir js # 查看信息 $ ls -l total 8 drwxr-xr-x

  • Node.js的文件权限及读写flag详解

    一.文件权限的数字类型 用数字来代表各个权限,各权限的分数对照表如下: r: 4 w: 2 x: 1 文件的基本权限有9个,分别是owner.group.others三种身份各有自己的read.write.execute权限.例如文件的权限字符为"-rwxrwxrwx"这9个权限是三个三个一组的.每种身份(owner.group.others)各自的权限(r.w.x)分数是需要累加的. 例如,当权限为[-rwxrwx-]时,分数则是: owner = rwx = 4 + 2 + 1 =

  • oracle用户权限、角色管理详解

    Oracle 权限设置 一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权限管理: 1.系统权限分类: DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构. CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构.

  • 一天一个shell命令 linux文件操作系列-ln命令详解

    里提示一下:ubuntu的翻译很多都是字面直译,存在很多问题,所以建议大家参照我这里的解释.当然本来也是有些赶文的嫌疑,望指正. 经常在linux上操作,有在不同的目录下切换某几个固定的命令,或者修改几个固定的文件,这时候,如果能在一个目录下就操作他们,会是一件多么轻松的事情.我们来看看链接命令ln 全称 ln 全称是link 顾名思义,这是一个建立一个链接.怎么去理解呢?它的功能类似于Mac OS的别名或者Windows的快捷方式, 删除不会影响文件本身. 说明:(直接看看斜体,就行了) 链接

  • 关于linux中系统输入输出的管理详解

    系统中输入输出的管理 1.理解系统的输入输出 linux系统中,1表示正确输出,2表示错误输出 2.管理输入输出的符号 (1)输出重定向(输出到指定的位置) > ##重定向正确输出 2> ##重定向错误输出 &> ##重定向全部输出 注意:以下实验应在普通用户中完成 find /etc/ -name passwd > file1 ##定向正确输出到file1(会显示未放到文件里的错误输出) find /etc/ -name passwd 2> file2 ##定向错误

  • Linux备份及恢复及Linux文件权限详解

    Linux备份及恢复及Linux文件权限详解 概述 一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏.在日常管理中,我们有许多工具可以用来备份文件权限,如cp.rsync.etckeeper等.如果你使用了这个备份工具,那么你的确不需要担心改变的文件权限问题. 但如果只是想暂时备份文件权限(而不是文件本身),例如:为了阻止一些目录的内容被覆盖暂时移除该目录下所有文件写的权限:或是正在排除文件权限问题的过程中需要对文件进行ch

  • linux系统之进程管理详解

    目录 1.进程与线程的概念 2.什么是进程管理 3.进程管理的作用 4.Linux进程的几种状态 5.进程与线程的关系 (1)线程与进程的关系 (2)总结 1.进程与线程的概念 来源百度百科: 进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. 在当代面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述,进程是程序的实体.是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和

  • vmware 实现linux目录映射window本地目录图文详解

    ---恢复内容开始--- 背景: 1,使用lnmp环境 2,代码可以在windows上面写,直接映射到linux的lnmp环境下面 第一步: vmware 新建一个linux虚拟机 一路下一步到完成 第二步: 安装镜像(自己去下载一个linux的镜像) 然后确认 ,然后重新客户机 然后一路next(语言可以选中文) 直到这一步 给linux设置密码 然后一路next,确认所有修改 第三步: 进入linux系统配置网络 修改下图路径中的文档(onboot改成yes) 修改完保存 重启网络 第四步:

  • Linux ftp 命令行中下载文件get与上传文件put的命令应用详解

    介绍:从本地以用户anok登录的机器192.168.0.16上通过ftp远程登录到192.168.0.6的ftp服务器上,登录用户名是peo.以下为使用该连接做的实验. 查看远程ftp服务器上用户peo相应目录下的文件所使用的命令为:ls,登录到ftp后在ftp命令提示符下查看本地机器用户anok相应目录下文件的命令是:!ls.查询ftp命令可在提示符下输入:?,然后回车. 1.从远程ftp服务器下载文件的命令格式: get  远程ftp服务器上当前目录下要下载的文件名  [下载到本地机器上当前

随机推荐