linux下的权限问题

转自:http://www.lslnet.com/linux/dosc1/03/linux-123273.htm

linux下的权限问题

在linux中的权限,是linux中一个比较有趣的问题,你可以使用ll或者ls -l就可以看到。一下是我电脑上的东东。

# ll

total 69840

-rw-r--r--   1 root       sys             19 Jan  1  1970 bootconf

drwxr-xr-x   5 root       sys           3072 Jan  8  1970 build

drwxrwxrwx   5 root       sys           1024 Jan  3  1970 dlkm

drwxrwxrwx   5 root       sys           1024 Jan  3  1970 dlkm.vmunix.prev

-rw-r--r--   1 root       sys           2244 Mar 17 02:22 ioconfig

-r--r--r--   1 root       sys             82 Jan  1  1970 kernrel

drwxr-xr-x   2 root       sys           1024 Mar 17 02:27 krs

drwxr-xr-x   2 root       root          1024 Mar 17 02:22 krs_lkg

drwxr-xr-x   2 root       root          1024 Mar 17 02:27 krs_tmp

drwxr-xr-x   2 root       root         65536 Jan  1  1970 lost+found

-rw-------   1 root       root            12 Mar 17 02:22 rootconf

-rw-r--r--   1 root       sys           1145 Jan  3  1970 system

drwxr-xr-x   2 root       sys           1024 Jan  1  1970 system.d

-rw-r--r--   1 root       sys            992 Jan  3  1970 system.prev

-rwxr-xr-x   1 root       sys        14319984 Jan  3  1970 vmunix

-rwxr-xr-x   1 root       sys        21061664 Jan  3  1970 vmunix.prev

1、umask值:它定义了用户新建文件以及文件夹的所具有的权限。

这同windows里面的权限继承有点相似。

umask的配置/etc/profile

umask的值的算法:这可能是很多linux爱好者比较迷惑的地方。我在这里就贡献一个我的自己总结的一个算法,有不正确的请大家一起来探讨一下。

umask的值+chmod文件的值=666

umask的值+chmod文件夹的值=777

比如你新建了一个文件,myfile,你的umask的值是022那么这个文件具有的权限是多少乃?是644。哈哈,请注意,凡是具有可执行权限的内容都要使用第二个公式。

2、权限位和修改

rwx  rwx  rwx

所有者 所有者所在的组 其他用户

如果用数字表示,r=4,w=2,x=1。r是读的意思,w是写的意思,x是执行。

你可以使用命令来修改权限。一般情况下,这个命令只能有root来执行。请注意。

chmod [参数] [模式] <文件或者目录>; /符号标记模式

[参数] -c 只有在文件的权限确认改变才进行详细说明

-f 不输出权限不能改变的文件的错误

-v 详细说明权限的变化

-r 改变目录及其子目录的文件的权限(比较有用)

[模式] [ugoa] [+-=] [rwxXs]

u:文件的所有者

g:所有者所在的组

o:其他的组

a:其他的用户

+:增加

-:去掉

=:指定文件的权限

r:是读的意思

w:是写的意思

x:是执行

X:只有目标文件对某些用户是可执行的火灾该目标文件是目录是才追加X属性。

t:T位,拒绝删除的权限位

s:设置SUID,SGID,指拥有这样的权限的可执行程序当某一用户执行的时候拥有属主或者属主所在的组的权限。

当然,你也可以使用数字来表示权限,用数值请注意了

XYZ,四个位

x代表文件的类型,你只有通过mc才能看到。

y代表SUID,SGID,T位,其中SUID=4,SGID=2,T位=1

Z代表权限位r=4,w=2,x=1

比如现在我要修改一个文件的权限,让它的权限为属主拥有所有权限,属主所在的组拥有读和写的权限,其他用户拥有读的权限,并防止其他用户删除我的文件。那么执行

#chmod 1764 myfile

用字符表示就是

#chmod u+rwx,g+rw,o+r,a+T myfile

3、修改属主和属主所在的组

使用chown来修改

比如你要将myfile的属主修改为nicry的,那么请使用

#chown nicry myfile

如果你要将文件的属主所在的组改为sohubbs组,请使用

#chown .sohubbs myfile

和在一块就是

#chown nicry.sohubbs myfile

注意,该命令为root专用。

相关推荐