Linux用户和用户组管理
Linux系统是一个多用户多任务的分时操作系统,任何一个使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后通过这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问 ;另一方面也可以帮助用户组织文件,并为用户提供安全保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。
useradd 选项 用户名
参数说明:
选项:
用户名:
指定新账号的登录名。例:useradd -d /home/sam -m sam
此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)。
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
删除一个已有的用户账号使用userdel
命令,其格式如下:
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
userdel -r sam
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod
命令,其格式如下:
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等
,这些选项的意义与useradd
命令中的选项一样,可以为用户指定新的资源值。
例:usermod -s /bin/aaa -d /home/bbb -g developer sam
此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd
。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
passwd 选项 用户名
可使用的选项:
如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:
$ passwd Old password:****** New password:******* Re-enter new password:*******
如果是超级用户,可以用下列形式指定任何用户的口令:
# passwd sam New password:******* Re-enter new password:*******
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
groupadd 选项 用户组
可以使用的选项有:
例:group -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。
groupdel 用户组
groupmod 选项 用户组
常用的选项有:
例1:
groupmod -g 102 group2
将group2组id修改为102
例2:
groupmod -g 1000 -n group3 group2
将组group2 id改为1000,组名改为group3
用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。
例:
newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组
完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
下面分别介绍这些文件的内容。
sam:x:200:50:Sam san:/home/sam:/bin/sh
字段1:用户名
字段2:密码占位符
字段3:用户的uid 0 表示超级用户,500-60000普通用户,1-499程序用户
字段4:基本组的 gid现有组才有用户
字段5:用户信息记录字段
字段6:用户的家目录
字段7:用户登录系统后使用的命令解释器
sam:EkdiSECLWPdSa:9740:0:0::::
字段1:用户名
字段2:用户密码加密后的字符串
字段3:距离1970/1/1密码最近一次修改时间
字段4:密码的最短有效期
字段5:密码最长有效期90
字段6:密码过期前7天警告
字段7:密码的不活跃期
字段8:用户的失效时间
users::20:root,sam
字段1:组名
字段2:密码 / 口令
字段3:组标识号
字段4:组内用户列表
原文:https://www.cnblogs.com/xiangbing123/p/13348103.html