《Linux命令行与Shell脚本编程大全》学习笔记4

     0、下面是书本第五章<理解Linux文件权限>的学习笔记,并且只记录那些,本人认为重要的、不知道的抑或遗忘的内容。

     1、Linux系统使用一个专门的文件来讲用户的登录名匹配到对应的UID值。这个文件就是/etc/passwd文件,它包含了一些与用户相关的信息。Linux系统会为各种各样的功能创建不同的用户账户,而这些账户并不是真的用户。这些账户称作系统账户,是系统上运行的各种服务进程访问资源用的特殊账户。所有运行在后台的服务都需要用一个系统用户账户登录到Linux系统上。Linux为系统账户预留了500以下的UID值。尽管可以直接编辑文件/etc/passwd,但很可能导致出错,用标准的Linux用户管理工具区执行这些用户管理功能就会安全许多。

     2、Linux系统使用单独的shadow密码系统来管理用户密码,这样更安全,并且能方便控制用户密码,比如要求用户多久更改一次密码,已经密码未更新的话多久后禁用该用户账户。

     3、添加新用户到Linux系统的工具是useradd。这个命令提供了一次性创建新用户账户及设置用户HOME目录结构的简便方法。可以用useradd命令加-D参数来查看你的Linux系统的默认值,并且这些默认值也可以更改。useradd命令允许管理员创建一份默认的HOME目录配置,然后把它作为创建新用户HOME目录的模板。这样,就能自动在每个新用户的HOME目录里放置默认的系统文件,默认的模板文件夹是文件/etc/shel/。默认情况下,useradd命令不会创建HOME目录,但是-m命令行选项会叫它创建HOME目录。

     4、如果你想从系统中删除用户,userdel可以满足这个需求。默认情况下,userdel命令会只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。如果加上-r参数,userdel会删除用户的HOME目录以及mail目录。然而,系统上仍可能存有归已删除用户所有的其他文件。这在有些环境中造成问题。

     5、Linux提供了一下不同的工具来修改已有用户账户的信息,比如usermod修改用户账户的字段,它能修改/etc/passwd文件中的大部分字段,其中参数-L尤其有用,用这个参数就可把账户锁定,用户就无法登录了,而不用删除账户和用户的数据。要让账户恢复正常,只要加-U参数就行了;命令passwd修改已有用户的密码;chsh修改用户账户的默认登录shell;还有命令chfn、chage来修改特定的账户信息。

     6、Linux系统中的组是为了多个用户共享一组共用的权限来访问系统上的对象,比如文件、目录或设备之类。类似于用户账户,组有唯一的ID和组名。文件/etc/group包含系统上用到的每个组的信息。系统账户用的组通常会分配低于500的GID值,而用户组的GID则会从500开始分配。千万不能直接修改/etc/group文件来添加用户到一个组,而要用usermod命令来添加。在添加用户到不同的组之前,首先得创建组。注意在文件/etc/group中,有些组并没有列出用户。这并不是说,这些组没有成员。当一个用户在/etc/passwd文件中知道某个组作为默认组时,用户账户不会作为该组成员出现在/etc/group文件中。

     7、groupadd命令用来在系统上创建新组;groupmod命令可以修改已有组的GID或组名。由于所有的安全权限都是基于GID的,因此可以随机修改组名而不会影响文件的安全性。

     8、命令umask用来设置用户创建文件和目录的默认权限。umask命令可以显示和设置这个默认权限,它一共有四位,都是八进制值,第一位代表了一项特别的安全特性,叫作粘着为(sticky bit)。后面的3位表示文件或目录的umask的八进制值。umask值只是个掩码。它会屏蔽掉不想授予该安全级别的权限。umask值会从对象的全权限值中减掉,对文件来说,全权限的值是666(所有用户都有读和写,都没有执行权限);而对目录来说,是777(所有用户都有读、写和执行权限)。所以若umask值为0022,则新创建的文件权限就是644。umask的值通常会在/etc/profile启动文件中设置。你可以用umask命令为默认umask设置指定一个新值,但这样并不会该文件/etc/profile中的umask的值。

     9、chmod命令用来改变文件和目录的安全性设置,主要有两种模式八进制模块或符号模式,八进制模式简单直接,符号模式更灵活。命令chown用来改变文件的属主,chgrp命令用来改变文件的默认属组。只有root用户能够改变文件的属主。任何属主都可以改变文件的属组,但前提是属主必须是源和目录属组的成员。

     10、创建组是Linux系统上共享文件访问权限的方法,如果你想让其他人也能访问某个文件,你要么改变其他用户所在安全组的访问权限,要么就给文件分配一个新的包含其他用户的默认属组,这在大的环境中,会变的非常繁琐。因此Linux还为每个文件和目录存储了3个额外的信息位:
          设置用户ID(SUID):当文件被用户使用十,程序会以文件属主的权限运行。
          设置组ID(SGID):对文件来说,程序会以文件属组的权限运行;对目录来说,目录中创建的新文件会以目录的默认属组作为默认属组。
          粘着位:进程结束户文件还会在内存中。
SGID为对文件共享非常重要。SGID为会强制某个目录下创建的新文件或目录都沿用该父目录的属组,而不是创建这些文件的用户的属组。这可以为系统的用户之间共享文件提供一个简便的途径。SGID可通过chmod命令设置。它会加到标准3位八进制之前(组成4位八进制值),或者在符号模式下用符号s。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值