Linux常用命令之--useradd,userdel,usermod,groupadd,groupdel,groupmod,gpasswd
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令之--useradd,userdel,usermod,groupadd,groupdel,groupmod,gpasswd相关的知识,希望对你有一定的参考价值。
参考技术A 会创建用户,并同时创建和用户同名的组;邮件文件;家目录(默认存放在/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 [选项] <用户名>
常用选项
• -r 删除用户登入目录以及目录中所有文件 (不加-r不会自动删除同名组,邮件文件和家目录,如果先通过userdel删除了用户,之后想删除其同名组,邮件文件和家目录需要用rm命令手动一个个删除),但是如果只删除了用户,没删除的里面的各种文件使用的还是原来创建这个用户时的UID,所以一旦其他用户使用了这个UID,还是没办法通过rm手动删除
• -f 强制删除用户
语 法:usermod [选项] <用户名>
常用选项
• -c:改变用户的描述信息
• -d:改变用户的主目录,如果加上-m则会将旧家目录移动到新的目录中去 (-m应加在新目录之后)
usermod -d 目的文件夹 用户名
• -g:改变用户的主属组
• -G:设置用户属于哪些组
• -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文件达到管理组的目的,也可以使用以下指令:
※一个组的管理员不一定要包含在这个组当中
※一个组可以有多个管理员
※一个人也可以在多个组中担任管理员
例: 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常用命令
useradd & userdel
$ useradd zhangsan # 添加用户zhangsan
$ useradd -g root zhangsan # 添加用户zhangsan,并指定其组为root
$ useradd -d /home/zs zhangsan # 添加用户zhangsan,并指定其家目录为/home/zs
$ useradd -r zhangsan # 创建一个系统用户
$ useradd zhangsan -u 520 # 创建用户且指定ID号为520
$ id zhangsan # 查看用户zhangsan的用户ID号
$ userdel zhangsan # 删除用户zhangsan,保留家目录
$ userdel -r zhangsan # 删除用户zhangsan及家目录
$ userdel -f zhangsan # 强制删除用户,即使用户处于登陆状态也可删除
shell脚本批量添加与删除用户
#!/bin/bash
for i in {1..200} do
useradd user$i
done
for i in {1..200} do
userdel user$i
done
groupadd & groupdel
$ groupadd admin # 创建admin组
$ groupadd -g 800 admin # 创建admin组,且指定组ido 800
$ groupadd -r admins # 创建系统组群
$ groupdel admin # 删除用户组,如果组下有用户则不能删除
以上是关于Linux常用命令之--useradd,userdel,usermod,groupadd,groupdel,groupmod,gpasswd的主要内容,如果未能解决你的问题,请参考以下文章