当前位置:操作系统 > Unix/Linux >>

AIX的许可权限

1.如何查看许可权限

  执行命令 Is -l file_name 或 Is -ld directory-name 会显示不同的数据, 左侧的一个 有10个字符的字串:

  —rwxrwxrwx

  该字符串可分解为3个许可权限集:

  —rwx rwx rwx

  | | |其他用户许可 。

  | |

  | |

  | 把该组作为主组或作为他们组集之一部分的用户许可。

  |

  文件或目录所有者许可

  这些命令同时也显示文件或目录的所有者和用户组 。

  —rwxrwxrwx joe joegroup

  许可 所有者 用户组

  所显示的所有者名称来自 /etc/passwd。文件的inode 存储用户的Id 。如果你看到的是一个数字而不 是名称,这就是说/etc/passwd文件无法读取,或该文件不存在此用户id 。同样,用户组的名称来自/etc/group 文件.

  系统首先检查你是否是所有者;如果是,你会得到所有者的许可权限 ,即使这个许可比 用户群或其他人许可权限集严格。

  然后系统会检查你是否将该组列为主组或组集的一部分。如果是,你会得到组许可,尽管这些 许可限制比其他人许可权限集更严格。

  如果你既不是所有者也不是组集的一部分,你会得到其他人的许可。

  2. 许可权限的字母的意义

  许可权限字母的意思因文件或目录的不同而有区别。读/写目录的权限与读/写目录所指文件的权限无关。

  对于目录,许可权限字母的含义如下:

  r --- 指读目录中文件列表的能力,如ls命令。

  注 :如果只有读目录列表的许可,则不可以在目录内部执行命令。

  x ---目录搜索能力。可以在已知文件名时在目录中执行此文件。一般来说,大多数目录操作都要求读(r)和搜索(x)权限。

  w---同搜索(x)权限共同使用时,在目录中产生或删除文件的能力。如果目录具有写的权限,而没有在文件写的权限,你仍可以删除文件,但不可以修改文件.

  t ---指链接权限。设置链接权限可防止除文件所有者、根用户和目录所有者之外的所有用户删除文件,虽然目录中的权限可能允许删除这个文件。在这种情况下,可为其他人设置搜索(x)位。

  T---同t相同,但不为其他用户设置搜索(x)位。

  s---不适用于所有者。用于用户组 ,它成为组的继承位(sgid,亦称set groupid) 。这个目录中创建的所有文件都与此目录有同样的组。

  S---与s相同,但不为用户组设置搜索(x) 。

  对于文件,许可字母有下列含义:

  r--- 指阅读文件的能力。

  w--- 指修改文件的能力。只有在目录中有写权限时才可以创建或删除文件。

  

  x--- 指执行文件的能力。

  3. 当产生文件或目录时,如何决定性权限?

  用户id(uid)用来设置文件所有者。主组用来设置用户组(除非创建文件的目录有Sgid位设置)。

  umask 可设置初始权限。在命令行中键入umask 命令,查看当前设置 ,如要修改 umask设置,输入umask号码,如:

  umask 022。

  umask 命令不设置文本文件和脚本文件而只在目录中设置执行位。

  如果你创建一个目录或文本文件,可按以下例子设置权限 :

  以umask 022为例 :

  777-022=755

  666-022=644

  执行ls -l,会显示以下权限,(r=4, w=2, x=1)

  目录:rwxr-xr-x

  文本文件:rw-r--r--

  4.如何改变文件或目录的所有者或组?

  chown 和 chgrp 命令用于改变所有者和组。只有根 用户才能改变文件的所有者。 根用户或文件的拥有者可以改变这个文件的组。

  使用Chgrp命令:chgrp (New_group_name) (file_name)

  使用Chown命令: Chown (new_owner) (file_name) 或 chown (new_owner) (file_name)

  5.如何改变文件或目录的权限?

  使用chmod 命令来改变文件或目录的权限.权限可以用字母或数字表示。读 (r) = 4 ,写(w) = 2 ,执行(或搜索)(x) = 1

  这些数字加到一起就得到用于chmod命令的数字.(注意:如果您正在文件或目录中使用ACL,使用数字模式chmod命令会使ACL无效) 。

  如 :所有者权限:读+写+执行= 4+2+1=7

  组 许 可 权 限 : 读 + 写 = 4+2 =6

  其他用户许可权限:阅读=4

  chmod 764 file_name。

  如要设置特殊位如suid(设置用户ID)、sgid和链接数位,chmod命令需要第四个数字。

  suid=4

  sgid=2

  link=1

  如要在前面的例子中加入suid许可,它的命令是:

  chmod 4764 file_name

  如果采用符号模式,首先确定要改变哪个位置所有者[u] 、组[g] ,其他[o] 或所有[a])和要加(+)或减(- )哪些符号。要为所有者增加读和写的权限,可采用以下两种方式:

  chmod u+r u+w (file_name) 或 chmod u+rw (file_name)

  6. ACL

  ACL是对标准权限位的扩展。通过修改分配给个人或组的标准权限,对每个文件或目录进行更精细的控制。对每个组或用户,有3种权限分配情况:

  PERMIT : 准许对文件或目录的特定权限。

  DEMY : 限制对文件或目录的特定权限。

  SPECIFY : 明确地定义文件或目录权限。

  acledit 命令用于建立ACL。首先必须设置文本编辑器.如:export EDITOR=/usr/bin/vi。

  

  然后使用:acledit file_name

  屏幕上将会显示:

  attributes:

  base permissions

  owner (rcunning): rwx

  group (staff): r—

  others: ---

  extended permissions

  disabled

  要设置扩展的权限,将disabled 设置改为enabled:

  extend permissions

  enabled

  使用permit、deny 或specify关键字来定义扩展权限。前面的例子表明只有所有者能对这个文件写操作。组成员能读此文件而其他用户则没有任何许可权限。如果要使用户 joe能够读写这个文件,用以下命令:

  extended permissions

  enabled

  permit rw- u: joe.

  要允许组用户joegroup读这个文件,用以下命令:

  rermit r-- g: joegroup

  你能够通过在同一行中合并多个条目来对权限进行微调。如果只想为pete提供读写权,而他是系统组的一部分,则用以下命令:

  permit rw- u: pete, g: system

  要为几个用户或组增加许可权限,则使用分行命令 :

  permit rw- u: joe

  permit rw- u: pete

  使用 ls -el命令,查看ACL是否已在文件中设置。如ls -el profile命令显示:

  — rwxw--------+

  最后的+表示文件已具 有有效的ACL 。

  注意:使用有数字争议的chmod 命令将使文件或目录的ACL无效。

  7.文件系统和目录安装点权限

  文件系统安装在目录安装点上。安装点和文件系统都有权限。安装点的权限由文件系统创建时所采用的umask设置来决定。

  虽然已安装文件系统的权限优先于安装点的权限,但安装点必须尽可能限制每个人的搜索权限(也就是111)来避免不可预测的结果。记住,安装文件系统后,不能看到安装点上的权限。在检查或改变安装点权限之前,必须卸载(umount )文件系统。

  在创建文件系统时,缺省权限来自基本文件,同时sgid (组 继 承)位被设置。用户的umask不用于文件系统中而只用于基础安装点。

  8.NFS安装文件系统许可

  网络文件系统(NFS)安装在当地目录中。目录安装点在创建网络安装文件系统时建立。安装点在建立时使用当前的umask设置来决定许可权限。

  NFS安装文件系统使用一个叫作nobody的特殊用户id。这个uid一般都是很大的数字,以便使它不会和真实用户id发生冲突。除非NFS服务器在/etc/passwd中有您的用户id(不是文本名) ,否则你在远程安装文件系统时所享有的权限只使用该假用户nobody。如果你的用户id碰巧与远程系统的某个有效id相吻合,你就会成为是由那个所有者创建的所有文件的所有者。这有可能导致无法预见的严重后果。如果你希望能够在远程系统中创建和拥有文件,你的本地系统和服务器系统必须具有与/etc/passwd文件中相匹配的用户(用户名称和相同的id号码)。而且文件系统必须以能够读和写的形式输出。

  

  根用户是一个特殊情况。由于根用户id在所有系统中都是0,如果没有特殊保护,任何安装该文件系统的系统都将成为该服务器系统的根。因此,NFS文件系统的输出必须带有一些主机名称的 根接入,以便使您可以从这些主机名称中要求特殊的根接入。如果文件系统不以这种方式输出,根就成为用户nobody.
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,