`
su1216
  • 浏览: 671170 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
深入入门正则表达式(jav...
浏览量:71932
E60283d7-4822-3dfb-9de4-f2377e30189c
android手机的安全问...
浏览量:128788
社区版块
存档分类
最新评论

《Linux命令行与shell脚本编程大全》 第六章 学习笔记

阅读更多

 

第一部分:Linux命令行
《Linux命令行与shell脚本编程大全》 第一章:初识Linux shell
《Linux命令行与shell脚本编程大全》 第二章:走进shell
《Linux命令行与shell脚本编程大全》 第三章:基本的bash shell命令
《Linux命令行与shell脚本编程大全》 第四章:更多的bash shell命令
《Linux命令行与shell脚本编程大全》 第五章:使用Linux环境变量
《Linux命令行与shell脚本编程大全》 第六章:理解Linux文件权限
《Linux命令行与shell脚本编程大全》 第七章:管理文件系统
《Linux命令行与shell脚本编程大全》 第八章:安装软件程序
《Linux命令行与shell脚本编程大全》 第九章:使用编辑器

第二部分:shell脚本编程基础
《Linux命令行与shell脚本编程大全》 第十章:构建基本脚本
《Linux命令行与shell脚本编程大全》 第十一章:使用结构化命令
《Linux命令行与shell脚本编程大全》 第十二章:更多的结构化命令
《Linux命令行与shell脚本编程大全》 第十三章:处理用户输入
《Linux命令行与shell脚本编程大全》 第十四章:呈现数据
《Linux命令行与shell脚本编程大全》 第十五章:控制脚本

第三部分:高级shell编程
《Linux命令行与shell脚本编程大全》 第十六章:创建函数
《Linux命令行与shell脚本编程大全》 第十七章:图形化桌面上的脚本编程
《Linux命令行与shell脚本编程大全》 第十八章:初识sed和gawk
《Linux命令行与shell脚本编程大全》 第十九章:正则表达式
《Linux命令行与shell脚本编程大全》 第二十章:sed进阶
《Linux命令行与shell脚本编程大全》 第二十一章:gawk进阶
《Linux命令行与shell脚本编程大全》 第二十二章:使用其他shell

第四部分:高级shell脚本编程主题
《Linux命令行与shell脚本编程大全》 第二十三章:使用数据库
《Linux命令行与shell脚本编程大全》 第二十四章:使用Web
《Linux命令行与shell脚本编程大全》 第二十五章:使用E-mail
《Linux命令行与shell脚本编程大全》 第二十六章:编写脚本实用工具
《Linux命令行与shell脚本编程大全》 第二十七章:shell脚本编程进阶

 

第六章:理解Linux文件权限

 

 

root账户的UID通常是0

Linux系统会为各种各样的功能创建不同系统账户,这样即使攻占了某个服务,系统也不会沦陷

Linux为系统预留了500以下的UID值,普通用户创建账户时,大多数Linux会将500起始的第一个可用UID分配给这个账户(未必适用所有Linux发行版)

/etc/passwd字段包含如下信息

1)登录用户名

2)用户密码

3)用户账户的UID

4)用户账户的GID

5)用户账户的文本描述(称为备注字段)

6)用户HOME目录的位置

7)用户的默认shell

 

/etc/shadow每条记录有9个字段,包括

1)与/etc/passwd文件中登录名对应的登录名

2)加密后的密码

3)自1970年1月1日(上次修改密码的日期)到当天的天数

4)多少天后才能更改密码

5)多少天后必须更改密码

6)密码过期前提前多少天提醒用户更改密码

7)密码过期后多少天禁用用户账户

8)用户账户被禁用的日期,用自1970年1月1日到当天的天数表示

9)预留字段,给将来使用

 

 

 

添加新用户

useradd

语法:

参数 描述
-c cmoment 给新用户添加备注
-d home_dir 为主目录指定一个名字(如果不想用登录名作为主目录)
-D 创建新用户时的默认值
-e expire_date 用YYYY-MM-DD格式指定一个账户过期的日期
-f inactive 指定这个账户密码过期后多少天这个账户被禁用;0表示密码一过期就立即禁用,-1表示禁止这个功能
-g initial_group 指定用户登录组的GID或组名
-G group 指定用户除登录之外所属的一个或多个附加组
-k 必须和-m一起使用,将/etc/skel目录内容复制到用户的HOME目录
-m 创建用户的HOME目录
-M 不创建用户的HOME目录(当默认设置里指定创建时,才用到)
-n 创建一个同用户登录名同名的新组
-r 创建系统账户
-p passwd 为用户账户指定默认密码
-s shell 指定默认的登录shell
-u uid 为账户指定一个唯一的UID

 

$ useradd -D

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/sh

SKEL=/etc/skel

CREATE_MAIL_SPOOL=no

其中的SKEL说明

userad允许用户创建一个默认的HOME目录配置,以SKEL指定的目录下文件作为模板,自动在每个新用户HOME中放置

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

useradd -D加如下参数可以修改默认的系统新用户值

参数 描述
-b default_home 更改默认的创建用户HOME目录的位置
-e expiration_date 更改默认的新账户过期的日期
-f inactive 更改默认的新用户从密码过期到账户被禁用的天数
-g group 更改默认的组名称或GID
-s shell 更改默认的登录shell

useradd -D -s /bin/tcsh

 


 

删除用户

userdel

默认只会删除/etc/passwd文件中的用户信息,而不会删除用户的任何文件

-r:删除用户的HOME目录及mail目录

 

 

修改用户

用户账户修改工具

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

 

usermod

-c:修改备注字段

-e:修改过期日期

-g:修改默认的登录组

-l:修改用户账户的登录名

-L:锁定账户,用户无法登录

-p:用来修改账户密码

-U:解除锁定

 

 

passwd、chpasswd

passwd用来修改密码,-e用来强制用户下次登录的时候再次修改密码

chpasswd可以批量导入用户密码,从标准输入读取数据

 


chsh、chfn、chage

chsh用来修改默认的用户登录shell

使用时必须是全路径,不能使用shell名

 

chfn用来修改/etc/passwd备注字段

chfn会将Unix的finger命令用到的信息存入备注字段

chfn不加参数时,会询问你要存进备注字段的值

(出于安全性考虑,很多Linux管理员禁用finger)

 

chage用来帮助管理用户账户的有效期

参数 描述
-d 设置上次修改密码到现在的天数
-E 设置密码过期的日期(可用来创建临时账户,但是过期之后账户信息还在,类似锁定)
-I 设置密码过期到锁定账户的天数
-m 设置修改密码之间最少要多少天
-W 设置密码过期前多久开始出现提醒信息

chage命令设置日期的格式

1.YYYY-MM-DD

2.从1970年1月1日起到该日期天数的数值

 

 

 

使用Linux组

有些Linux发行版会创建一个组,把所有用户都当成这个组的成员(这种情况要小心)

有些发行版会为每个用户创建一个单独的组,这样更安全(例如Ubuntu)

每个组都有一个唯一的GID和组名

 

/etc/group格式

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

千万不能直接修改/etc/group来添加用户到一个组,应使用usermod

列表中有些组并没有列出用户,这并不意味着这些组没有成员。

当一个用户在/etc/passwd中指定某个组作为默认组时,用户账户不会作为该组成员出现在/etc/group中

 

创建新组

groupadd

group shared

默认没有属于该组成员,groupadd命令没有提供将用户添加到组的选项

usermod

usermod -G shared rich

添加rich用户到shared组中

-G:只是添加组到用户中,不影响默认组

-g:添加组到用户中,并且替换默认组

(如果更改了以登录的用户所属的组,用户重新登录后才会生效)

 

修改组

groupmod

可以修改已有组的GID或组名

-n:修改组名(可以随意更改,而不会影响安全性)

-g:修改已有组的GID

 

 

理解文件权限 (参见#1

默认文件权限

umask(参见#1

 

改变安全性设置

改变权限

chmod(参见#1

符号模式权限

[ugoa][+-=][rwxXstugo...]

第一个选项定义了权限作用的对象

u:代表用户

g:代表组

o:代表其他

a:代码上述所有

最后的选项代表作用到设置上的权限

X:如果对象是目录或者它已有执行权限,赋予执行权限

s:运行时重新设置UID或者GID

t:保留文件或目录

u:将权限设置为跟属主一样

g:将权限设置为跟属组一样

o:将权限设置为跟其他用户一样

 

改变所属关系

chown

用来改变文件的默认属组

可用登录名或UID来指定属组

语法:

chown options owner [.group ] file

可同时改变文件的属主和属组

 

 

共享文件

Linux为每个文件和目录存储了3个额外的信息位

设置用户ID(SUID):当文件被用户使用时,程序会以文件属主的权限运行

设置组ID(SGID):对文件来说,程序会以文件属组的权限运行;对目录来说,目录中创建的新文件会以目录的默认属组作为默认属组

粘着位:进程结束后文件还会在内存中

SGID可通过chmod设置,加到标准3位八进制值之前,或者在符号模式下用符号s

八进制值 描述
0 所有位都清零
1 粘着位置位
2 SGID位置位
3 SGID位和粘着位都置位
4 SUID位置位
5 SUID位和粘着位都置位
6 SUID位和SGID位都置位
7 所有位都置位

共享目录步骤:

创建目录

改变目录的默认属组

设置SGID

所有组成员都需要把他们的umask值设置成文件对属组成员可写

 

 

1.《Unix & Linux 大学教程》 - 第二十五章 文件操作

 

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/

1
5
分享到:
评论

相关推荐

    linux运维学习笔记:Shell脚本调试.pdf

    本文档是一份针对Shell脚本调试的学习笔记,详细介绍了几种常见的调试方法和工具,帮助运维人员快速定位并修复脚本中的问题。 首先,需要了解的是Linux与Windows在文本文件行结束标志上的差异。在Linux系统中,文本...

    unix shell编程第三版笔记

    通过深入学习"Unix Shell编程第三版笔记",你将能够编写出高效的自动化脚本,提高工作效率,解决日常的系统管理和开发问题。同时,对Unix Shell的熟练掌握也是成为高级系统管理员或全栈开发者的必备技能之一。

    韩顺平linux学习笔记,很不错的.pdf

    学习Linux的推荐书籍有《鸟哥的Linux私房菜》、《Linux命令行与shell脚本编程大全》、《Linux系统管理技术手册》等,这些书籍可以帮助读者深入理解Linux系统,并提供丰富的实践指导。 6. Linux视频教程第1讲:基础...

    Linux Shell从入门到精通学习笔记

    Linux Shell是Linux操作系统中的一种命令解释器,它允许用户通过命令行界面与系统进行交互,执行各种系统操作。本文档《Linux Shell从入门到精通》是作者李振良基于个人经验整理的一份全面教程,旨在帮助读者从零...

    Linux学习笔记.docx

    Linux 学习笔记是 Linux 学习的详细笔记整理,分九章,涵盖了 vim 和 vi 编辑器、实用指令、组管理和权限管理、crond 任务调度、Linux 磁盘分区挂载、网络配置、进程管理、服务管理、shell 编程等内容。 1. vi 和 ...

    总结搜集的shell脚本学习笔记(完结篇).pdf

    ### Shell脚本编程知识点概述 #### 一、预备知识与基本概念 在开始Shell脚本文档的学习之前,首先需要理解Shell脚本的基本概念及其在Linux/Unix环境中的作用。Shell是一种命令行解释器,用于执行用户输入的命令,...

    尚观linux 学习笔记 1

    4. "ule_06.txt" - 可能介绍了第六单元的Shell脚本编程,包括基本的Shell命令,变量、条件语句、循环结构、函数定义以及如何编写自动化任务脚本。 5. "ule_9.txt" - 可能是第九单元,可能讨论了网络配置和管理,...

    Linux学习笔记.pdf,linux详解,LINUX

    八、shell脚本编程 编写shell脚本可以自动化重复任务,例如: - 变量、运算符和条件判断。 - 函数定义。 - 循环结构。 - 输入输出重定向。 九、系统管理 - sysctl:调整系统内核参数。 - logrotate:日志文件轮换。...

    yzy第一次学习笔记作业

    * Linux 的 Shell 编程:Shell 是 Linux 的命令行接口,提供了交互式的命令行环境 三、Linux 文件系统 * 文件类型:普通文件、目录文件、链接文件、设备文件等 * 文件权限:所有者、群组、其他用户的读写执行权限 ...

    linux学习入门笔记

    6. **Shell脚本编程**:Bash Shell是Linux最常用的Shell,学习编写简单的Shell脚本可以帮助自动化日常任务。了解变量、条件语句、循环结构以及函数的使用。 7. **系统服务与初始化系统**:了解Systemd,它是现代...

    Linux学习笔记(强悍总结值得一看)

    这些只是Linux学习笔记的一部分,完整的笔记还包括更多关于文件系统操作、权限管理、进程控制、网络配置、脚本编程等多个方面的内容。掌握这些基础技能是成为Linux运维人员的必备条件,通过不断的实践和学习,可以更...

    shell学习笔记.docx

    Shell编程是Linux操作系统中的一种命令解释器,它允许用户通过命令行与系统进行交互,执行各种操作。在《shell编程从入门到精通》一书中,作者张昊详细讲解了shell编程的基础知识。以下是对该书内容的部分总结: 1....

    Unix-Linux编程实践教程

    1. **shell编程**:讲解Bash shell和其他Unix shell的基本语法,包括命令行参数、环境变量、重定向、管道和脚本编写等。 2. **进程管理**:介绍进程创建(fork和exec)和进程通信(管道、套接字、信号、共享内存、...

    Linux基础.zip

    8. **Linux必学的重要命令教程**:Linux命令行是日常操作的核心,这份教程可能包含如ls、cd、mkdir、cp、mv、grep、sed、awk等常用命令的详解和实例,帮助初学者快速掌握Linux基本操作。 通过这些资源的学习,你...

    LINUX学习笔记

    【LINUX学习笔记】 在深入理解Linux操作系统的过程中,掌握Shell编程是至关重要的。Shell作为操作系统与用户交互的接口,能够解析并执行用户输入的命令。通过编写Shell脚本,我们可以定制化系统的行为,实现自动化...

    学校Linux上课笔记:shell和语法,和notability一起听录音加mindmaster一起总结.pdf

    Shell是Linux操作系统中的一个命令解释器,同时也是一种编程语言,它使得用户可以通过命令行与系统进行交互。在Linux课程中,我们学习了shell的不同启动方式、shell脚本的基本元素以及变量和运算符的使用。 1. **...

    linux Shell学习笔记最后一节,温故与知新

    在Linux系统中,Shell是一种命令解释器,它允许用户通过命令行与操作系统交互。学习Linux Shell编程不仅可以提高日常工作效率,还能让你更好地理解和控制系统的运行。本篇笔记主要总结了Linux Shell编程的一些关键点...

    2.蛤蟆PYTHON脚本学习笔记二基本命令畅玩.rar

    "蛤蟆PYTHON脚本学习笔记二基本命令畅玩"这个压缩包文件,显然是一个关于Python编程初学者的学习资料,旨在帮助读者掌握Python的基础命令。在这个笔记中,我们可以期待涵盖以下关键知识点: 1. **Python安装**:...

    Python3基础学习笔记.pdf

    而脚本文件则是将代码写入一个以.py结尾的文件中,可以通过命令行直接执行这些文件,类似于Shell脚本。此外,还可以设置脚本文件为可执行文件,通过在文件顶部指定Python解释器路径来实现。 6. Python文件操作和...

Global site tag (gtag.js) - Google Analytics