首页 > 代码库 > Linux用户和用户组

Linux用户和用户组

Linux用户和用户组  


 

Linux中有用户和用户组的概念。
用户分为三类:
(1)系统管理员用户, root,uid=0
(2)虚拟用户,比如bin,daemon等,uid=1-499
(3)普通用户,uid>=500
 
用户和用户组之间是多对多的关系。一个用户可以属于多个用户组,一个用户组也可以包含多个用户。一个用户虽然可以属于多个用户组,但是它的主用户组只能有一个。
 
一、查看用户
可以用id命令和finger命令来查看用户和用户组。
id的用法:id [username],查看username用户的用户名和用户组信息,省略username则查看当前用户的用户和用户组信息。
finger的用法:finger [username],查看username用户的信息,如果不加username则查看当前登录主机的用户信息。
 
二、切换用户(Switch User)
su命令用户切换用户。
用法一:su username,表示切换用户身份,但是不切换用户的运行环境。
用法二:su - username,表示切换用户身份的同时切换用户的运行环境。
从普通用户切换到根用户或另外一个普通用户需要输入目标用户的密码,如果从根用户切换到普通用户则不需要输入用户密码。
 
三、创建用户
只有根用户才能创建新用户。所以在创建用户之前要切换到根用户。根用户可以用passwd命令来为其他的普通用户设置密码,普通用户只能设置自己的密码。
方法一:
useradd user1  #创建用户
passwd user1  #为用户设置密码
这样创建的用户的其他属性都使用系统的默认值。uid是上一个用户的uid+1,家目录是/home/user1,没有用户备注,主用户组是与新建的用户同名的一个新的用户组,没有从属用户组,默认shell是/bin/bash。
 
方法二:在创建用户的时候自定义用户的各种属性,比如用户备注,默认shell,主用户组,从属用户组,家目录,uid等。
useradd -c usercomment -u uid -d /user/homedir -g mainGroup -G othergroup1, othergroup2 -s defaultshell username
passwd username
 
四、修改用户属性
修改用户属性的命令是usermod。
用法如下:
usermod -c newComment -d newHomeDir -g newMainGroup -G newOtherGroup1, newOtherGroup2 -s newDefaultShell username
这条命令可以修改用户username的用户备注(-c)、用户家目录(-d)、主用户组(-g)、从属用户组(-G)、默认shell(-s)
usermod命令的-u和-l选项可以修改用户的用户名和uid,用法如下:
usermod -u newUid -l newUsername username
需要注意的是当一个用户是登录用户时,不能用上述命令来修改用户的用户名和uid。
 
另外,可以用-O选项暂时锁定一个用户,不让它登录系统,可以用-U选项解锁用户。
 
五、删除用户
删除用户的命令是userdel。
用法一:
userdel username
这条命令可以删除用户,但是用户的家目录还在,如果确认用户目录中没有想要的文件,从而想继续删除用户的家目录,可以用rm -rf手动来删除。
用法二:
userdel -r username
加上-r选项的userdel命令可以在删除用户的同时删除用户的家目录。不过这样比较容易误删除用户的文件,一般不推荐这么做。
 
六、创建用户组
只有根用户才能创建用户组。
用法一:
groupadd newGroup
这样创建的用户组的gid是前一个用户组的gid加1。
用法二:
groupadd -g gid newGroup
这条命令可以在创建用户组的同时指定用户组的gid。
 
七、修改用户组的属性
修改用户组的属性的命令是groupmod。
方法如下:
groupmod -g newGid -n newGroupname groupname
这条命令将用户组的gid修改为newGid,将用户组名修改为newGroupname。
 
八、删除用户组
方法为:
groupdel groupname
如果有一个用户将此用户组作为它的主用户组,那么这个用户组不能被删除。
 
九、为用户组添加用户、删除用户
通过为用户添加用户组来将用户加入到用户组。
方法如下:
usermod -a -G groupname username
上面的命令可以将username用户加入到groupname用户组中去。
 
如果想将username用户的主用户组设置为groupname,可以用如下方法:
usermod -g groupname username
 
如果要将一个用户从某个用户组中删除,可以用如下方法:
gpasswd -d username groupname
 
 

 

Linux用户和用户组