`
ifxilou
  • 浏览: 13963 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

[学习笔记]Unix Shell编程之文件安全与权限

阅读更多

-rw-r--r--   1 root    kangym          0 Dec 16 08:56 myfile

-

rw-r--r--

1

root

kangym

0

Dec 16 08:56

myfile

文件类型

d 目录

l 符号文件

s 套接字文件

b 块设备文件

c 字符设备文件

p 命名管道文件

- 普通文件

权限

文件属主的权限+文件属主缺省组权限+系统中其他用户权限

r 读权限(4)

w 写权限(2)

x 执行权限(1)

文件硬链接数目

文件属主

文件属主所在缺省组

文件大小(不是K字节)

文件更新时间

文件名

 

改变文件权限

suid/guid

chown/chgrp

umask

符号链接

改变文件权限

/*--------------------------------------            改变文件权限命令          --------------------------------------*/

号模式

chmod [who] operator [permission] filename

<!--EndFragment-->

operator [+ 增加权限][- 取消权限][= 设定权限]

permission [r 读权限][w 写权限][x 执行权限][s 文件属主和组Set-ID][t 粘贴位*][l 给文件加锁,其他用户无法访问]

在列文件或目录时,有时会遇到“t”位。“t”代表了粘贴位。如果在一个目录上出现“t”位,这就意味着该目录中的文件只有其属主才可以删除,即使某个同组用户有和属主同等权限。不过有的系统在这一规则上并不十分严格。

下边是使用chmod的例子,我们假定myfile文件最初具有这样的权限rwxrwxrwx

chmod a-x myfile  > rw-rw-rw- 收回所有用户的执行权限

chmod og-w myfile > rw-r--r-- 收回同组用户和其他用户的权限

chmod g+w myfile > rw-rw-r-- 赋予同组用户写权限

chmod u+x myfile > rwxrw-r-- 赋予文件属主执行权限

 

对模式

chmod [mode] file

其中mode是一个八进制数。

0400 文件属主可读 0200 文件属主可写 0100 文件属主可执行

0040 同组用户可读 0020同组用户可写 0010同组用户可执行

0004 其他用户可读 0002 其他用户可写 0001 其他用户可执行

目录的读权限意味着可以列出其中的内容,写权限意味着可以在该目录下创建文件,执行权限意味着可以搜索和访问该目录。

如果把同组用户或其他用户针对某一目录的权限设置为--x,那么它将无法列出该目录中的文件。如果该目录中有一个可执行的脚本程序,只要用户知道它的路径和文件名,仍然可以执行它。用户不能够进入该目录并不妨碍它的执行。

目录的权限将会覆盖此目录下文件的权限。

/*--------------------------------------            改变文件权限命令          --------------------------------------*/

 

suid/guid

/*--------------------------------------                suid/guid              --------------------------------------*/

suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本的时也会具有其属主的相应权限。于是,如果跟用户的某一个脚本设置了这样的权限,那么其他登录的普通用户在执行它的期间也同样具有根用户的权限。同样的原则也适用于guid,执行相应脚本的用户将具有该文件所属用户组中用户的权限。

有相当一些UNIX命令也设置了suidguid,可以进入/bin/sbin目录执行一下命令:

ls -l | grep '^...s' 查找suid文件

ls -l | grep '^...s..s' 查找suidguid文件

如果希望设置suid,那么就将相应的权限位之前的那一位设置为4,如果希望设置guid,那么就将相应的权限位之前的那一位设置为2,如果希望两者都置位,则设置为4+2

例子:

chmod 4755 > rwsr-xr-x 文件被设置了suid,文件属主具有rwx权限,所在其他用户具有rx

chmod 6711 > rws--s--s 文件被设置了suidguid,文件属主具有rwx权限,所在其他用户具有x

chmod 4764 > rwsrw-r-- 文件被设置了suid,文件属主具有rwx权限,同组具有rw,其他具有r

/*--------------------------------------                suid/guid              --------------------------------------*/

chown/chgrp

/*--------------------------------------             chownchgrp            --------------------------------------*/

chown -R -h owner file

-R  表示对所有子目录下的文件也进行同样的操作

-h 表示在改变符号链接文件的属主时不影响该链接所指向的目标文件

举例:

ls -l

-rw-r--r--   1 root       kangym          0 Dec 16 08:56 myfile

chown kangym myfile

-rw-r--r--   1 kangym    kangym          0 Dec 16 08:56 myfile

文件myfile的所有权现在由root交给kangym

 

chgrp admin myfile

-rw-r--r--   1 kangym    admin           0 Dec 16 08:56 myfile

用户kangym把文件myfile的所属组由kangym变更为admin

 

想知道自己所属于哪些用户组,可以使用groupid来查询。

为了找出其他用户所属哪些组,使用命令:group <username>

/*--------------------------------------             chownchgrp            --------------------------------------*/

 

umask

/*--------------------------------------                 umask                --------------------------------------*/

当最初登录到系统中时,umask命令确定了用户创建文件的缺省模式。这一命令实际上和chown相反。你的系统管理员必须要为你设置一个合理的umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。

一般来说,umask命令是在/etc/profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。

如果希望永久性的设置自己的umask值,那么就把它放在自己的$HOME目录下的.profile.bash_profile文件中。

计算umask:只要记住umask是从权限中“拿走”相应的权限位即可。

/*--------------------------------------                 umask                --------------------------------------*/

 

符号链接

/*--------------------------------------              符号链接                --------------------------------------*/

软链接和硬链接,软链接其实是一个指向文件的指针。

ln [-s] source_path target_path

其中的路劲可以是目录或文件

/*--------------------------------------              符号链接                --------------------------------------*/

 

who [u 文件属主][g 同组用户][o 其他用户][a 所有用户]
号模式

<!--EndFragment-->

分享到:
评论

相关推荐

    LINUX与UNIX_Shell编程指南V1.0_学习笔记.docx

    这份学习笔记将深入探讨Shell编程的基础,包括文件权限与安全,这是理解Linux和Unix系统管理的关键。 首先,我们关注文件权限。在Linux和Unix中,每个文件和目录都有三个基本的权限:读(r)、写(w)和执行(x)。...

    《LINUX与UNIX SHELL编程指南》读书笔记 crack.pdf

    在《LINUX与UNIX SHELL编程指南》这本书中,作者详细介绍了Linux及Unix系统中关于文件的安全性和权限管理的核心概念。这部分内容非常重要,因为理解文件权限对于有效地管理和保护系统资源至关重要。 **1. 文件的...

    Linux零基础学习笔记 Shell编程-菜鸟入门(超详细)

    10. **权限与文件属性**:理解Linux的用户和组权限系统,以及`chmod`和`chown`命令的使用。 通过深入学习和实践这些内容,你将逐渐掌握Linux系统的基本操作,并具备编写简单Shell脚本的能力。记得,学习过程中要多...

    《LINUX与UNIX SHELL编程指南》笔记

    《LINUX与UNIX SHELL编程指南》是一本深入讲解Linux和Unix系统中shell编程的权威著作,对于理解和掌握shell脚本编写技巧具有重要的指导意义。本文将基于书中的主要章节和学习笔记,详细阐述shell、find命令以及后台...

    linux与unix_shel编程经典教程(第二版).pdf

    通过对《Linux与Unix Shell编程经典教程》的读书笔记进行总结,我们不仅了解了SHELL在Linux和Unix系统中的重要地位,还掌握了文件的安全与权限管理方面的基础知识。这对于学习Linux/Unix操作系统、进行系统管理和...

    《LINUX与UNIX SHELL编程指南》读书笔记

    在深入探讨《LINUX与UNIX SHELL编程指南》的读书笔记之前,让我们先理解什么是Linux和Unix Shell编程。Linux和Unix是两种广泛使用的类UNIX操作系统,它们提供了命令行界面(CLI),用户通过输入命令来执行任务。...

    Unix+shell+实例精解 学习笔记

    《Unix Shell 实例精解》是一本专注于Unix操作系统与Shell编程的学习笔记,它以其丰富的实战案例为亮点,帮助读者深入理解和掌握Unix环境下的命令行操作与脚本编程技巧。Unix Shell是Unix系统中的一个交互式命令解释...

    《LINUX与UNIX SHELL编程指南》读书笔记.pdf

    12. **脚本权限与执行**:设置脚本文件的执行权限(如`chmod +x script.sh`),并使用`./script.sh`来运行。 通过阅读《LINUX与UNIX SHELL编程指南》,你可以系统学习上述知识点,逐步提升在Linux和Unix环境中的...

    《LINUX与UNIX SHELL编程指南》

    《LINUX与UNIX SHELL编程指南》是一本深入讲解Linux和...结合书中的实例和《LINUX与UNIX SHELL编程指南》读书笔记-二次发布版.pdf,学习效果会更佳,因为笔记通常会提炼关键概念并提供实践经验,有助于巩固理论知识。

    linux与unix shell编程指南.pdf

    本文档全面介绍了Linux与Unix Shell编程中涉及到的基本文件安全和权限概念,以及常用的文本处理命令如awk、grep和sed。通过深入学习这些内容,读者不仅可以掌握如何管理文件权限,还能学会如何高效地处理文本文件。...

    LINUX与UNIX%20SHELL编程指南

    《LINUX与UNIX SHELL编程指南》是一本深入讲解Linux和UNIX Shell编程的经典书籍,作者张启峰在读书笔记中不仅归纳总结了书中的核心概念,还提供了丰富的实践示例,旨在帮助读者全面掌握Shell编程技能。以下是根据...

    精通shell编程 笔记

    本文档主要介绍了《LINUX与UNIX SHELL编程指南》这本书的部分内容,通过读书笔记的形式分享了Shell编程的基本概念、文件权限管理等方面的知识。 #### 二、文件安全与权限 文件的安全性和权限管理是Shell编程中非常...

    linux与unix shell编程指南

    通过阅读这本书和相关的读书笔记,读者不仅可以学习到基本的shell编程知识,还能深入理解Linux和Unix系统的工作原理,从而更好地管理和自动化日常工作。这本书对于系统管理员、开发者以及所有希望提高Linux终端技能...

    《UnixShell实例精解》-学习笔记.doc

    Unix Shell 实例精解学习笔记 本文档主要介绍 Unix Shell 的基础知识,涵盖了 Shell 的定义、主要功能、常见 Shell 命令、正则表达式的基础知识和应用。 一、Unix Shell 定义 Shell 是一种特殊的程序,被用作用户...

    UNIX系统编程学习笔记

    6. **权限与文件属性**:每个文件都有所有者、组和其他用户的读、写、执行权限。`chmod()`, `chown()`, `chgrp()`函数用于修改这些属性。此外,还有符号链接、硬链接等高级特性。 7. **Shell编程**:Bash是最常见的...

    Unix&Linux shell编程指南

    《LINUX与UNIX SHELL编程指南》读书笔记.pdf可能包含了作者对原书的解读和实践经验。笔记中可能会强调错误处理、调试技巧,以及如何利用awk、sed等文本处理工具增强Shell脚本的功能。此外,文件和目录的权限管理、...

    Shell学习笔记

    文件描述符的管理是Shell编程中不可或缺的一部分,学习笔记中讲解了如何重定向文件描述符,使用exec创建文件描述符,以及处理系统的标准文件描述符。数组和关联数组的使用也是学习笔记的重要内容之一,区分了数组和...

    《unix+shell+实例精解》学习笔记

    《Unix + Shell 实例精解》是一本深入探讨Unix操作系统及其强大的Shell脚本编程的书籍。这本书通过丰富的实例,帮助读者理解Unix系统的工作原理,并掌握Shell脚本的编写技巧,从而提升在Unix环境下的工作效率。 ...

    LinuxUNIX系统编程手册

    6. **权限与文件系统**:探讨文件权限、用户和组的概念,如何使用chmod()、chown()、chgrp()改变文件属性,以及如何遍历和操作目录。 7. **进程间通信**:包括管道(Pipe)、共享内存、消息队列、信号量和套接字等...

    shell编程

    Shell编程是Linux和Unix系统中的一种命令行解释器,它为用户提供了一个与操作系统交互的界面。通过Shell,用户可以执行系统命令、编写脚本并自动化日常任务。在深入讲解shell编程之前,先来理解一下shell的基本概念...

Global site tag (gtag.js) - Google Analytics