| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux学习之文件权限 -> 正文阅读 |
|
[系统运维]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值设置成文件对属组成员可写。组成员就能到共享目录下创建新文件了,新文件会沿用目录的属组,而不是用户的默认属组。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 9:23:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |