资讯专栏INFORMATION COLUMN

Linux_《Linux命令行与shell脚本编程大全》第七章学习总结

lily_wang / 3202人阅读

摘要:命令行与脚本编程大全第三版第七章学习总结第七章理解文件权限本章内容理解的安全性解读文件权限使用组的安全性安全系统的核心是用户账户。但不要随意修改组的。通过用户和组来限制对文件目录以及设备的访问。组也会被分配唯一的组以及组名。本章介绍了命令。

时间:2017年08月07日星期一

说明:本文部分内容均摘取自书籍《Linux命令行与shell脚本编程大全》,版权归原作者所有。《Linux命令行与shell脚本编程大全》(第三版)第七章学习总结

第七章:理解Linux文件权限

本章内容:

理解Linux的安全性
解读文件权限
使用Linux组
7.1 Linux的安全性

Linux安全系统的核心是用户账户。每个能进入Linux系统的用户都会被分配唯一的用户账户。用户对系统中各种对象的访问权限取决于他们登录系统时用的账户。

7.1.1 /etc/passwd文件

Linux系统使用一个专门的文件来将用户的登录名匹配到对应的UID值。这个文件就是/etc/passwd文件,它包含了一些与用户有关的信息。

root:x:0:0:root:/root:/bin/bash

root用户账户是Linux系统的管理员,固定分配给它的UID是0.

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

登录用户名
用户密码(/etc/passwd文件中的密码字段都被设置成了x,即隐藏了密码,
    密码多带带保存在etc/shadow文件中)
用户账户的UID(数字形式)
用户账户的组ID(GID)(数字形式)
用户账户的文本描述(称为备注字段)
用户HOME目录的位置
用户的默认shell
7.1.2 /etc/shadow文件

/etc/shadow文件对Linux系统密码管理提供了更多的控制。只有root用户才能访问/etc/shadow文件,每个用户账户都对应一条记录,每条记录中都有9个字段

与/etc/passwd文件中的登录名字段对应的登录名

加密后的密码
自上次修改密码后过去的天数密码(自1970年1月1日开始计算)
多少天后才能更改密码
多少天后必须更改密码
密码过期前提前多少天提醒用户更改密码
密码过期后多少天禁用用户账户
用户账户被禁用的日期(用自1970年1月1日到当天的天数表示)
预留字段给将来使用
7.1.3 添加新用户

命令:useradd

命令格式:useradd test
命令说明:创建一个名为test的用户
7.1.4 删除用户

命令:userdel

命令格式:userdel -r test
命令说明:删除test用户级test用户的HOME目录
7.1.5 修改用户

用户账户修改工具

usermod:修改用户账户的字段,还可以指定主要组以及附加组的所属关系
passwd:修改已有用户的密码
chpasswd:从文件中读取登录名密码对,并更新密码
chage:修改密码的过期日期
chfn:修改用户账户的备注信息
chsh:修改用户账户的默认登录shell

命令:usermod

常用参数

-c:修改备注字段
-e:修改过期日期
-g:修改默认的登录组
-l:修改用户账户的登录名
-L:锁定用户,使用户无法登录
-p:修改账户的密码
-U:解除锁定,使用户能够登录

命令:passwd

命令格式:passwd test
命令说明:修改test用户的登录密码

命令:chpasswd

命令格式:chpasswd < users.txt
命令说明:批量修改用户名对应的密码,登录名和密码用冒号分隔

命令:chsh、chfn、chage

命令说明:chsh修改默认的用户登录shell、chfn修改备注字段、chage修改密码过期日期
7.2 使用Linux组 7.2.1 /etc/group文件

保存组信息的文件,格式如:root:x:0:root,字段分别为

组名
组密码
GID
属于该组的用户列表

千万不能通过直接修改/etc/group文件来添加用户到一个组,要用usermod命令

7.2.2 创建新组

命令:groupadd

命令格式:groupadd name
命令说明:创建一个名为name的组

说明:如果更改了已登录系统账户所属的用户组,该用户必须登出系统后再登录,组关系的更改才能生效。

警告:为用户账户分配组时要格外小心。如果加了-g选项,指定的组名会替换掉该账户的默认组。-G选项则将该组添加到用户的属组的列表里,不会影响默认组。

7.2.3 修改组

命令:groupmod

命令格式:groupmod -n name newname
命令说明:将name组的组名修改为newname
命令格式:groupmod -g 505 name
命令说明:将name组的GID修改为505(原来是504)

说明:由于所有的安全权限都是基于GID的,所以可以随意改变组名而不会影响文件的安全性。但不要随意修改组的GID。

7.3 理解文件权限 7.3.1 使用文件权限符

命令:ls

命令格式:ls -l
命令说明:使用ls命令查询Linux系统上的文件、目录和设备的权限。

示例:drwxr-xr-x 3 root root 4096 Jul 25 21:05 java
说明:第一个字段及 drwxr-xr-x 就是描述文件和目录权限的编码。这个字段的第一个字符代表了对象的类型:

-代表文件
d代表目录
l代表链接
c代表字符型设备
b代表块设备
n代表网络设备

之后有3组字符的编码。每一组定义了3中访问权限:

r代表对象是可读的
w代表对象是可写的
x代表对象是可执行的

若没有某种权限,在该权限位会出现单破折线。这3组权限分别对应对象的三个安全级别:

对象的属主:即用户名
对象的属组:即组名
系统其它用户:其它用户
7.3.2 默认文件权限

命令:umask

命令格式:umask
命令说明:查看默认权限

Linux文件权限码

权限:二进制值:八进制值:描述
---:000:0:没有任何权限
--x:001:1:只有执行权限
-w-:010:2:只有写入权限
-wx:011:3:有写入和执行权限
r--:100:4:只有读取权限
r-x:101:5:有读取和执行权限
rw-:110:6:有读取和写入权限
rwx:111:7:有全部权限

文件来说:全权限是666表示所有用户都有读和写的权限
目录来说:全权限是777表示所有用户都有读、写、执行权限

命令格式:umask 026
命令说明:设置默认文件权限为 666-026=640,目录权限为 777-026=751。
7.4 改变安全性设置 7.4.1 改变权限

命令:chmod

命令格式:chmod +x dir
命令说明:给dir目录赋执行权限

命令格式:chmod +x shell.sh
命令说明:给shell.sh文件赋执行权限
7.4.2 改变所属关系

命令:chown

命令格式:chown owner file
命令说明:改变文件的属主

命令示例:chown test demo.sh
命令说明:将demo.sh文件的属主修改为test用户为属主

命令:chgrp

命令格式:chgrp group file
命令说明:改变文件的默认属组

命令示例:chown grouptest demo.sh
命令说明:将demo.sh文件的默认属组修改为grouptest用户组

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

7.5 共享文件

命令演示:

命令:mkdir testdir
说明:创建一个名为testdir的目录
命令:chgrp grouptest testdir
说明:改变testdir目录的默认属组为grouptest用户组

现在,grouptest用户组下的所有用户都可以访问testdir下的文件了。

7.6 小结

本章讨论了管理Linux系统安全性需要知道的一些命令行命令。Linux通过用户ID和组ID来限制对文件、目录以及设备的访问。Linux将用户账户的信息存储在/etc/passwd文件中,将组信息存储在/etc/group文件中。每个用户都会被分配唯一的用户ID,以及在系统中识别用户的文本登录名。组也会被分配唯一的组ID以及组名。组可以包含一个或多个用户以支持对系统资源的共享访问。本章介绍了useradd、userdel、usermod、passwd、chpasswd、chsh、chfn、chage、groupadd、groupmod、umask、chmod、chow、chgrp命令。

本章学习命令个人总结如下:

useradd:添加新用户
userdel:删除用户
usermod:修改用户账户的字段,还可以指定主要组以及附加组的所属关系
passwd:修改已有用户的密码
chpasswd:批量修改用户密码
chsh:修改用户账户的默认登录shell
chfn:修改用户账户的备注信息
chage:修改密码的过期时间
groupadd:创建新组
groupmod:修改组
umask:显示和设置默认权限
chmod:改变文件和目录的安全性设置
chow:改变文件的属主(属于哪个用户或用户组)
chgrp:改变文件的默认属组(属于哪个用户组)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/10220.html

相关文章

  • Linux_Linux命令行与shell脚本编程大全》第十七章学习总结

    摘要:例如,函数名会在变量中定义,函数命令行上的任何参数都会通过等定义。在开源世界中,共享代码才是关键,而这一点同样适用于脚本函数。这里将说明如何下载安装使用脚本函数库。 时间:2017年10月09日星期一说明:本文部分内容均摘取自书籍《Linux命令行与shell脚本编程大全》,版权归原作者所有。《Linux命令行与shell脚本编程大全》(第三版)第十七章学习总结 第十七章:创建函数 本...

    cgh1999520 评论0 收藏1
  • Linux_Linux命令行与shell脚本编程大全》第三章学习总结

    摘要:命令行与脚本编程大全第三版第三章学习总结第三章基本的命令本章内容使用手册浏览文件系统文件和目录列表管理文件和目录查看文件内容启动能提供对系统的交互式访问。重命名文件在中,重命名文件称为移动。 时间:2017年04月06日 说明:本文部分内容均摘取自书籍《Linux命令行与shell脚本编程大全》,版权归原作者所有。《Linux命令行与shell脚本编程大全》(第三版)第三章学习总结 第...

    sugarmo 评论0 收藏1
  • Linux_Linux命令行与shell脚本编程大全》第五章学习总结

    摘要:內建命令和非內建命令的操作方式大不相同。內建命令內建命令和外部命令的区别在于前者不需要使用子进程来执行。和命令都是內建与。命令演示演示说明利用命令来了解某个命令是否是內建的。 时间:2017年04月10日 说明:本文部分内容均摘取自书籍《Linux命令行与shell脚本编程大全》,版权归原作者所有。《Linux命令行与shell脚本编程大全》(第三版)第五章学习总结 第五章:理解she...

    rainyang 评论0 收藏1
  • Linux_Linux命令行与shell脚本编程大全》第十四章学习总结

    摘要:命令行与脚本编程大全第三版第十四章学习总结第十四章处理用户输入本章内容传递参数跟踪参数移动变量处理选项将选项标准化获取用户输入命令行参数读取参数会将一些称为位置参数的特殊变量分配给输入到命令行中的所有参数。 时间:2017年09月19日星期二说明:本文部分内容均摘取自书籍《Linux命令行与shell脚本编程大全》,版权归原作者所有。《Linux命令行与shell脚本编程大全》(第三版...

    王晗 评论0 收藏1
  • Linux_Linux命令行与shell脚本编程大全》第六章学习总结

    摘要:环境变量定义了用于进行命令和程序查找的目录。全局环境变量可以在对其作出定义的父进程所创建的子进程中使用。本章学习命令个人总结如下显示全局变量显示全局变量显示局部变量全局变量及用户自定义变量导出为全局环境变量删除环境变量 时间:2017年07月31日星期一 说明:本文部分内容均摘取自书籍《Linux命令行与shell脚本编程大全》,版权归原作者所有。《Linux命令行与shell脚本编程...

    Kerr1Gan 评论0 收藏1

发表评论

0条评论

lily_wang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<