使用者与群组
Linux系统中文件的权限分为三类:文件拥有者、群组、其他人,在默认情况下,任何用户登录系统都需要一个账户,也就是有一个身份,这些记录各个用户信息的文件就保存在 /etc/passwd 这个文件里,个人密码保存在 /etc/shadow 文件里,所有的群组名保存在 /etc/group 中
文件权限
divingkitten@DivingKitten-PC:/etc$ ls -al
总用量 1356
drwxr-xr-x 150 root root 12288 2月 22 20:53 .
drwxr-xr-x 25 root root 4096 1月 14 19:45 ..
drwxr-xr-x 4 root root 4096 8月 28 2018 acpi
-rw-r--r-- 1 root root 2981 7月 31 2018 adduser.conf
-rw-r--r-- 1 root root 9 7月 31 2018 adjtime
drwxr-xr-x 2 root root 16384 8月 6 2019 alternatives
drwxr-xr-x 3 root root 4096 8月 28 2018 apache2
drwxr-xr-x 3 root root 4096 8月 28 2018 apm
drwxr-xr-x 4 root root 4096 8月 28 2018 apparmor.d
通过 ls -al 指令能够查看当前目录下的文件和他们的有关信息,这些信息包括了文件的权限、所属权、最后修改时间等等(文件夹在Linux系统中也被看做“文件”)
- 第一列:文件的类型与权限
-
第一个字母代表文档类型:
-
d : 表示目录
-
- : 表示文件
-
l : 表示连接档
-
b : 表示配置文件里可供存储的接口设备
-
c : 表示装置文件里串行端口设备
-
-
剩下字母表示文档权限:
三个字母一组,分别表示文件拥有者权限、群组权限、其他人权限,其中:-
r : 表示可读
-
w : 表示可写
-
x : 表示可执行
-
- : 表示无权限
-
-
第二列:表示多少档名连结到此node
每个文件的权限和属性都记录在文件系统的 i-node 中, 每个档名都至少会连结到一个 i-node 上,这里表示的也就是有多少个档名连接在当前的 i-node 上。
-
第三列:表示文件拥有者
-
第四列:表示文件所属群组
-
第五列:表示文件容量大小,默认单位bytes
-
第六列:最近修改日期
-
第七列:文档名
改变文件属性和权限
- 改变所属群组 : chgrp
用法:chgrp [选项]... 用户组 示例 用法:chgrp [选项]... 用户组 ...
示例:
chgrp staff /u #将 /u 的属组更改为"staff"。
chgrp -hR staff /u #将 /u 及其子目录下所有文件的属组更改为"staff"。
- 改变文件拥有者 : chown
用法:chown [选项]... [所有者][:[组]] 文件...
示例:
chown root /u #将 /u 的属主更改为"root"。
chown root:staff /u #和上面类似,但同时也将其属组更改为"staff"。
chown -hR root /u 将 /u #及其子目录下所有文件的属主更改为"root"。
- 改变权限 : chmod
三个权限分别可以用一个数字代表:r->4,w->2,x->1,累加起来代表一个角色权限。
四个字母(模式)表示三中角色和全部角色,+、-、= 三个符号代表加入、去除、设定权限。
用法:chmod [选项]... 模式[,模式]... 文件...
或:chmod [选项]... 八进制模式 文件...
示例:
chmod u=rwx,go=rx .bashrc
chmod 777 .bashrc