Linux文件权限与目录配置

文件权限

例如:通过 ll -a 命令查询出当前目录有以下文件

rw-r–r–  1  root  root  24  May  4  18:01  test

第一个字符代表这个文件是目录或文件或链接文件

【-】 则为文件;【d】则为目录;【l】则为链接文件;

【b】 则为设备文件中可供存储的周边设备;【c】 则为设备文件中串行端口设备,例如鼠标、键盘等;

rw- 代表文件拥有者具备的权限;r– 代表用户组内账号具备的权限; r– 代表非此拥有者且没有加入此用户组的其他账号的权限。

1 代表链接数。

root 代表文件拥有者;root 代表文件所属用户组。

24 代表文件大小,默认单位 字节,byte。

May 4 18:01 代表文件最后被修改的时间。

test 代表文件名字。

改变文件属性与权限

chown

改变文件拥有者。前提:用户必须存在于 /etc/passwd 文件中。

常用命令:

chown【-R】用户名 文件或目录 ;-R:进行递归变更,连同次目录下的所有文件都变更;

chown【-R】账号名称:组名 文件或目录 ;可以同时修改所属组。

实例:

#当前目录下有test目录;test目录下有file1文件、mulu1目录;mulu1目录下有file2文件。用户和所属组都为wzy;现将用户和所属组修改为root;经查看,已成功修改。

[root@VM-16-5-centos ~]# chown -R root:root test/

[root@VM-16-5-centos ~]# ll
total 4
drwxr-xr-x 3 root root 4096 Dec 27 23:03 test
[root@VM-16-5-centos ~]# cd test/
[root@VM-16-5-centos test]# ll
total 8
-rw-r–r– 1 root root 7 Dec 27 23:03 file1
drwxr-xr-x 2 root root 4096 Dec 27 23:03 mulu1
[root@VM-16-5-centos test]# cd mulu1/
[root@VM-16-5-centos mulu1]# ll
total 4
-rw-r–r– 1 root root 6 Dec 27 23:03 file2

chgrp

改变文件所属组。

常用命令:

chgrp【-R】组名 文件或目录;-R:进行递归变更,连同次目录下的所有文件都变更;

chmod

改变文件权限。

常用命令:

chmod 对象(u / g / o / a) 赋值符(+ / – / =) 权限类型(r / w / x)

chmod 666 文件或目录

u:用户     g:组     o:其它     a:全部(用户、组、其它)

r:读  4      w:写  2      x:执行 1

文件是实际含有数据的地方,对于文件:

r:可读取此文件的实际内容,如读取文本文件的文字内容等。

w:可编辑、新增、修改、该文件内容(不包括删除该文件)。

x:该文件具有可被系统执行的权限。

目录主要内容在记录文件名列表,对于目录:

r:可读取目录结构列表的权限。

w:可建立新的文件与目录;删除已经存在的文件或目录(不论该文件权限为何);将已存在的文件或目录改名;移动该目录内文件、目录位置。

x:代表用户能否进入该目录。

开放目录给任何人浏览时,至少要给r和x权限。

假设家目录下有以下内容,/dir1/file1、/dir2 针对这三个文件或目录来说分别需要哪些最小的权限完成各项任务。

例题

你的系统有个- -般身份用户dmtsai, 他的群组属于dmtsai, 他的家目录在/home/dmtsai, 你是 root, 你想将你的
~/.bashrc复制给他,可以怎么做?
答:
复制文件:
cp ~/ . bashrc ~dmtsai /bashrc
修改属性:
chown dmtsai :dmtsai ~dmtsai/bashrc

例题:
我想在/tmp底下建立一个目录,这个目录名称为chapter6_ 1,并且这个目录拥有者为dmtsai, 群组为dmtsai, 此
外,任何人都可以进入该目录浏览文件,不过除了dmtsai 之外,其他人都不能修改该目录下的文件。
答:
因为除了dmtsai 之外,其他人不能修改该目录下的文件,所以整个目录的权限应该是drwxr-xr-x 才对!因此 你应该
这样做:
建立目录: mkdir /tmp/chapter6_ 1
修改属性:
chown -R dmtsai:dmtsai / tmp/chapter6_ 1
修改权限:
chmod -R 755 / tmp/chapter6_ 1

文件与目录的默认权限

umask  当前用户新建文件或目录时默认权限。

查询出来的默认值是需要减掉的权限。

建立文件默认最大权限是666;即新建文件的权限是 666-umask

建立目录默认最大权限是777;即新建文件的权限是 777-umask

root用户的umask默认是022

  • 建立文件默认权限644;建立目录默认权限是755;

非特权用户的umask默认是002

  • 建立文件默认权限664;建立目录默认权限是775;

常用命令

[root@VM-16-5-centos ~]# umask

0022

[root@VM-16-5-centos ~]# umask -S

u=rwx,g=rx,o=rx

更改umask默认权限,直接 umask 0022 即可。

持久保存umask

全局设置:修改 /etc/bashrc

用户设置:~/.bashrc

隐藏权限

chattr命令只能用在Ext2/Ext3/Ext4的Linux传统文件系统上。

常用命令

chattr 【+-=】【选项】 文件或目录

查看隐藏权限

常用命令

lsattr 【选项】 文件或目录

  • -a  将隐藏文件的属性也列出。
  • -d  如果是目录,仅列出目录本身属性而非目录内的文件名。
  • -R  连通子目录的数据也列出。

文件特殊权限

例如:/根目录下 /tmp 目录 和 /usr/bin/passwd

drwxrwxrwt. 10 root root 4096 Jan 4 03:50 tmp
-rwsr-xr-x 1 root root 27856 Apr  1  2020 passwd

Set UID(4)

SUID权限仅对二进制程序(binary program)有效;
执行者对于该程序需要具有x的可执行权限;
本权限仅在执行该程序的过程中有效(run-time);.
执行者将具有该程序拥有者(owner) 的权限。

设置在目录上无意义。

命令

chmod u+s 文件

chmod 4xxx 文件

chmod u-s 文件

 注意执行方式的区别

  • bash cs.sh 不需要脚本文件具有执行权限,因为它是由 bash 解释器直接执行。
  • ./cs.sh 需要脚本文件具有执行权限,因为它是作为独立命令由当前 shell 执行。

Set GID(2)

对于文件来说

SGID对二进制程序有用;
程序执行者对于该程序来说,需具备x的权限;
执行者在执行的过程中将会获得该程序群组的支持!

对于目录来说

用户若对于此目录具有r与x的权限时,该用户能够进入此目录;
用户在此目录下的有效群组(ffective group)将会变成该目录的群组;
用途:若用户在此目录下具有w的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此目录的群组相同。

命令

chmod g+s 文件/目录

chmod 2xxx 文件/目录

chmod g-s 文件/目录

Sticky Bit(1)

当用户对于此目录具有w,x 权限,亦即具有写入的权限时;
当用户在该目录下建立文件或目录时,仅有自己与root 才有权力删除该文件。

设置在文件上无意义

命令

chmod o+t 目录

chmod 1xxx 目录

chmod o-t 目录

实例

最后一个权限 7666 ,无论是user 、group 、others都没有执行权限,即大写的S T代表空。

总结

SUID

  • user,占据属主的执行权限位
  • s:属主拥有x权限
  • S:属主没有x权限

SGID

  • group,占据属组的执行权限位
  • s:属组拥有x权限
  • S:属组没有x权限

Sticky:

  • other,占据other的执行权限位
  • t:other拥有x权限
  • T:other没有x权限

FHS目录定义三层目录定义

FHS根据文件系统使用的频繁与否和是否允许使用者随意变动,将目录定义为四种交互作用的形态,下面是具有代表性的目录

可分享的(shareable)不可分享的(unshareable)
不变的(static)/usr、/opt/etc、/boot
可变动的(variable)/var/mail、/var/spool/news/var/run、/var/lock
  • 可分享的:可以分享给其它系统挂载使用的目录,包括可执行文件与用户的邮件等数据
  • 不可分享的:本机上运行的装置文件或与程序文件有关的socket,因仅与自身机器有关,不适合分享给其它主机
  • 有些数据是不会经常变动的,跟随者发行版而不变动。如函数库、文件说明文件、系统管理员所管理的主机服务配置文件等
  • 经常改变的数据。如登录文件、一般用户可自行接收的新闻组等

实际上,FHS针对目录树仅定义三层目录下该放什么数据:

/(root,根目录):与系统、开机等相关。

/usr:与软件安装执行相关。

/var:与系统运作过程有关。

Linux目录结构

红色的是FHS要求必须存在的目录;蓝色的是FHS建议可以存在的目录

/bin存放可执行的二进制文件,常用命令:ls,cd,mv等
/boot存放系统启动时会用到的文件,包括内核文件以及启动选项和启动所需要的配置文件。Linux常用的内核名:vmlinuz。
/dev存放一切设备文件。重要文件:/dev/null(黑洞文件)、/dev/zero(提供无限连续不断的空的数据流)、/dev/loop(挂载镜像文件或把文件作为块设备挂载)、/dev/sd(磁盘)等。
/etc存放系统主要的配置文件。重要文件:/etc/modprobe.d(自动处理可载入模块)、/etc/passwd(用户信息)、/etc/fstab(系统启动时会自动地从这个文件读取信息,并自动将此文件中指定的文件系统挂载到指定的目录)、/etc/issue(在登录前显示的信息)、/etc/opt(存放第三方辅助软件/opt的相关
/lib存放系统启动时会用到的函数库以及/bin或/sbin下面命令会调用的函数库。必须存在:/lib/modules/: 驱动程序。
/media存放可删除的设备。比如:软盘、光盘、DVD等设备。常见文件名:/media/floppy(软盘)、/media/cdrom(只读光盘)
/mnt存放临时挂载的额外设备
/opt存放第三方辅助软件。
/run存放系统启动后产生的各种信息。系统重启时,此目录下文件应被删除。
/sbin存放只有root才能使用的命令,包含启动,修复,还原系统所需要的命令。常用命令:fdisk(MBR磁盘分区命令)、fsck(检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查)、ifconfig(显示或设置网络设备)、mkfs(在特定分区建立Linux系统)等。
/tmp存放各种临时文件
/srv存放网络服务启动后所需的数据
/usr存放Unix软件资源。与软件安装或执行有关
/var与系统运行过程有关。系统运行后会逐渐占用硬盘容量的目录。
/home系统默认的用户家目录。
/lib<qual>存放与/lib不同格式的二进制函数库。
/root系统管理员root家目录
/lost+found使用ext2、ext3、ext4文件系统才会有的目录,当文件系统出错时会把遗失的片段放置在此。使用xfs文件系统的话,没有此目录。
/proc虚拟文件系统,系统内存的映射。这个目录的数据都在内存中,不占任何硬盘空间。重要文件:/proc/cpuinfo(cpu信心)、/proc/dma、/proc/interrupts、/proc/io
/sys虚拟文件系统,主要记录内核与系统硬件信息相关的内容,包括已加载的内核模块与内核检测到的硬件设备信息。不占任何硬盘空间。
/proc/cmdline加载kernel时所下达的相关指令与参数
/proc/cpuinfo本机CPU相关信息
/proc/devices系统各个主要装置的主要装置代号,与mknod有关
/proc/filesystems目前系统已加载的文件系统
/proc/interrupts目前系统上的IRQ(中断请求)分配状态
/proc/ioports目前系统上各个装置所配置的I/O地址
/proc/kcore内存大小
/proc/loadavg系统1分钟、5分钟、15分钟平均负载(top、uptime命令)
/proc/meminfo内存相关信息;包含free的显示结果
/proc/modules目前系统已加载的模块列表;类似驱动程序
/proc/mounts系统已挂载的数据(mount命令)
/proc/swaps交换分区信息
/proc/partitions所有分区的信息(fdisk -l命令)
/proc/uptime系统1分钟、5分钟、15分钟平均负载(uptime命令)
/proc/version系统核心版本(uname -a命令)
/proc/bus/*部分总线的装置
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值