Linux系统的用户和用户组管理
linux系统用户角色划分
用户在系统中是分角色的,在Linux系统中,由于角色的不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和GID识别的;特别是UID,在运维工作中,一个UID是唯一标识一个系统用户的账号。
用户账户:
超级用户root(0)
程序用户(1~499)
普通用户(500~65535)
超级用户:
默认是root用户,其UID和GID均为0。在每台unix/linux操作系统中都是唯一且真实存在的,通过它可以登录系统,可以操作系统中任何文件和命令,
拥有最高的管理权限。在生产环境,一般禁止root账号远程登录SSH连接服务器,以加强系统安全。
普通用户:
这类用户一般是由具备系统管理员root的权限的运维人员添加的。
程序用户:
与真实用户区分开来,这类用户的最大特点是安装系统后默认就会存在的,且默认情况不能登录系统,它们是系统正常运行必不可少的,
他们的存在主要是方便系统管理,满足相应的系统进程都文件属主的要求。例如系统默认的bin、adm、nodoby、mail用户等。由于服务器角色的不同,
有部分用不到的系统服务被禁止开机执行,因此,在做系统安全优化时,被禁止开机启动了的服务对应的虚拟用户也是可以处理掉的(删除或注释)。
用户的配置文件/etc/passwd
/etc/passwd文件中每行定义一个用户账号,有多少行就表示多少个账号,在一行中可以清晰的看出,各内容之间又通过”:”号划分了7个字段,这7个字段分别定义了账号的不同属性,passwd文件实际内容如下:
[root@Web ~]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
/etc/shadow
由于passwd文件必须要被所有的用户读,所以会带来安全隐患。而shadow文件就是为了解决这个安全隐患而增加的。
来看一下/etc/shadow的权限:
[root@Web ~]# ls -l /etc/shadow
----------. 1 root root 1059 4月 11 14:13 /etc/shadow
其文件内容为:
[root@Web ~]# head -5 /etc/shadow
root:$6$jmM2rFzPCFbmqBkf$oz3AUooR3qaV5uXU67HcXlYiE3hNf0sSsunk1eBTDPrGUOM1xYCyesGoj.ZLTIzdiXEdrnnqNyC5g8SsRnxQm.:16338:0:99999:7:::
bin:*:15615:0:99999:7:::
daemon:*:15615:0:99999:7:::
adm:*:15615:0:99999:7:::
lp:*:15615:0:99999:7:::
用户组配置文件/etc/group
/etc/group 文件是用户组的配置文件,内容包括用户与用户组,并且能显示用户归属哪个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特性。如果某 个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进入。
/etc/group文件就是记录GID与用户组的文件。/etc/group文件同/etc/passwd类似,其文件权限也是644:
[root@Web ~]# ls -l /etc/group
-rw-r--r--. 1 root root 832 4月 11 14:13 /etc/group
/etc/group的文件内容为:
[root@Web ~]# head -5 /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
/etc/gshadow
/etc/gshaow是/etc/group的加密文件,比如用户组的管理密码就是存放在这个文件。/etc/group和/etc/gshadow是互补的两个文件;比如大型服务器,针对很多用户和用户组,定制一些关系结构比较复杂的额权限模型,设置用户组密码是极有必要的。比如不想让一些非用户组成员永久拥有用户组的权限和特性,这时就可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码;/etc/gshadow格式如下,每个用户组独占一行;
[root@Web ~]# ls -l /etc/gshadow
----------. 1 root root 682 4月 11 14:13 /etc/gshadow
[root@Web ~]# head -5 /etc/gshadow
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon
/etc/skel目录
/etc/skel目录是用来存放新用户配置文件的目录,当我们添加新用户时,这个目录下的所有文件都会自动被复制到新添加的用户的家目录下;默认情况下,/etc/skel目录下的所有文件都是隐藏文件(以.点开头);通过修改、添加、删除/etc/skel目录下的文件,我们可为新创建的用户提供统一、标准的、初始化用户环境。
/etc/skel目录的内容:
[root@localhost ~]# ls -al /etc/skel/
total 64
drwxr-xr-x 3 root root 4096 Apr 30 17:20 .
drwxr-xr-x 91 root root 12288 May 2 10:01 ..
-rw-r--r-- 1 root root 33 May 13 2011 .bash_logout
-rw-r--r-- 1 root root 176 May 13 2011 .bash_profile
-rw-r--r-- 1 root root 124 May 13 2011 .bashrc
-rw-r--r-- 1 root root 515 Apr 7 2011 .emacs
drwxr-xr-x 4 root root 4096 Apr 30 17:20 .mozilla
/etc/login.defs配置文件
/etc/login.defs文件是用来定义创建用户时需要的一些用户的配置文件。如创建用户时,是否需要家目录,UID和GID的范围,用户及密码的有效期限等等。
/etc/default/useradd文件
/etc/default/useradd文件是在使用useradd添加用户时需要调用的一个默认的配置文件,可以使用useradd -D参数,这样的命令格式来修改文件里面的内容,当然也可以直接编辑修改。
useradd 添加账户
当使用useradd命令不加参数选项,后面直接跟所添加的用户名时,系统首先会读取配置文件/etc/login.defs和/etc/default/useradd文件中所配置的信息建立用户的家目录,并复制/etc/skel中的所有文件(包括隐藏的环境配置文件)到新用户的家目录中。
浙公网安备 33010602011771号