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.