1)$ vim /etc/passwd
在/etc/passwd 中,每一行都表示的是一个用户的信息;一行有7个段位;每个段位用:号分割,如下所示:
第一字段:用户名(也被称为登录名);在上面的例子中,用户名分别是 root 和 daemon等;
第二字段:口令;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow 文件中;
第三字段:UID ;请参看本文的UID的解说;
第四字段:GID;请参看本文的GID的解说;
第五字段:用户名全称,这是可选的,可以不设置;
第六字段:用户的家目录所在位置;root 这个用户是/root ,而yanxia.dong 这个用户是/home/yanxia.dong ;
第七字段:用户所用SHELL 的类型,用的是 bash ;所以设置为/bin/bash ;
2)关于UID 的理解:
UID 是用户的ID 值,在系统中每个用户的UID的值是唯一的,更确切的说每个用户都要对应一个唯一的UID ,系统管理员应该确保这一规则。
系统用户的UID的值从0开始,是一个正整数,至于最大值可以在/etc/login.defs 可以查到,一般Linux发行版约定为60000;
在Linux 中,root的UID是0,拥有系统最高权限;UID 在系统唯一特性,做为系统管理员应该确保这一标准,UID 的唯一性关系到系统的安全,
应该值得我们关注!比如我在/etc/passwd 中把yanxia.dong的UID 改为0后,你设想会发生什么呢?
---- yanxia.dong这个用户会被确认为root用户。yanxia.dong这个帐号可以进行所有root的操作;
UID 是确认用户权限的标识,用户登录系统所处的角色是通过UID 来实现的,而非用户名,切记;
把几个用户共用一个UID 是危险的,比如我们上面所谈到的,把普通用户的UID 改为0,和root共用一个UID ,这事实上就造成了系统管理权限
的混乱。如果我们想用root权限,可以通过su或sudo来实现;切不可随意让一个用户和root分享同一个UID ;
一般情况下,每个Linux的发行版都会预留一定的UID和GID给系统虚拟用户占用,虚拟用户一般是系统安装时就有的,是为了完成系统任务所
必须的用户,但虚拟用户是不能登录系统的,比如ftp、nobody、adm、rpm、bin、shutdown等;
3)关于GID的理解
GID和UID类似,是一个正整数或0,GID从0开始,GID为0的组让系统付予给root用户组;系统会预留一些较靠前的GID给系统虚拟用户(也被
称为伪装用户)之用;每个系统预留的GID都有所不同,比如Fedora 预留了500个,我们添加新用户组时,用户组是从500开始的;而Slackware
是把前100个GID预留,新添加的用户组是从100开始;查看系统添加用户组默认的GID范围应该查看 /etc/login.defs 中的 GID_MIN 和GID_MAX 值;
我们可以对照/etc/passwd和/etc/group 两个文件;我们会发现有默认用户组之说;我们在 /etc/passwd 中的每条用户记录会发现用户默认的GID ;
在/etc/group中,我们也会发现每个用户组下有多少个用户;在创建目录和文件时,会使用默认的用户组;
可以看到esl这个组中列出11个用户,/etc/passwd中是用户默认的GID。