linux用户、口令、用户组管理详解


linux的用户管理是操作linux至关重要的步骤,如过设置不当或者错误,会直接影响系统的安全性和稳定性。
Linux用户管理最重要的两个文件就是/etc/passwd和/etc/shadow,前者是保存账号相关的,后者是保存密码的。(用户组在/etc/group)

linux用户管理

增加用户

格式:useradd -d 目录 -g 用户组 -s 壳登录 新增的用户名

-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,能创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则能重复使用其他用户的标识号。
-p 这个命令是需求提供md5码的加密口令,普通数字是不行的。

命令:adduser -d /home/ugit -g ftp -s /sbin/nologin user
解说:增加用户user,组是ftp,家目录是/home/ugit,不允许ssh登录
P.S.命令useradd和adduser是一样的。

删除用户

格式:userdel 选项参数 用户名
命令:userdel -r user
解说:常用的选项是-r,它的作用是把用户的主目录一起删除。

修改用户

修改用户账号就是操作如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令,格式如下:
格式:usermod 选项 用户名
常用的选项包括-c,-d,-m,-g,-G,-s,-u,-o等,这些选项的意义和useradd命令中的相同,能为用户指定新的资源值。
其中只有终极管理员才有权限修改帐号名,如果用sudo命令来对普通帐号授权也行。
另外,有些系统能使用如下选项:-l 新用户名,这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
命令:usermod -s /bin/ksh -d /home/ugit -g developer ugit
解说:此命令将用户ugit的登录Shell修改为ksh,家目录改为/home/ugit,用户组改为developer。
命令:usermod zte1 -g cheng
解说:此命令是改动用户zte1所属的组为cheng这个组

查看用户信息:

格式:id 用户名
命令:id user
解说:可查看user的uid、gid、group等信息

linux用户口令管理

修改指定用户密码

格式:passwd 选项参数 用户名
选项参数:-l 锁定口令,即禁用账号。
选项参数:-u 口令解锁。
选项参数:-d 使账号无口令。
选项参数:-f 强迫用户下次登录时修改口令。

修改当前用户密码

$如果不填写用户名,则修改当前用户的口令。
命令:passwd ugit
解说:回车后会要求输入新的密码两次。

修改其他用户的口令

如果是超级root用户,可以用下列形式指定任何用户的口令:
passwd 用户名(即参数为空也行)

linux用户组管理

增加用户组

格式:groupadd 选项 用户组[用户组添加后,将用户进行组赋予用chown和chgrp指令]
选项参数有:
-g GID 指定新用户组的组标识号(GID)。
-o 一般和-g选项同时使用,表示新用户组的GID能和系统已有用户组的GID相同。
命令:groupadd group1
解说:此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

删除用户组

格式:groupdel 用户组
命令:groupdel group1
解说:此命令从系统中删除组group1。

修改用户组

格式:groupmod 选项 用户组
常用的选项有:
-g GID 为用户组指定新的组标识号。
-o 和-g选项同时使用,用户组的新GID能和系统已有用户组的GID相同。
-n 新用户组 将用户组的名字改为新名字
命令:groupmod -g 102 group2
解说:此命令将组group2的组标识号修改为102。

查看用户组

格式:group 用户组
命令:groups ugit
解说:该命令查看的是ugit这个用户组的属性,某些shell不支持可能要换一个shell。

其他

此外,如果一个用户同时属于多个用户组,用户能在用户组之间转换,就可以使用具有其他用户组的权限。
普通用户在登录后,使用命令newgrp转换到其他用户组,获取其他用户组的权限。
格式:newgrp 用户组
命令:$ newgrp root
解说:命令将当前用户转换到root用户组。
现在说一下/etc/passwd的解析:
ugit:x:506:502::/home/ugit:/sbin/nologin
上述一行表示ugit用户的编号是506,用户组编号是502,家目录是/home/ugit,且不允许ssh登录。


原文链接:https://blog.yongit.com/note/85692.html