Bash Shell--权限管理
程序员文章站
2022-06-19 11:54:32
Bash Shell–Linux文件的权限文件的权限用户权限通过创建用户时分的用户ID(User ID,通常缩写为UID)来跟踪的。登陆系统时使用的是登录名。Linux系统会为各种各样的功能创建不同的用户账户,而这些账户并不是真的用户。这些账户叫作系统账户,是系统上运行的各种服务进程访问资源用的特殊账户。所有运行在后台的服务都需要用一个系统用户账户登录到Linux系统上。添加新用户用来向Linux系统添加新用户的主要工具是useradd。从系统中删除用户可以用userdel命令。默认情...
Bash Shell–Linux文件的权限
文件的权限
用户权限通过创建用户时分的用户ID(User ID,通常缩写为UID)来跟踪的。
登陆系统时使用的是登录名。
Linux系统会为各种各样的功能创建不同的用户账户,而这些账户并不是真的用户。
这些账户叫作系统账户,是系统上运行的各种服务进程访问资源用的特殊账户。
所有运行在后台的服务都需要用一个系统用户账户登录到Linux系统上。
添加新用户
用来向Linux系统添加新用户的主要工具是useradd。
从系统中删除用户可以用userdel命令。
默认情况下, userdel命令会只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。
如果加上-r参数, userdel会删除用户的HOME目录以及邮件目录。
文件权限
八进制模式的值664代表属主和属组成员都有读取和写入的权限,而其他用户都只有读取权限。
umask值只是个掩码。它会屏蔽掉不想授予该安全级别的权限。
要把umask值从对象的全权限值中减掉。
对文件来说,全权限的值是666(所有用户都有读和写的权限);
而对目录来说,则是777(所有用户都有读、写、执行权限)。
文件一开始的权限是666, 减去umask值022之后, 剩下的文件权限就成了644。
由于目录的默认权限是777, umask作用后生成的目录权限不同于生成的文件权限。
umask值026会从777中减去,留下来751作为目录权限设置。
chmod命令
用来改变文件和目录的安全性设置。
符号模式的权限
第一组字符定义了权限作用的对象:
u代表用户
g代表组
o代表其他
a代表上述所有
下一步,后面跟着的符号表示你是想在
现有权限基础上增加权限( +),
还是在现有权限基础上移除权限( .),
或是将权限设置成后面的值( =)。
第三个符号代表作用到设置上的权限。
X:如果对象是目录或者它已有执行权限,赋予执行权限。
s:运行时重新设置UID或GID。
t:保留文件或目录。
u:将权限设置为跟属主一样。
g:将权限设置为跟属组一样。
o:将权限设置为跟其他用户一样。
chown命令
用来改变文件的属主。
chown命令也支持同时改变文件的属主和属组。
chgrp命令
可以更改文件或目录的默认属组。
/usr/sbin/groupadd shared 在系统上创建新组shared
/usr/sbin/usermod -G shared rich 将用户rich添加到组shared
/usr/sbin/groupmod -n sharing shared 修改组shared名为sharing
可以修改已有组的GID(加-g选项)或组名(加-n选项)。
Linux系统上共享文件的方法是创建组。
Linux还为每个文件和目录存储了3个额外的信息位。
设置用户ID( SUID) :当文件被用户使用时,程序会以文件属主的权限运行。
设置组ID( SGID) :对文件来说,程序会以文件属组的权限运行;对目录来说,目录中创建的新文件会以目录的默认属组作为默认属组。
粘着位:进程结束后文件还驻留(粘着)在内存中。
SGID位对文件共享非常重要。
启用SGID位后,你可以强制在一个共享目录下创建的新文件都属于该目录的属组,这个组也就成为了每个用户的属组。
SGID可通过chmod命令设置。它会加到标准3位八进制值之前(组成4位八进制值),或者在符号模式下用符号s。
mkdir命令来创建共享的目录。
chgrp命令将目录的默认属组更改。
最后,将目录的SGID位置位,以保证目录中新建文件都用shared作为默认属组。
为了让这个环境能正常工作,所有组成员都需把他们的umask值设置成文件对属组成员可写。
在前面的例子中, umask改成了002,所以文件对属组是可写的。
做完了这些,组成员就能到共享目录下创建新文件了。
跟期望的一样,新文件会沿用目录的属组,而不是用户的默认属组。现在shared组的所有用户都能访问这个文件了。
总结
本章讨论了管理Linux系统安全性的一些命令行命令。
Linux通过用户ID和组ID来限制对文件、目录以及设备的访问。
useradd命令用来创建新的用户账户,
groupadd命令用来创建新的组账户。
修改已有用户账户,我们用usermod命令。类似的groupmod命令用来修改组账户信息。
每个文件都有三个安全等级:文件的属主、能够访问文件的默认属组以及系统上的其他用户。
每个安全等级通过三个访问权限位来定义:
读取、写入以及执行,
对应于符号rwx。
如果某种权限被拒绝,权限对应的符号会用单破折线代替(比如r–代表只读权限)。
chmod命令用来修改文件和目录的安全设置。
只有文件的属主才能改变文件或目录的权限。
不过root用户可以改变系统上任意文件或目录的安全设置。
chown和chgrp命令可用来改变文件默认的属主和属组。
设置组ID位来创建共享目录。
SGID位会强制某个目录下创建的新文件或目录都沿用该父目录的属组,而不是创建这些文件的用户的属组。
这可以为系统的用户之间共享文件提供一个简便的途径。
参考
1. https://blog.csdn.net/qq_44710568/article/details/105013302
本文地址:https://blog.csdn.net/x13262608581/article/details/107621770
上一篇: Mambo index.php文件多个跨站脚本执行漏洞
下一篇: 解除禁止下载