1.用户的角色。
用户的角色是通过UID识别的。
分为:
a . root 用户;
b. 虚拟用户,如:bin、daemon、adm、ftp、mail,nobody等;
c. 普通真实用户,这类用户能登陆系统,但是只能操作自己目录的内容,权限有限。这些用户是系统管理员添加的。
2. 用户配置文件
a. /etc/passwd 用户配置文件;
b. /etc/shadow 用户影子口令文件;
c. /etc/group 用户组(group)配置文件;
d. /etc/gshadow 用户组(group)的影子文件;
3./etc/passwd的内容理解
每一行是一个用户信息;一行有7个段位;每个段位用:分割。
beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
linuxsir:x:505:502:linuxsir open,linuxsir office,13898667715:/home/linuxsir:/bin/bash
beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
linuxsir:x:501:502::/home/linuxsir:/bin/bash
一字段:用户名。
二字段:口令。其实已被映射到/etc/shadow文件中。不过在板子中没有做映射,直接加密存放。
三字段:UID。Fedora系统会把前499个uid和gid预留出来,我们添加新用户是从500开始,GID也是从500开始。
四字段:GID。
五字段:用户名全称。可以不设置。
六字段:用户家目录所在的位置。
七字段:用户所用shell的类型。
Broadcom board linux /etc/passwd文件如下:
admin:ZlxaqKsG0BG3k0:0:Administrator:/:/bin/sh
support:UcRwe5ifVGqVI:0:0:Technical Support:/:/bin/sh
user:W.by6Dhlw9u/I:0:0:Normal User:/:/bin/sh
nobody:bN2AIeK00P9HQ:0:0:nobody for ftp:/:/bin/sh
4./etc/shadow文件的内容分析
它是/etc/passwd的影子文件,这个文件不由其产生。它的内容包括用户和被加密的密码以及其他/etc/passwd不能包括的信息,比如用户的有效期限,这个文件只有root权限才可以读取和操作。
内容包含9个段位,每个段位用:号分割。
beinan:$1$VE.Mq2Xf$
2c
9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7:::
linuxsir:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:
第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd是相同的
,这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的;
第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;
第三字段:上次修改口令的时间;这个时间是从
1970
年
01
月
01
日
算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;
第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;
第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;
第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;
第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;
第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的
1
月
1
日
开始的天数),如果这个字段的值为空,帐号永久可用;
第九字段:保留字段,目前为空,以备将来Linux发展之用;
5./etc/group内容具体分析
内容包括四个字段,用户组/用户组口令/GID/用户列表。
root:x:0:root,linuxsir 注:用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、linuxsir以及GID为0的其它用户;
beinan:x:500:linuxsir 注:用户组beinan,x是密码段,表示没有设置密码,GID是500,beinan用户组下包括linuxsir用户及GID为500的用户;
linuxsir:x:502:linuxsir 注:用户组linuxsir,x是密码段,表示没有设置密码,GID是502,linuxsir用户组下包用户linuxsir及GID为502的用户;
helloer:x:503: 注:用户组helloer,x是密码段,表示没有设置密码,GID是503,helloer用户组下包括GID为503的用户,可以通过/etc/passwd查看;
而/etc/passwd 对应的相关的记录为:
root:x:0:0:root:/root:/bin/bash
beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
linuxsir:x:505:502:linuxsir open,linuxsir office,13898667715:/home/linuxsir:/bin/bash
helloer:x:502:503::/home/helloer:/bin/bash
由此可以看出helloer用户组包括 helloer用户;所以我们查看一个用户组所拥有的用户,可以通过对比/etc/passwd和/etc/group来得到;
6.Linux 文件属性的详解
2408949 -rwxr-xr-x 1 root root 7 04-21 12:47 lsfile.sh
2408830 drwxr-xr-x 2 root root 4.0K 04-21 12:46 mkuml-2004.07.17
2408260 drwxr-xr-x 2 root root 4.0K 04-21 22:15 mydir
2408258 lrwxrwxrwx 1 root root 7 04-21 22:16 sun001.txt -> sun.txt
2408263 -rw-r——r—— 2 root root 11 04-20 14:17 sun002.txt
2408263 -rw-r——r—— 2 root root 11 04-20 14:17 sun.txt
第一字段:inode
第二字段:文件种类和权限;- 文件,d目录,l连接文件
第三字段:硬链接个数;
第四字段:属主;
第五字段:所归属的组;
第六字段:文件或目录的大小;
第七字段和第八字段:最后访问或修改时间;
第九字段:文件名或目录名
软连接和硬连接:
软连接的源文件删除后,连接文件也被删除,但是他们的inode值却是不同的。ln –s。
硬连接,内容修改时两文件会同时变化,但是删除一个文件并不影响另一个。目录文件无法硬连接。命令:ln。
文件的权限:
每个文件或目录都有一组9个权限位,每三位被分为一组,他们分别是属主权限位(占三个位置 )、用户组权限位(占三个位置)、其它用户权限位(占三个位置)。比如rwxr-xr-x ,我们数一下就知道是不是9个位置了,正是这9个权限位来控制文件属主、用户组以及其它用户的权限。
umask命令来设定默认的文件属性。
setuid和setgid。前者设置属主权限位中的执行权限,后者设置用户组权限位中执行权限。设置之后,’x’ -> s , ‘-‘ -> S