【Linux学习】权限及用户所有者管理

权限、所有者和ACL

文件和目录权限说明

在Linux系统中,用户对一个文件或目录具有访问限制,这些访问权限决定了谁能访问。通过设置权限可以限制或允许以下三种用户访问:文件的用户所有者(属主)、文件的组群所有者、系统其他用户。
每一位用户都有对文件或目录的读取、写入和执行权限。

  • r(读取):文件:具有读取文件内容权限;目录:具有浏览目录权限
  • w(写入):文件:具有新增、修改文件内容的权限;目录:具有删除、移动目录的权限
  • x(执行):文件:具有执行文件的权限;目录:具有进入目录的权限

例:
-rwx–r--:用户所有者具有读取、写入和执行,其他用户具有读取权限
-rw-rw-r-x:用户所有者和组群所有者具有读取、写入权限,其他用户只具有读取和执行权限。

文字设定法设置权限-不常用

chmod [操作对象] [操作符号] [权限] [文件|目录]
操作对象:u:用户所有者、g:组群所有者、o:其他用户、a:标示所有用户
操作符号:+:添加权限、-:取消权限、=:赋予给定权限
权限:r、w、x

eg:
chmod u+w ah #添加用户所有者对ah文件的写入权限

数字设定法设置权限

r:对应的数值4
w:对应的数值2
x:对应的数值1
-:对应的数值0
eg:
-rwx------:700
-rwxr--r--:744
eg:
chmod 700 1.txt
chomd 470 2.txt
chmod -R 700 /home/user #递归修改

设置文件和目录特殊权限

在Linux系统中,除了基本权限外,还有三个特殊的权限,分别是SUID、SGID和Sticky。

  • SUID:对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的用户所有者来执行。
  • SGID:对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的组群所有者来执行。
    -Sticky:对文件和目录设置Sticky之后,尽管其它用户有写权限,也必须由文件所有者执行删除和移动等操作。
如果要设置特殊权限,就必须要用四位数字才能表示。
SUID:4
SGID:2
Sticky:1
chmod 4000 ah #设置文件ah具有SUID权限
chmod 2000 ah #设置文件ah具有SGID权限

更改用户和组群所有者

chown [选项] [用户.组群] [文件|目录]
-R:递归修改
chown root1 ah #将文件ah的用户所有者改成root1
chown :root1 ah #将文件ah的组群改成root1组群
chown root1.root1 ah #所有者和组群一起改

权限掩码

为了保护文件和目录,可以使用umask命令设置权限掩码, 以取消用户创建文件和目录的默认权限设置(rw),指定掩码在登录系统后一直有效,如果将此命令放入/etc/profile文件,就可以控制用户后续所建文件的权限,umask告诉Linux系统在创建文件或目录时将不设置什么权限,与chmod命令的效果刚好相反。

umask [选项] [模式]
umask 444 #设置权限掩码为444,那么创建文件或目录后的权限就是--w--w--w-。

ACL控制

随着应用的发展,传统的Linux文件系统的权限控制已不能适应现在复杂的控制需求。ACL(访问控制列表)是一个文件或目录的访问控制列表,可以针对任意指定的用户和组群分配任何权限,只有root用户才能创建ACL。

ACL有两种类型:一是存取ACL,针对文件和目录设置访问控制列表。另外一种就是默认ACL,只能针对目录设置访问控制列表。

查看ACL:getfacl命令
getfacl -l /opt/ta

设置ACL:setfacl命令
setfacl -m u:root1:rwx /opt/ta #为用户root1设置ACL,使其对opt/ta文件具有rwx权限

猜你喜欢

转载自blog.csdn.net/a15803617402/article/details/84954237