进程是用户执行了可执行文件后生成的,这个可执行文件(such as:root root rwxr-xr-x /bin/ls) 是有属主和属组的。用户执行命令前,系统要核对用户的权限,看看他的属主和属组是否具有访问权限。tom 这个用户对ls这个可执行文件,只有读和执行的权限。
当用户启动一个进程,这个进程肯定是以这个用户的身份运行的。这个进程可以访问哪些资源,是取决于这个用户的身份,即他的属主和属组,以及这个文件的属主和属组。
Example:
tom对ls有r-x的访问权限,当tom执行了ls,ls进程则与ls可执行文件没有关系了,并具有了tom这个命令发起者的权限。(ls进程也是有属主和属组的,谁发起了进程,就以谁的身份去执行。所以这个时候,ls进程访问那些资源/文件,不是取决于这个ls可执行文件的权限,只取决于用户/执行者的权限)
在执行ls a.txt时,系统会查看ls进程的属主和属组,看是否ls进程有访问a.txt的权限。
whatis password
man 5 passwd
系统用户也是有家目录(home directory)的,但系统用户不能像一般用户有独立的/home/xxx目录,也不能登录(大多系统用户的shell是/sbin/nologin)。
一般用户登录时,默认会打开一个shell,大多都是/bash/shell
在/etc/shell中的文件出现的shell才是合法shell。
man 5 shadow
/etc/shadow
$1$,说明密码是用MD5做了hash。
*与!!说明用户是被locked的。
problem checking.
在创建用户的时侯,如果没有为这个用户指定一个组,则会创建一个与用户同名的基本组,而且ID号一般保持一致(如果GID已经被占用了除外)。
在一般情况下,UID和GID 相同。不同的话,此用户会被视为特殊用户。由于ID不一致,这种用户会在权限上和设定上有所不同。
无论是基本组还是附加组,他们的GID必须要事先存在,才可以给用户指定使用。
附加组可以多个用户属于这个组。
-c 注释
-d 家目录
-s 指定shell路径
/sbin/nologin 不能登录
/bin/tcsh 一般用户的默认shell