Linux学习之文件权限

用户ID(User ID,通常缩写为UID)。

root用户账户是Linux系统的管理员,固定分配给它的UID是0。Linux系统会为各种各样的功能创建不同的用户账户,这些账户叫做系统账户,是系统上运行的各种服务进程访问资源用的特殊账户。所有运行在后台的服务都需要用一个系统用户账户登录到Linux系统上。现在运行在Linux服务器后台的几乎所有的服务都是用自己的账户登录。Linux为系统账户预留了500以下的UID值。

/etc/passwd文件的字段包含了如下信息:

用户登录名:用户密码(被设置成了x):用户账户的UID(数字形式):用户账户的组ID(数字形式):用户账户的文本描述(成为备注字段):用户HOME目录的位置:用户默认的shell。

现在,绝大多数Linux系统豆浆用户密码保存在另一个单独的文件中(叫做shadow文件,位置在/etc/shadow),只有特定的程序才能访问这个文件。

 添加新用户

用来向Linux系统添加新用户的主要工具是useradd,这个命令可以一次性创建新用户及设置用户HOME目录结构。系统默认值被设置在/etc/default/useradd文件中,可以用一下命令查看: /usr/sbin/useradd -D

删除用户 userdel命令

默认情况下,userdel命令只会删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。如果加上-r参数,则会删除用户的HOME目录以及邮件目录,然而系统上仍可能存有已删除用户的其他文件。

修改用户

Linux 提供了一些不同的工具来修改已有用户账户的信息。

 Linux组

组权限允许多个用户对系统中的对象(比如文件,目录或设备等)共享一组共用的权限。每个组都有唯一的GID,还有唯一的组名。/etc/group文件包含系统上用到的每个组的信息。GID在分配时也采用了特定的格式。系统账户用的组通常会分配低于500的GID值,而用户组的GID则会从500开始分配。

/etc/group文件有4个字段:

组名;

组密码;

GID;

属于该组的用户列表,如下所示:

在上述列表中,有些组并没有列出用户,这并不是说这些组没有成员,当一个用户在/etc/passwd文件中指定某个组作为默认组时,用户账户不会作为该组成员再出现在/etc/group文件中。

 不能通过直接修改/etc/group文件来添加用户到一个组,要用usermod命令。在添加用户到不同的组之前,首先得创建组。

创建新组

groupadd命令可在系统上创建新组

/usr/sbin/groupadd shared

创建新组时,默认没有用户被分配到该组。groupadd命令没有提供将用户添加到组中的选项,可以用usermod命令来弥补。

修改组

在/etc/group文件中可以看到,需要修改的组的信息并不多。groupmod命令可以修改已有组的GID(加-g选项)或组名(加-n选项)。修改组名时,GID和组成员不会变,只有组名改变。由于所有的安全权限都是基于GID的,可以随便改变组名而不会影响文件的安全性。

理解文件权限

 默认文件权限:umask命令

umask命令用来设置所创建文件和目录的默认权限。

 第一位是粘着位,代表一项特别的安全性。后面三维表示文件或目录对应的umask八进制值。

 umask值只是个掩码,它会屏蔽掉不想授予该安全级别的权限,要把umask值从对象的全权限值中减掉。对文件来说,全权限值是666(所有用户都有读写权限),而对目录来说,则是777(所有用户都有读,写,执行权限)。

大多数Linux发行版umask通常会设置在/etc/profile启动文件中,有一些是设置在/etc/login.defs文件中。可以用umask命令为默认umask设置指定一个新值。

改变安全性设置

1 改变权限

chmod命令用来改变文件和目录的安全性设置,命令格式: chmod options mode file

mod参数可使用八进制模式或符号模式进行安全性设置,直接用期望赋予文件的标准3位八进制权限码即可。

符号模式的权限,格式:[ugoa...][[+-=][rwxXstugo...]

第一组字符[ugoa...]定义了权限作用的对象,[+-=]表示你是想在现有权限基础上增加权限,还是移除权限或是设置成后面的值。[rwxXstugo...]代表作用到设置上的权限。如 chmod u-x newfile

 改变所属关系

chown命令:改变文件的属主 chown options owner[.grop] file   如:

        chown dan newfile                        改变属主

        chown dan.shared newfile             同时改变属主和属组

        chown .shared newfile                   改变属组

只有root用户能够改变文件的属主,任何属主都可以改变文件的属组,但前提是属主必须是原属组和目标属组的成员。

chgrp命令:改变文件的默认属组

        chgrp shared newfile           用户账户必须是这个文件的属主,除了能够更换属组之外,还得是新组的成员。

共享文件

Linux系统上共享文件的方法是创建组。要想让其他人也能访问文件,要么改变其他用户所在安全组的访问权限,要么就给文件分配一个包含其他用户的新默认属组。

Linux为每个文件和目录存储了3个额外的信息位:

设置用户ID(SUID):当文件被用户使用时。程序会以文件属主的权限运行。

设置组ID(SGID):对文件来说,程序会以文件属组的权限运行,对目录来说,目录总创建的新文件会以目录的默认属组作为默认属组。

粘着位:进程结束后文件还驻留在内存中。

 SGID可通过chmod命令设置,它会加到标准3位八进制之前,或者在符号模式下用符号s。

 

 要创建一个共享目录,使目录里的新文件都能沿用目录的属组,只需将该目录的SGID位置位。所有组成员需要把他们的umask值设置成文件对属组成员可写。组成员就能到共享目录下创建新文件了,新文件会沿用目录的属组,而不是用户的默认属组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值