[学习笔记]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

/*--------------------------------------             chown和chgrp            --------------------------------------*/

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>

/*--------------------------------------             chown和chgrp            --------------------------------------*/

 

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-->

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值