Linux 的文件权限

Linux 是一个多人多任务环境。

一般文件文件可存取的身份分为三个类别: owner/group/others
三个身份各有 read/write/execute 等权限

默认情况下,所有系统上的帐号与一般身份使用者,包括 root 都记录在 /etc/passwd 这个文件内。个人密码在 /etc/shadow 文件下。所有组名记录在 /etc/group 内。

ls -al 查看文件属性(包括隐藏文件和权限)

文件的权限

档案类型:
当为[ d ]则是目录;
当为[ – ]则是文件;
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

chgrp :改变文件所属群组
chown :改变文件拥有者
chmod :改变文件的权限, SUID, SGID, SBIT等等的特性

-R 可以递归
chown [-R] user:group 文件或目录

权限可以用数字或是符号进行权限变更

r:4
w:2
r:1

chmod 777 file 就是 – rwx rwx rwx

chmod 修改权限

[root@www ~]# chmod  u=rwx,go=rx  .bashrc
# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格!
[root@www ~]# ls -al .bashrc
-rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc

权限对文件的重要性:

  • r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
  • w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
  • x (execute):该文件具有可以被系统执行的权限。

关于执行,在Windows底下一个文件是否具有执行的能力是藉由『 扩展名 』来判断的, 例如:.exe, .bat, .com 等等,但是在 Linux 底下,我们的文件是否能被执行,则是藉由是否具有『x』这个权限来决定的!跟档名是没有绝对的关系的!
当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限, 但并不具备有删除该文件本身的权限!对于文件的rwx来说, 主要都是针对『文件的内容』而言,与文件档名的存在与否没有关系喔!因为文件记录的是实际的数据嘛!

权限对目录的重要性:

  • r (read contents in directory):
    表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
  • w (modify contents of directory):
    这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:

    • 建立新的文件与目录;
    • 删除已经存在的文件与目录(不论该文件的权限为何!)
    • 将已存在的文件或目录进行更名;
    • 搬移该目录内的文件、目录位置。
  • x (access directory):
    工作目录对于指令的执行是非常重要的,如果你在某目录下不具有x的权限, 那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r的权限。

本文是阅读鸟哥的 Linux 私房菜—— 第六章关于文件权限部分的一个笔记,写的非常好。终于算是对服务器权限有个整理了。

附上参考链接 第六章、Linux 的文件权限与目录配置
有练习题,对于理解很有帮助。感谢鸟哥的贡献。

发表评论

电子邮件地址不会被公开。 必填项已用*标注