用户与用户组
1.文件拥有者(user)
文件拥有者也就是用户,只要设置适当的权限,就拥有对文件查看或者修改的权利。
2.用户组(group)
用户组:几个用户共同构成一个组。在团队协同合作时,每个账号都可以有多个用户组的支持。
3.其他人(others)
对于用户和用户组来说是“其他人”。
- root 在 linux系统中具有最高权限
- 所有的系统上的账号与一般身份用户,以及 root 的相关信息都记录在
/etc/passwd
这个文件中。个人密码记录在/etc/shadow
这个文件中。Linux中所有的组名都记录在/ets/group
中。这三个文件可以说是 Linux 系统里账号、密码、用户组信息的集中地,不能随便删除这三个文件。
Linux 文件权限概念
Linux 文件属性
使用ls -al
来查看所有文件详细的权限与属性(包含隐藏文件,及文件名第一个字符为.
的文件,而ls
命令不会显示隐藏文件)
drwxr-xr-x 6 root root 192 9 25 16:39 .
drwxr-xr-x+ 48 root root 1536 11 1 16:57 ..
-rw-r--r--@ 1 root root 6148 9 25 16:39 .DS_Store
drwxr-xr-x 5 root root 160 9 25 16:39 bin
[ 权限 ][链接][拥有者][用户组][文件容量][修改日期][文件名]
1.第一栏代表这个文件的类型与权限
- 第一个字符代表这个文件是目录、文件或链接文件
- [d] 代表目录,[-] 代表文件,[l] 代表链接文件
- 接下来的字符为三个一组,且均为 [rwx] 的组合,[r] 代表可读(read),[w] 代表可写(write),[x] 代表可执行(execute)。如果没有相应权限的时候,该项会为 [-]
- 第一组代表文件拥有者所具有的权限,第二组代表用户组所具有的权限,第三组代表其他人所具有的权限
2.第二栏表示有多少文件名链接到此节点
3.第三栏表示该文件(或目录)的拥有者账号
4.第四栏表示该文件的所属用户组
- 属于该用户组的用户可以对该文件有相应的权限
Linux 文件系统权限的重要性
- root 基本上是不受系统权限所限制,无论文件权限是什么,默认 root 都可以进行读写
- 团队共同开发软件或是数据共享等功能
如何修改文件属性以及权限
-
chgrp
:修改文件所属用户组 -
chown
:修改文件所属文件拥有者 -
chmod
:修改文件权限
修改所属用户组:chgrp
- 被修改成的组名必须在
/etc/group
-
chgrp [-R] group dirname/filename
:更改某个文件的用户组
修改文件拥有者:chown
- 被修改成的用户者必须在
/etc/passwd
-
chown [-R] owner dirname/filename
:更改某个文件的拥有者 -
chown [-R] owner:group dirname/filename
:同时更改某个文件的拥有者和用户组 - 用途:在用命令进行复制的时候
cp A B
(将A复制给B),而复制又会同时复制执行者属性和权限。这时就可以用chown
来更改相关权限
修改权限:chmod
1.数字类型修改文件权限
- 用数字代表各个权限。r : 4,w : 2,x : 1。
- 每个身份的权限是进行累加的。例如:
owner = rwx = 4 + 2 + 1 = 7
-
chmod [-R] xyz dirname/filename
:xyz 即为三位累加的权限值
2.符号类型修改文件权限
- 用
u、g、o、a
来分别表示user、group、others、all(所有人)
- 用
+、-、=
来分别表示 加入,移除,设置 -
chmod u=rwx,go=rw .bashrc
:修改各项权限 -
chmod a+w .bashrc
:使每个人对该文件各写 -
chmod a-x .bashrc
:拿掉所有人的可执行权限
目录与文件的权限意义
1.对于文件的重要性
-
r
:指可读取该文件的实际内容 -
w
:可以编辑、修改、或新增该文件的内容(但不包括删除该文件) -
x
:指该文件有被系统各执行的权限。文件能否被执行,仅由 [x] 该项来决定,与文件名没有绝对关系。 - 删除文件由目录中的 [x] 权限来决定
2.对于目录的重要性
-
r
:具有读取目录结构列表的权限 -
w
:具有改动该目录结构列表的权限(新建、删除、更名、移动) -
x
:指用户能否进入该目录并使之成为工作目录(可简单理解为能否通过cd
命令进入,也可理解为进入该目录的权限) - 注意:如果在某目录中不具有 [x] 的权限,那么就无法切换到该目录下,无法执行该目录下的任何权限,即使拥有了 [w] 或 [r] 的权限。
- 通常情况下要开放目录,至少要提供 [w] [r]两种权限。
Linux 文件种类名与扩展名
1.文件种类
- 常规文件:第一个属性为 [-]。主要又分为纯文本文件(可使用
cat
打印)、二进制文件(binary file)、数据文件(可使用last
打印) - 目录:第一个属性为 [d]
- 链接文件:第一个属性为 [l]
- 设备与设备文件:与系统周边及存储相关的文件,集中在
/dev
目录下
2.Linux文件扩展名
- 一个文件能否被执行与文件名无关,[x] 仅代表该文件具有可执行的能力,能不能执行成功,要看该文件的内容。
-
.sh
指脚本
Linux目录配置 -- FHS
三个重要目录:
-
/
:root 根目录,与启动系统有关 -
/usr
:与软件安装/执行有关 -
/var
:与系统运行过程有关
四种交互作用形态: - shareable
- unshareable
- static
- variable
1.根目录下比较重要的几个目录
-
/bin
:存放一些可执行文件,以及一些可使用的命令,如cat、chmod、chown、mv、mkdir、cp
等等 -
/etc
:包含了系统主要的配置文件,一般用户只能查看,只有 root 才有权利修改 -
/lib
:启动时会用到的一些库函数,以及在/bin
和/sbin
中的命令调用的库函数 -
/sbin
:包括了启动、修复、还原系统所需要的命令
2./usr
下几个重要的目录
-
/usr/bin
:同/bin
-
/usr/lib
:同/lib
-
/usr/sbin
:同/sbin
,最常见的就是某些服务器软件的服务命令(deamon) -
/usr/local
:用来存放系统管理员下载的一些软件
3./var
下几个重要的目录
-
/var
目录下主要存放一些经常性变动的文件,例如缓存(cache)、日志文件(log file),以及某些软件运行时所产生的的文件。 -
/var/lib
:程序在执行过程中,需要使用的数据文件放置的目录 -
/var/cache
:主要存放程序运行过程中产生的缓存 -
/var/log
:非常重要。存放日志的路径。
绝对路径与相对路径
- 绝对路径:由根目录(
/
)开始写起的文件或目录名,例如/home/dmtsai
。 - 相对路径:对于目前文件名的相对写法,例如
./home/dmtsai
或者../../home/dmtsai
。不是/
开头的都是相对路径。 -
.
:表示当前目录,也可以用./
来表示,例如./main
命令就是执行该目录下的main文件。 -
..
:表示上一级目录,也可以用../
来表示。cd ..
回到上一级目录。