linux用户管理

一、用户和用户组

linux是多用户系统,要使用系统资源,必须有一个合法的账号,这就是一个用户。一个账号需要有用户名,需要设置密码,同时在系统里的每一个账号都会有一个唯一的32位整数ID,称为UID(User ID)。 
  linux还有用户组的概念,系统中的每一个用户都至少属于一个用户组(可以属于多个用户组),用户组也通过不同的ID来区分,称为GID(Group ID)。 
  系统中有三类用户:普通用户、系统用户、根用户。

普通用户:使用系统的真实用户,可以使用用户名密码登录系统。只能在用户自己的家目录以及其他进过授权的目录中进行操作,以及操作用属于该用户的文件。

系统用户:系统运行时必须有的用户,但并不是真实的使用者。比如mysql数据库服务,需要使用系统用户mysql来运行mysqld进程。

根用户:root用户,系统的超级用户,对系统拥有完全控制权,可以修改、删除任何文件,运行任何命令。

用户相关的信息包含用户名、UID、GID、家目录等信息保存在/etc/passwd文件中,原本密码也是保存在此文件,但是后来为了安全起见被移到了/etc/shdow文件中。

二、新增用户、修改密码、修改用户、删除用户

1.新增用户

命令:adduser + 用户名即可,需要root权限执行。比如:

该命令的执行过程中执行了很多用户无感知的行为:

①在/etc/passwd和etc/shadow文件末尾增加一条记录,同时分配用户UID;

②新建一个和用户名同名的用户组,如上newuser默认属于newuser用户组。

③为用户创建家目录,默认情况下家目录会创建在/home目录下,如/home/newuser。同时系统会在家目录下预先为用户创建一些配置文件,这些文件其实是有一个默认模板,即/etc/skel/文件夹(即把该文件夹下的所有文件复制到家目录)。

注:另外有命令useradd也是用来添加用户的,但是这个命令在ubuntu下是有较大差别的。具体为useradd只会执行创建用户不会进行默认的创建家目录、设置密码等步骤,创建的用户需要修改密码之后才能登录。

2.修改密码

命令:passwd + 用户名,其中用户名可选。

ubuntu下如果是修改当前用户密码,可以直接passwd,但是如果修改其他用户,则需要root权限。

3.修改用户

命令:usermod

之前已经说过,关于用户的一些基本信息会保存在/etc/passwd和/etc/shadow文件中,而usermod命令用于修改这两个文件以对用户进行一些修改,比如冻结/解冻用户、设置用户组等。

冻结用户(usermod -L username):

看到冒号隔开的第二列(密码)最前面有一个感叹号,表示该账户已被冻结。

解冻用户(usermod -U username),可以看到密码前没了感叹号:

设置用户组(usermod -g groupname username):

groups指令用来查看用户所属组。

4.用户删除

命令:userdel + 用户名,有一个最常用的参数-r。

该命令默认情况下删除用户不会删除用户的家目录等信心,但是加了-r就会将该用户的相关文件一起删除。

三、用户组

1.新增用户组

命令:groupadd + 用户组名,

2.删除用户组

命令:groupdel + 用户组名

3.查看用户所属用户组

命令:groups + 用户名,用户名省略则查看当前用户所在用户组。

¥赞赏