Linux知识——权限模型

前言:入手linux,权限模型是必须要先拿下的。小聊一下。

从实践入手,先有个大致印象:

ls -l

可以看到以下文件属性(随便找一个目录): 

drwxr-xr-x   2 root root     4096  8月 11 01:47 libvte-2.90-9/
lrwxrwxrwx   1 root root       22  9月 12 02:50 libvte2_90.so.9 -> libvte2_90.so.9.3200.1
-rw-r--r--   1 root root   640344  4月 17  2012 libvte2_90.so.9.3200.1
  1. 第1位的“d/l/-”表示文件类型,d:目录;-:普通文件;l:链接文件,指向另一个文件
  2. 2-10位的“rwxr-xr-x”表示当前文件针对不同用户对象所赋予的权限。按位平分3组,第1组对象为文件所有者,第2组对象为所有者所在组,第3组对象为系统的其他用户。rwx分别表示读,写,执行权限。但是对于文件和目录两种不同的文件类型,权限的解读是不一样的。详见下述。
  3. 第一个"root"表示当前文件所属用户,也就是创建该文件的用户,也是该文件的所有者。
  4. 第二个“root”表示当前文件所属用户组,也就是当前文件所有者所属组。

下面描述一下Linux权限模型:

在Linux系统中,用户被分成三类:1,当前用户;2,和当前用户同属一组的用户;3,其他用户。(对应于前面的三组“rwx”)
一个用户既可以属于一个组,也可以属于多个组。
一个文件同时属于:1,用户;2,用户组;(对应于前面的两个“root”,一个表示用户,一个表示组

Linux中的一个文件在正常情况下属于一个用户所有,将此用户称为文件的所有者(也称属主)。而将一些用户按某种规则分在一个组内,设置此组对文件操作的权限,这个组为文件的所属组。不属于这两个范畴的用户,统称为其他人(others)。

RWX对文件和目录的不同解读:

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限,否则可以进入目录,但不能读取目录下文件列表。
w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
x(eXecute,执行):对文件而言,具有执行文件的权限;对目录来说该用户具有进入目录的权限,否则可以浏览,但不能进入。

权限设置修改操作:

1,每个用户都拥有自己的专属目录,通常集中放置在/home目录下,这些专属目录的默认权限为rwx------:表示目录所有者本身具有所有权限,其他用户无法进入该目录。
2,执行mkdir命令所创建的目录,其默认权限为rwxr-xr-x,用户可以根据需要修改目录的权限。
3,用户登录系统时,用户环境就会自动执行umask命令来决定文件、目录的默认权限。
    u
mask:设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码umask是从权限中“拿走”相应的位,且文件创建时不能赋予执行权限。比如:umask 777,则权限值为000.
4,chmod和数字来改变权限
     chmod [-cfvR] [--help] [--version] mode file
      mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
  u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
  -c : 若该档案权限确实已经更改,才显示其更改动作
  -f : 若该档案权限无法被更改也不要显示错误讯息
  -v : 显示权限变更的详细资料
  -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
  --help : 显示辅助说明
  --version : 显示版本
例子:1.txt设为所有人都能读取:

chmod ugo+r 1.txt 或
chmod a+r 1.txt


chmod用数字来表示权限如 chmod 777 file

  1. 语法为:chmod abc file  

  其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 
  r=4,w=2,x=1
  若要rwx属性则4+2+1=7;
  若要rw-属性则4+2=6;
  若要r-x属性则4+1=5。

使用命令chown改变目录或文件的所有权
文件与目录不仅可以改变权限,其所有权及所属用户组也能修改,和设置权限类似,用户可以通过图形界面来设置,或执行chown命令来修改。

一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理。
例如:

chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx
chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx



你可能感兴趣的:(linux,权限)