Linux用户和用户组管理

该内容来摘自于鸟叔的Linux私房菜。

Linux的每个用户包含两个ID,一个是用户ID,一个是用户组ID。系统会根据/etc/passwd和/etc/group的设定来决定用户的访问权限。下面对用户和用户组的常用命令进行说明。

  • /etc/passwd文件
$ grep 'dmtsai' /etc/passwd
monkey:x:503:504::/home/monkey:/bin/bash

一共包含7个字段,以“:”分隔:

第一个为用户名;第二个 ”x“ 表示密码,密码被隐藏在/etc/shadow里面;第三和第四,503和504分别是UID(用户标识符)和GID(组标识符);第五段这里是空,表示用户信息说明。第六段是用户的$HOME文件夹; 最后一个是shell 路径。

  • /etc/group文件
$ head -n 2 /etc/group
root:x:0:root
bin:x:1:root,bin,daemon

一共包含4个字段,第一个是用户组名称,紧接着是密码,然后是用户组ID, 最终的是用户组包含的用户,以“,”分开。

另外一个关于用户组的很重要的概念是“初始用户组”和“有效用户组”。“初始用户组”顾名思义就是在创建用户的时候默认的用户组,于用户名同名。“有效用户组”指的是用户之后被加入的某个组。那么这里就存在一个问题,如果初始创建一个文件,怎么知道是否输入哪个组还是两个组都都有权限。这里就需要使用groups命令:

$ groups
monkey users

这里显示monkey用户属于monkey和users用户组。而第一个“monkey”表示的就是有效用户。那么当用户新建文件的时候,文件默认的权限就属于"monkey"这个用户组。如果需要修改有效用户组,可以通过newgrp命令:

$ newgrp users
$ groups
users monkey

OK, 有了以上的概念,下面可以进行账号管理了。这里只关心一下几个问题:

  • 如何创建用户,并且设置或者之后微调其用户组权限。
$ useradd [-u UID] [-g 初始用户组] [-G 次要用户组] 用户账号名
范例:
$ useradd -u 700 -g users vbird2
$ ll -d /home/vbird2
drwx------ 4 vbird2 users 4096 Feb 25 09:59  home/vbird2
另外,usermod可以微调用户权限,用法与useradd类似。

$ (sudo) usermod [-G 添加的用户组] [-a append到该用户组]
范例:
$ usermod -G wheel -a vbird2 // 将vbird2用户添加到wheel用户组中
  • 修改密码。自然是使用passwd命令,并且所有人都可以使用来修改命令。
  • 删除用户组。使用userdel命令。
posted @ 2016-04-14 09:59  JimmyTY  阅读(457)  评论(1编辑  收藏  举报