Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29336344
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类:

2009-12-21 10:23:33

linux基本操作之shell专题一

[By:hkebao@126.com  Time:2009-12-20]

本篇专题主要讨论一下有关文件权限与安全

文件权限可分为三类:

1.   文件属主,创建该文件的用户

2.   同组用户,拥有该文件的用户组中的任何用户。

3.   其他用户,即不属于拥有该文件的用户组的某一用户。

通过ls –l命令

-rwxr-xr-x  1 root root    19 11 15 04:49 a

其中的:

Rwx           文件属主权限    前三位

r-x              同组用户权限    中间三位

r-x       其他用户权限    最后三位

出现了- 表示当前位置的权限禁止了!

文件类型:

即出现在文件权限最前面的那个标识字符。像- d l 等具体如下:

D      目录      drwxr-xr-x 表示这个是一个目录

L    符号链接(相当于快捷键)

s        套接字文件

b       块设备文件

c        字符设备文件

p       命名管道文件

-        普通文件

1.3 改变权限

Chmod命令的一般格式为:

Chmod [who] operator [permission] filename

Who的含义:

u       文件属主权限

g       同组用户权限

o       其他用户权限

a       所有用户(文件属主、同组用户及其他用户)

operator的含义:

+       增加权限

-            取消权限

=       设定权限

Permission的含义:

R       读权限

W      写权限

X       执行权限

S       文件属主和组set-ID

T       粘性位*

L       级文件加锁

示例:

写了一个shell脚本赋上执行权限方法:chmod u+x filename

我们一般是用上面的方法进行赋上权限或去掉权限的。当然我们也可以用下面这种方式绝对模式的办法进行操作权限

格式:chmod [mode] file

其中的mode 是一个八进制数

0400           文件属主可读           chmod u+r filename  (切记会将这个文件原来的权限去掉的!)

0200           文件属主可写           chmod u+w filename

0100           文件属主可执行       chmod u+x filename

0040           同组用户可读           chmod g+r filename

0020           同组用户可写           chmod g+w filename

0010           同组用户可执行       chmod g+x filename

0004           其他用户可读           chmod o+r filename

0002           其他用户可写           chmod o+w filename

0001           其他用户可执行       chmod o+x filename

如果能够记得住就直接可以 chmod 0001 表示的话

如果你要赋多个权限 就要进行八进制相加操作了!

Chmod 0600 filename   表示的是 0400 + 0200 即添加上了两个权限进来了!

 

有一个更好的办法:

上面的这几个是有特点的 前三个是针对文件属主的权限、中间三个是针对同组用户的权限、后面是针对其他用户的权限!

我们可以累积运算如下:

Chmod 666 相当于  rw-rw-rw-

Chomd 777         rwxrwxrwx

其实背后是通过了这个八进制运算出来的结果!

4 2 1  读代表4 写代表2 写代表 1  这样进行计算出来的!

 

注意一点:文件目录的权限要高于文件权限!

示例:

有一个文件其权限是:-rwx rwx rwx  应该来讲同组用户是能够有写权限的。但是由于这个文件所在的目录的权限位是:drwx r—r--  同组用户没有写权限。所以不能编辑!

 

1.6 suid/guid

Suid 意味着如果某个用户对属于自己的shell脚本设置了这种权限,那其他用户在执行这一脚本时也会具有其属主的相应权限。

示例:写一个脚本,然后设置一下它们的guid。这样我指定的一些用户只要执行这些脚本就能够完成相应的工作,而不用以DBA的身份登录,以免破坏数据库服务器。

查看UNIX中哪些命令也设置了guidsuid的方法

Cd /bin

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

ls -l | grep '^...s..s'     查找suidguid的!

 

设置suid/guid的例子

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

第二种办法:

示例二、文件的本来权限是 rwx r-x r-x

通过这样的赋权限之后就为 chmod u+s b                  rws r-x r-x

如果发现这个s为大写的S 则表示可以忽略它的存在了!

 

1.7 chown chgrp

你可以将你所创建的文件改变它的所有权,把它的所有权交给另一个合法用户。可 以用用户名或用户ID号来完成这一操作!

Chown –R –h owner file

将一个文件的所有权丢给另一个用户的!

1.7.3 找出你所属于的用户组

如果你希望查看自己属于哪些用户组,可以用如下的命令:

$Id

$uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10

(wheel) context=root:system_r:unconfined_t

1.7.4 找出其他用户所属的组

 

1.9 符号链接

存在两种类型的链接,软链接与硬链接。软链接其实就是一个指向文件的指针!

示例:

如果有一个文件位置在/usr/local/admin/sales 目录下有一个文件。现在想要让每个用户都想看到这份文件。那就可 以在每个用户的 $HOME目录下创建一个指向这个文件的链接。

命令的基本形式:

ln      [-s]   source_path       target_path

其中的路径可以是目录也可以是文件!

 

小结:

Chmod –R 将改变整个文件系统的权限。一定要小心!

suid  不要以根用户设置suid

 

阅读(875) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~