3-16 Linux中删除用户 --- userdel

3-16 Linux中删除用户 --- userdel,第1张

linux中删除一个用户 userdel。

-r:连同家目录和邮箱一起删除。

当 useradd 新建一个用户的时候,系统会在几个路径下新建几个用户同名的文件或目录,以便记录用户专属资料。这几个地方分别是:

/etc/passwd:记录了用户的账号信息;

/etc/shadow:记录了用户对应的密码信息;

/etc/group:记录了组用户的信息;

/etc/gshadow:记录了组用户的密码信息;

/home/username:用户的家目录;

/var/spool/mail/username:用户的邮箱目录;

1、首先创建一个用户,查看相关目录下是否生成对应的文件 或 目录。

创建 test01 用户,/etc/passwd 生成了 test01 的账户信息。

/etc/shadow 生成了 test01 的密码信息。

/etc/group 生成了 test01 的组用户的信息。

/etc/gshadow 生成了 test01 的组用户的密码信息。

/home/ 目录生成 test01 的家目录。/var/spool/mail/ 目录生成了 test01 的邮箱文件。

综合上述,创建一个用户会在相关路径下生成对应的文件 和 目录用以作信息记录。

2、用 userdel -r userneme 删除一个用户,查看相关目录下是否删除对应的文件 或 目录。

/etc/passwd 删除了 test01 的账户信息。

/etc/shadow 删除了 test01 的密码信息。

/etc/group 删除了 test01 的组用户的信息。

/etc/gshadow:删除了组用户的密码信息。

/home/ 目录删除 test01 的家目录。/var/spool/mail/ 目录删除了 test01 的邮箱文件。

综合上述,userdel -r 删除一个用户会把相关路径下对应的文件 和 目录都删除掉。

tips:如果 userdel 删除一个用户并没有加 -r 选项。用户的 /home/ username 目录 和 /var/spool/mail/usename 文件不会删除。并且,想创建同名的用户也不能创建。

创建 test02 用户进行测试。同样的,创建完 test02 用户后,相应的路径都会产生对应的文件 和目录。

userdel test02 删除 test02 用户(没有加上 -r 选项)。

/etc/passwd 删除了 test02 的账户信息。

/etc/shadow 删除了 test02 的密码信息。

/etc/group 删除了 test02 的组用户的信息。

/etc/gshadow:删除了 test02 的组用户的密码信息。

/home/ 目录还存在 test02 的家目录。/var/spool/mail/ 目录还存在 test02 的邮箱文件。

综合上述,userdel 删除一个用户。不会删除该用户的家目录 和 邮箱文件。

在这个情况下,再次创建同名的用户(test02)将会提示失败。这里提供了两个重要信息:

useradd: warning: the home directory already exists:home 目录已经存在。

Creating mailbox file: File exists:邮件文件已经存在。

通过系统提示已知是/home/ 和 /var/spool/mail/ 存在旧的 test02 文件和目录而导致创建新的test02 用户失败。因此我们要把旧的 test02 就的文件 和 目录删除。

红色下划线:find / -name test02,从根目录开始搜索名为 test02 的文件和目录。得出具体的存放路径。

黄色框:删除路径下的文件 和 目录。

蓝色下划线:重新创建 test02 用户成功。

令:

userdel

功能说明:删除用户帐号。

语法:userdel

[-r][用户帐号]

补充说明:userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。

参数:

-f

 删除用户登入目录以及目录中所有文件。

userdel很简单,只有一个参数可选

-r

如果加参数-r

,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除比如我们现在有个用户jb51,其家目录位于/var目录中,现在我们来删除这个用户

userdel

jb51

注:删除用户jb51,但不删除其家目录及文件

userdel

-r

jb51

注:删除用户jb51,其家目录及文件一并删除

警告:

请不要轻易用-r参数他会删除用户的同时删除用户所有的文件和目录,切记如果用户目录下有重要的文件,在删除前请备份

其实也有最简单的办法,但这种办法有点不安全,也就是直接在/etc/passwd中删除您想要删除用户的记录但最好不要这样做,/etc/passwd

是极为重要的文件,可能您一不小心会操作失误

其相似命令groupdel

是用来删除用户组的

语法格式:groupdel

用户组

groupdel

admin

假如删除的时候忘记带r参数

以后想删除这个用户的文件

可以用下面这条命令

find

/

--nouser

-exec

rm

-

rf

{}

删除所有

用户不存在而遗留的文件(因为用户已被删除,其文件的拥有者为其UID,参数nouser用于删除此类文件)

会创建用户,并同时创建和用户同名的组;邮件文件;家目录(默认存放在/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


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/128.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-01-28
下一篇2023-01-28

发表评论

登录后才能评论

评论列表(0条)

    保存