日期:2014-05-16  浏览次数:20504 次

菜鸟快速入门UNIX和LINUX文件权限

1、文件权限(不包括setuid和setgid):####

从左至右4个#表示特殊权限位、用户、用户所在的组、其它组。如果不使用特殊权限位,第一个#应为0,比如0755表示用户的权限值是7,用户所在的组的权限值是5,其它组的权限值是5,无特殊权限。

2、权限值:rwx

?

1)

r-读取

w-写

x-执行

比如:

rwx表示能同时读取、写和执行

-wx表示能写和执行,不能读取,-表示禁止和不能。

r-x表示能读和执行,不能写

2)

chmod [who] [opt] [mode] 文件/目录名

其中who表示对象,是以下字母中的一个或组合:

u:表示文件所有者
g:表示同组用户
o:表示其它用户
a:表示所有用户
opt则是代表操作,可以为:
+:添加某个权限
-:取消某个权限
=:赋予给定的权限,并取消原有的权限
+表示增加权限,-表示减少权限,=表示确定权限

比如:取消文件所有者的写文件权限,给予读的执行权限

%chmod u-w,u+rx myfile

?

可以把权限位表示成一个三位(二进制位),比如说rwx表示111,111的二进制转换成10进制为7

我们温习一下3位二进制转换成十进制:用*代替一位

***:当其中一个*为0时,表示0,否则第1个*表示2的2次方,为4,第2个*表示2的1次方为2,第1个*表示2的0次方为1

?

?

比如:

101=>4+0+1=5 表示r-x

110=>4+2+0=6 表示rw-

?

我们可以选择使用特殊位外加3个十进制数的方式表示权限

比如:给予用户、用户组和其它用户组的文件读写权限,不能执行

%chmod??0666 myfile

3、特殊权限位,权限位的第1位,用于提权执行一些特权命令

4-setuid,给予生效UID权限 (以其身份运行的用户ID),非真实用户UID

2-setgid,给予生效GID权限,以其身份所在的用户组运行的组ID

1-sticky,设置了该位后,其下的文件只能被文件的所有者删除了

?

什么是真实用户id,即拥有或启动进程的用户UID,什么是生效UID,即进程以其身份运行的用户ID。

比如普通用户运行passwd,实际是以?root身份修改密码,需要提权。

setgid同setuid一样。

比如:

%chmod 0755 myfile

在未提权的情况下应是

rwx r-x r-x

?

?

setuid后

%chmod 4755 myfile

其权限如下:

rws r-x r-x 其中s表示提权。

?

?

setgid后

%chmod 2755 mfile

其权限如下:

rwx r-s r-x 其中s表示提权。

?

sticky后

%chmod 1757 mfile?

-rwx r-x rwt 其中t表示sticky。

?

?