用户管理
useradd : 添加用户
会创建用户,并同时创建和用户同名的组;邮件文件;家目录(默认存放在/HOME/里的同名文件夹里)
语 法:useradd [选项] <用户名>
常用选项 :
• -c <备注> 加上备注文字
• -d <目录> 指定用户登入时的启始目录
useradd -d /tmp/jack jack
cat /etc/passwd jack
已经为/tmp/jack了,说明创建成功了。但是cd到/tmp/里看不到
jack的文件夹,是因为权限不够,如果关掉SeLinux或者赋予它权限了就可以看到jack文件夹了
• -g <群组> 指定用户所属的群组
• -G <群组> 指定用户所属的附加群组
• -m /-M 自动建立(-m)用户的登入目录或不自动创建
• -n 取消建立以用户名称为名的群组
• -s <shell> 指定用户登入后所使用的shell (不加-s的默认shell为/bin/bash)
/sbin/nologin 没有可登录的shell
• -u <uid> 指定用户ID
useradd -n -G natasha tom
建新用户在不指定的情况下UID和GID是一样的,但是因为这里用-n取消建立以用户
名称为名的群组,所以cat /etc/passwd
的时候发现GID为100,和cat /etc/group里users组的GID是一样的,由此可知在不建立以用户名称为名的群组的时候新建的用户主属组都是users,而用-G指定tom的附加群组为natasha,因此在cat /etc/group
的时候出现的是natasha:x:1003:tom (1003是natasha的GID)
useradd -g natasha tom
用-g指定tom的主群组为natasha,因此在cat /etc/group里没有tom群组,在cat
/etc/passwd里出现的是tom:x:1006:1003::/home/tom:/bin/bash
(1003是natasha的GID)
userdel :删除用户
语 法:userdel [选项] <用户名>
常用选项
• -r 删除用户登入目录以及目录中所有文件 (不加-r不会自动删除同名组,邮件文件和家目录,如果先通过userdel删除了用户,之后想删除其同名组,邮件文件和家目录需要用rm命令手动一个个删除),但是如果只删除了用户,没删除的里面的各种文件使用的还是原来创建这个用户时的UID,所以一旦其他用户使用了这个UID,还是没办法通过rm手动删除
• -f 强制删除用户
usermod:修改用户信息
语 法:usermod [选项] <用户名>
常用选项
• -c:改变用户的描述信息
• -d:改变用户的主目录,如果加上-m则会将旧家目录移动到新的目录中去 (-m应加在新目录之后)
usermod -d 目的文件夹 用户名
• -g:改变用户的主属组
• -G:设置用户属于哪些组
[root@localhost tmp]# id mantou
uid=8892(mantou) gid=8892(mantou) groups=8892(mantou)
[root@localhost tmp]# usermod -G stu mantou
[root@localhost tmp]# id mantou
uid=8892(mantou) gid=8892(mantou) groups=8892(mantou),1000(stu)
[root@localhost tmp]# usermod -g stu mantou
[root@localhost tmp]# id mantou
uid=8892(mantou) gid=1000(stu) groups=1000(stu)
• -l:改变用户的登录用名
不会改变属组的名称,原来的登录用户属于哪个组,现在还是属于哪个组
• -s:改变用户的默认shell ,如果将一个用户的shell指定为sbin/nologin的话用su -l <用户名>进不去,会显示回显:This account is currently not available.
• -u:改变用户的UID
• -L:锁住密码,使密码不可用,这时在/etc/shadow文件里该用户的密码第一位为!
通过 usermod -L <用户名>锁住密码,这时在root用户下su -l <用户名>还是可以进入到系统中,因为root用户su到任意用户里都是不需要密码的。但是如果登出root用户,用该用户登录时就会显示sorry,that didn’t work,please try again.
• -U:为用户密码解锁
passwd <用户名>,然后输入两次密码改密码,root的可以修改其他user的密码,但是root以外的用户只能修改自己的密码。只有root用户可以用这个命令改密码。如果是普通用户要改自己的密码的话,直接登录自己的普通用户账户,输入passwd即可改密码。
root以外的其他用户需要遵循密码最小生存周期,比如如果是1的话一天之内最多改一次。而root用户没有这个限制
组管理
系统用户可以直接修改/etc/group文件达到管理组的目的,也可以使用以下指令:
groupadd:添加一个组
groupdel:删除一个已存在组(注:不能为任何一个人的主属组)
groupmod –n <新组名> <原组名> :为一个组更改名字
gpasswd –A <用户名> <用户组>:将一个用户设置为组管理员
※一个组的管理员不一定要包含在这个组当中
※一个组可以有多个管理员
※一个人也可以在多个组中担任管理员
例:gpasswd -A user2 pools
将user2设置为组管理员
想将管理员改成user3的时候:gpasswd -A user3 pools
想新增管理员user3的时候:gpasswd -A user2,user3 pools
cat /etc/gshadow
可以看到一个组的管理员是谁
• gpasswd –a <用户名> <用户组>:将一个用户添加入一个组(从属组)
• gpasswd –M <用户名…> <用户组>:将多个用户添加入一个组(从属组)
※这里的M是modify的缩写,添加完会覆盖原来已经添加到这个组的组员
• gpasswd –d <用户名> <用户组>:将一个用户从一个组删除
gpasswd只能修改用户的从属组,想指定/改变主属组只能通过useradd/usermod
组管理员作用
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限
用户可以在登录后,使用命令newgrp
切换到其他用户组,例如:newgrp root
表示将当前用户切换到root用户组,前提时root用户组确实是该用户的主组或附加组