搜索
首页系统教程LINUXlinux 文件授权给用户 Linux 安全性模型:宽为限紧用功,功夫到滞塞通

linux 文件授权给用户 Linux 安全性模型:宽为限紧用功,功夫到滞塞通

宽为限紧用功工夫到滞塞通Linux安全性模型概述

Linux使用User(用户)和Group(组)控制使用者对文件的存取权限,在Linux系统中被创建的用户,可以使用帐号和口令登陆Linux。Linux系统将一切视为文件,每位文件都有owner,但是owner属于某个Group。

这里写图片描述

用户

Linux系统的每位用户都有一个惟一的UserID,User的信息储存在/etc/passwd中,该文件的格式示例如下:

<span class="hljs-symbol">root:</span><span class="hljs-symbol">x:</span><span class="hljs-number">0</span><span class="hljs-symbol">:</span><span class="hljs-number">0</span><span class="hljs-symbol">:root</span><span class="hljs-symbol">:/root</span><span class="hljs-symbol">:/bin/bash</span>

每一位对应的含意为:

用户名:密码:用户ID:组ID:用户全名:主目录:登录<span class="hljs-built_in">shell</span>

在旧的系统中,直接将用户的密码存在第二位。因为/etc/passwd文件所有用户都有读权限,出于安全性考虑,后来的系统将密码单独掏出来储存在了/etc/shadow文件中,而/etc/passwd文件的第二位只用于储存用户是否须要密码,假如用户存在密码,这该位用‘x’标记,倘若是“!”或者为空则说明此用户不能用密码登入

通常情况下只有拥有HOME目录和指定shell的用户能够登入系统。User未经授权将严禁读写或执行其他User的文件。Linux的root用户拥有至高无上的权限,可以无条件的对系统中的所有文件进行访问、修改和删掉。通常不要随意用root登陆并操作系统。

有两个命令可以为Linux操作系统添加新的用户,即useradd和adduser。在root权限下,useradd只是创建了一个用户名,如(useradd+用户名),它并没有在/home目录下创建同名文件夹,也没有创建密码,因而借助这个用户登入系统,是登陆不了的,为了防止这样的情况出现,可以用(useradd-m+用户名)的方法创建,它会在/home目录下创建同名文件夹,之后借助(passwd+用户名)为指定的用户名设置密码。其参数选项如下:

-<span class="ruby">c comment 指定一段注释性描述。
</span>-<span class="ruby">d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
</span>-<span class="ruby">g 用户组 指定用户所属的用户组。
</span>-<span class="ruby"><span class="hljs-constant">G</span> 用户组,用户组 指定用户所属的附加组。
</span>-<span class="ruby">s <span class="hljs-constant">Shell</span>文件 指定用户的登录<span class="hljs-constant">Shell</span>。
</span>-<span class="ruby">u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
</span>
-<span class="ruby">m, --create-home
</span>
如果用户不存在,则创建用户主目录。骨架目录中的文件和目录(可以使用 -k 选项指定),将会复制到主目录。默认上,如果没有指定此选项并且CREATE_HOME 没有启用,不会创建主目录。

可以直接借助adduser创建新用户(adduser+用户名),这样在/home目录下会手动创建同名文件夹而不须要提供任何参数。

userdel命令用于删掉用户,常用的选项是-r,它的作用是把用户的主目录一起删掉。

usermod命令用于更改帐户信息,常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等常用linux系统,这种选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

管理用户(user)的工具或命令:

useradd注:添加用户
adduser注:添加用户
passwd 注:为用户设置密码
usermod注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
pwcov注:同步用户从/etc/passwd 到/etc/shadow
pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger 注:查看用户信息工具
id 注:查看用户的UID、GID及所归属的用户组
chfn 注:更改用户信息工具
su 注:用户切换工具
<span class="hljs-built_in">sudo</span> 注:<span class="hljs-built_in">sudo</span> 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但<span class="hljs-built_in">sudo</span> 能后面直接执行命令,比如<span class="hljs-built_in">sudo</span> 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit 注:和<span class="hljs-built_in">sudo</span> 功能差不多;

linux 文件授权给用户_授权linux文件执行权限_linux授予用户文件权限

用户群组概述

Linux系统的每位User都属于一个Group,具有惟一的标示符gid。Group信息储存于/etc/group中linux 文件授权给用户,且可以为group创建密码,密码储存在/etc/gshadow文件中,并且通常情况下不须要为用户组创建密码。系统会为每位User关联一个和User同名的Group,每位User起码存在于自己同名的Group中,同时User也可以加入其他的Group。在同一个Group中的成员可以共享其他成员的文件。降低一个新的用户组使用groupadd命令。其格式如下:

用法:<span class="hljs-tag">groupadd</span> <span class="hljs-attr_selector">[选项]</span> 组

可以使用的选项有:

-<span class="ruby">f, --force 如果组已经存在则成功退出并且如果 <span class="hljs-constant">GID</span> 已经存在则取消 -g
</span>-<span class="ruby">g, --gid <span class="hljs-constant">GID</span> 为新组使用 <span class="hljs-constant">GID</span>
</span>-<span class="ruby">h, --help显示此帮助信息并推出
</span>-<span class="ruby"><span class="hljs-constant">K</span>, --key <span class="hljs-constant">KEY</span>=<span class="hljs-constant">VALUE</span> 不使用 /etc/login.defs 中的默认值
</span>-<span class="ruby">o, --non-unique允许创建有重复 <span class="hljs-constant">GID</span> 的组
</span>-<span class="ruby">p, --password <span class="hljs-constant">PASSWORD</span> 为新组使用此加密过的密码
</span>-<span class="ruby">r, --system创建一个系统账户
</span>-<span class="ruby"><span class="hljs-constant">R</span>, --root <span class="hljs-constant">CHROOT_DIR</span> chroot 到的目录</span>

假如要删掉一个已有的用户组,使用groupdel命令,其格式为:groupdel用户组。更改用户组的属性使用groupmod命令,其句型为:groupmod选项用户组

假如须要将一个用户添加到某个用户组中,可以采用如下命令:

usermod <span class="hljs-attribute">-a</span> <span class="hljs-attribute">-G</span> 用户组 用户名

参数-a代表append,也就是将用户添加到新用户组中而毋须离开原有的其他用户组,不过须要与-G选项配合使用,-G表示指定用户组。假如仅仅只改变一个用户原有的用户组,则采用如下命令:

useradd <span class="hljs-attribute">-g</span> 用户组

管理用户组(group)的工具或命令:

groupadd注:添加用户组;
groupdel注:删除用户组;
groupmod注:修改用户组信息
groups注:显示用户所属的用户组
grpck
grpconv 注:通过/etc/<span class="hljs-keyword">group</span>和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv 注:通过/etc/<span class="hljs-keyword">group</span> 和/etc/gshadow 文件内容来同步或创建/etc/<span class="hljs-keyword">group</span> ,然后删除gshadow文件;

Linux文件和目录权限剖析1、三种基本权限

(1)r(read)读

针对目录,有读(r)权限就代表能对此目录有列表功能,就是可以执行ls命令进行查看,另外还有cp的功能。针对文件,有读(r)权限就代表能对此文件有阅读功能,可以通过cat等命令查看文件内容。

linux授予用户文件权限_linux 文件授权给用户_授权linux文件执行权限

(2)w(write)写

针对目录,有写(w)权限就代表着在此目录下创建文件和目录,可以通过touch,mkdir等命令创建文件和目录,另外还可以删掉此目录下的文件。针对文件,有写(w)权限就代表着对此文件可以写入新的内容和更改文件内容。

(3)x(execute)执行

针对目录,有执行(x)权限就代表能步入此目录,借助cd等命令步入此目录针对文件,有执行(x)权限就代表可以执行此文件。

在Linux下每一文件或目录的访问权限都有三组,每组用三位表示linux 文件授权给用户,分别为文件属主的读、写和执行权限;和属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls-l命令显示文件或目录的周详信息时,最左侧的一列为文件的访问权限。最右侧的一位为文件的类型,比如“-”表示普通文件,“d”表示目录等。ls-l所列举的信息各栏含意如下:

第一个栏位,表示文件的属性。
第二个栏位,表示文件个数,即硬链接数。
第三个栏位,表示该文件或目录的拥有者。
第四个栏位,表示所属的组(<span class="hljs-keyword">group</span>)。
第五栏位,表示文件大小。
第六个栏位,表示创建日期。
第七个栏位,表示文件名。

2、特殊位引起权限变化通常有以下两种

(1)特权位(s)

setuid s位在前三位

setgid s位在中间三位

特权位只针对文件有效,而且只能添加在权限位的前三位和中间三位;一个可执行文件拥有s位而且在前三位时,当别的用户来执行此文件,使用的权限是此可执行文件属主权限;假如一个可执行文件拥有s位而且在中间三位时,当他人的用户来执行此文件,使用的权限是此可执行文件属组的权限

(2)粘帖位(t)

当一个目录共享给其他用户使用而且用户可以上传文件和删掉文件,而且只能删掉自己的文件,这么就必须用到粘帖位(t),非常用在/tmp目录。只针对目录有效。有t位的目录,任何用户在有权限的情况下是可以创建文件和目录,即使是有权限删掉他人的文件或目录也不能删掉,同时相互也不能强制保存更改,自己只能删掉自己创建的目录,用于一些共享上传的文件服务器场合

注:s位和t位都是占用x位,这么是否有x位,主要是看s或t的大小写来判断:小写,表示没有执行权限x位;大写,表示有执行权限x位

3、隐藏属性权限

linux不仅9个权限外,还有些隐藏属性,使用lsattr和chattr命令来查看和设置这种隐藏属性。

lsattr --listfile attributes on a Linux second extended <span class="hljs-keyword">file</span> <span class="hljs-keyword">system</span>
chattr --change <span class="hljs-keyword">file</span> attributeson a Linux second extended <span class="hljs-keyword">file</span> <span class="hljs-keyword">system</span>

chattr命令句型格式:

<span class="hljs-tag">chattr</span> <span class="hljs-attr_selector">[-RVf]</span> <span class="hljs-attr_selector">[-+=aAcCdDeijsStTu]</span> <span class="hljs-attr_selector">[-v version]</span> <span class="hljs-tag">files</span>…

参数说明:

-R:递归处理所有的文件及子目录。
-V:详细显示修改内容,并打印输出。
-:失效属性。
+:激活属性。
<span class="hljs-header">= :指定属性。</span>

属性:

 A<span class="hljs-keyword">no</span> atime update 不允许修改atime
 Dsynchoronous directory updates
 S synchronous updates 必须sync
 T top of directory hierarchy
 a append only只允许append
 c compressed自动压缩,读取时自动解压缩,哇!好高级!
 d <span class="hljs-keyword">no</span> <span class="hljs-keyword">dump</span>当<span class="hljs-keyword">dump</span>时,具有d属性的文件不加入<span class="hljs-keyword">dump</span>
 e extent <span class="hljs-keyword">format</span>
 i immuttbale 可厉害了,让一个文件不能删除,改名,增加软硬链接,无法写入
 j data journalling ext3时会将写入记录 journal
 <span class="hljs-keyword">s</span> secure deletion 可以安全删除
 t <span class="hljs-keyword">no</span> tail-merging
 uundeletable 与<span class="hljs-keyword">s</span>相反,删除时数据还会存在磁盘中

4、chmod命令

chmod命令是十分重要的,用于改动文件或目录的访问权限。用户用他控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

文字设定法

<span class="hljs-tag">chmod</span> <span class="hljs-attr_selector">[who]</span> <span class="hljs-attr_selector">[+- =]</span> <span class="hljs-attr_selector">[mode]</span> <span class="hljs-tag">file</span>…

命令中各选项的含意为:

操作对象who而且下列字母中的任一个或她们的组合:

u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(<span class="hljs-keyword">group</span>)用户”,即和文件属主有相同组ID的所有用户。
o 表示“其他(<span class="hljs-keyword">others</span>)用户”。
a 表示“所有(<span class="hljs-keyword">all</span>)用户”。他是系统默认值。

linux授予用户文件权限_linux 文件授权给用户_授权linux文件执行权限

操作符号可以是:

+ 添加某个权限。
<span class="hljs-bullet">- </span>取消某个权限。
<span class="hljs-header">= 赋予给定权限并取消其他所有权限(如果有的话)。</span>

设置mode所表示的权限可用下列字母的任意组合:

r 可读。
w 可写。
x 可执行。

x只有目标文件对个别用户是可执行的或该目标文件是目录时才追加x属性。

s在文件执行时把进程的属主或组ID置为该文件的文件属主。形式“u+s”设置文件的用户ID位,“g+s”设置组ID位。

t 保存程式的文本到交换设备上。
u 和文件属主拥有相同的权限。
g 和和文件属主同组的用户拥有相同的权限。
o 和其他用户拥有相同的权限。

文件可以是以空格分开的要改动权限的文件列表,支持转义。在一个命令行中可给出多个权限形式,其间用冒号隔开。诸如:

<span class="hljs-keyword">chmod</span> g+r,o+r example

这儿的意思是使同组和其他用户对文件example有读权限。

数字设定法

数字表示的属性的含意:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限。通过将三个值相减来得到要设置的权限。所以数字属性的格式应为3个从0到7的八补码数,其次序是(u)(g)(o)。诸如,假如想让某个文件的属主有“读/写”二种权限,须要把4(可读)+2(可写)=6(读/写)。数字设定法的通常方式为:

<span class="hljs-tag">chmod</span> <span class="hljs-attr_selector">[mode]</span> <span class="hljs-tag">file</span>…

比如,将一个文件的权限设置为属主可读可写,同组用户可读可写,其他用户可读,则命令为:

chmod <span class="hljs-number">664</span> <span class="hljs-built_in">file</span> s

linux 文件授权给用户_授权linux文件执行权限_linux授予用户文件权限

5、chgrp和chown命令

chgrp命令用于改动文件或目录所属的组。句型格式如下:

chgrp [-R] <span class="hljs-keyword">group</span> <span class="hljs-keyword">file</span>…

该命令改动指定指定文件所属的用户组。其中group能是用户组IDred hat linux 下载,也能是/etc/group文件中用户组的组名。文件名是以空格分开的要改动属组的文件列表,支持转义。假如用户不是该文件的属主或终极用户,则不能改动该文件的组。-R参数递归式地改动指定目录及其下的所有子目录和文件的属组。诸如改动/opt/local/book/及其子目录下的所有文件的属组为book:

chgrp –R book /opt/<span class="hljs-keyword">local</span> /book

chown命令用于修改某个文件或目录的属主和属组。这个命令也十分常用。诸如root用户把自己的一个文件拷贝给用户huoty,为了让用户huoty才能存取这个文件,root用户应当把这个文件的属主设为huoty,否则,用户huoty难以存取这个文件。句型格式如下:

<span class="hljs-tag">chown</span> <span class="hljs-attr_selector">[选项]</span> 用户或组 文件

chown将指定文件的拥有者改为指定的用户或组。用户能是用户名或用户ID。组能是组名或组ID。文件是以空格分开的要改动权限的文件列表,支持转义。该命令的各选项涵义如下:

-<span class="ruby">-c 显示更改的部分的信息
</span>-<span class="ruby">f 忽略错误信息
</span>-<span class="ruby">h 修复符号链接
</span>-<span class="ruby"><span class="hljs-constant">R</span> 处理指定目录以及其子目录下的所有文件
</span>-<span class="ruby">v 显示详细的处理信息
</span>-<span class="ruby">deference 作用于符号链接的指向,而不是链接文件本身</span>

使用例示:

改变文件的所有者:

<span class="hljs-title">chown</span> www-<span class="hljs-typedef"><span class="hljs-keyword">data</span>: test</span>

改变文件的所属组:

chown <span class="hljs-symbol">:www-data</span> test

同时改变文件的所有者和所属组:

<span class="hljs-tag">chown</span> <span class="hljs-tag">huoty</span><span class="hljs-pseudo">:huoty</span> <span class="hljs-tag">test</span>

站在巨人的右臂上

以上是linux 文件授权给用户 Linux 安全性模型:宽为限紧用功,功夫到滞塞通的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Linux与Windows的典型用例是什么?Linux与Windows的典型用例是什么?May 03, 2025 am 12:01 AM

LinuxIsideAlforCustomization,开发和ServerManagement,WhileWindowSexcelSineAsofuse,SoftWareCompatibility andgaming.linuxoffershighighighighignfigurabilityfordefordeerserersandserserservervevendingservervevelicersandervervevelopservervevelopservervevelopsetups,whereaswindowspprovidesaprovidesauser-frovideslyinlyintellyintlyintellyinterfrignlyInterFaroffacorDofroardOaforportort

Linux和Windows之间的用户帐户管理有什么区别?Linux和Windows之间的用户帐户管理有什么区别?May 02, 2025 am 12:02 AM

Linux和Windows在用户账户管理上的主要区别在于权限模型和管理工具。Linux使用基于Unix的权限模型和命令行工具(如useradd、usermod、userdel),而Windows采用自己的安全模型和图形用户界面(GUI)管理工具。

Linux的命令行环境如何使其比Windows更安全?Linux的命令行环境如何使其比Windows更安全?May 01, 2025 am 12:03 AM

Linux'scommandlinecanbemoresecurethanWindowsifmanagedcorrectly,butrequiresmoreuserknowledge.1)Linux'sopen-sourcenatureallowsforquicksecurityupdates.2)Misconfigurationcanleadtovulnerabilities.Windows'commandlineismorecontrolledbutlesscustomizable,with

如何在Linux中自动制作USB驱动器安装如何在Linux中自动制作USB驱动器安装Apr 30, 2025 am 10:04 AM

本指南说明了如何在Linux的启动下自动安装USB驱动器,从而节省了时间和精力。 步骤1:确定您的USB驱动器 使用LSBLK命令列出所有块设备。 您的USB驱动器可能会标记为 /dev /sdb1, /dev /sdc1等

2025年,最佳Linux,Windows和Mac的最佳跨平台应用程序2025年,最佳Linux,Windows和Mac的最佳跨平台应用程序Apr 30, 2025 am 09:57 AM

跨平台应用程序已彻底改变了软件开发,从而在Linux,Windows和MacOS等操作系统上实现了无缝功能。 这消除了根据您的设备切换应用程序的需求,提供一致的体验

2025年AI和机器学习的最佳Linux工具2025年AI和机器学习的最佳Linux工具Apr 30, 2025 am 09:44 AM

人工智能(AI)正在迅速改变许多部门,从医疗保健和金融到艺术和音乐等创意领域。 Linux具有开源性,适应性和性能功能,已成为首要的Platfo

5最佳轻巧的Linux发行版,不带GUI5最佳轻巧的Linux发行版,不带GUIApr 30, 2025 am 09:38 AM

寻找没有图形用户界面(GUI)的快速,最小和高效的Linux分布? 轻巧,无GUI-Linux发行版非常适合较旧的硬件或服务器和嵌入式系统(例如服务器和嵌入式系统)。他们消耗较少的res

如何在Redhat发行中安装葡萄酒10.0如何在Redhat发行中安装葡萄酒10.0Apr 30, 2025 am 09:32 AM

Wine 10.0稳定版发布:在Linux上运行Windows应用更上一层楼 Wine,这款开源免费的应用程序,让Linux用户能够在Unix/Linux类操作系统上运行Windows软件和游戏,迎来了10.0稳定版的发布!此版本已提供源代码和二进制包下载,支持Linux、Windows和Mac等多种发行版。 这一版本凝聚了一年的辛勤工作和超过8600项改进,带来了诸多令人兴奋的提升。主要亮点包括: 增强对蓝牙设备的支持。 提升对HID输入设备的支持。 优化了32位和64位应用程序的运行性能。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器