ctrl+alt+delete?
正确删除用户
若使用userdel 用户名 命令删除该用户时,并不能删除该用户的所有信息,只是删除了/etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow四个文件里的该账户和组的信息。默认情况下创建一个用户账号,会创建一个家目录和一个用户邮箱(在/var/spool/mail目录以用户名命名)
userdel -r 用户名
find / -name 用户名
正确创建用户
adduser username
passwd username
useradd是一个相对复杂一些的命令,而且它的自由度更高。如果只是运行useradd+username的话,它会创建一个三无用户,即:无用户家目录,无指定shell版本,无密码。
为了顺利创建一个用户,我们还需通过一些选项来完善它的参数。useradd命令常用的选项如下:
-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
-d<登入目录>:指定用户登入时的启始目录;
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;
-G<群组>:指定用户所属的附加群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s:指定用户登入后所使用的shell;
-u:指定用户id。
正确修改用户
一是更改用户名的条件。这里更改的用户不能是当前正在进行的进程,也就是说如果只创建了一个用户,并不能用下述代码解决。要更改的用户设置,必须是不在运行进程中的用户信息。
二是更改用户信息的方式。在更改时需要同时把根目录的信息更改掉,否则更改的只是系统表面展示的名字,真正底层存储的依然是旧的用户名。
手动修改
切换用户到root
sudo su -
修改 /etc/passwd 文件中的用户名、用户组和主目录部分
修改 /etc/group 和 /etc/gshadow 文件中的组名
修改 /etc/shadow 文件中的用户名
修改 /home/oldname 为/home/newhome
修改 /etc/sudoers 文件, 添加 root 权限
usermod命令修改
切换用户到root
sudo su -
usermod -l newname oldname
此命令相当于将 /etc/passwd 和 /etc/shadow 中用户名从 oldname 修改为 newname 。
usermod -c newname newname
此命令相当于将 /etc/passwd 下的注解栏修改为 newname。
groupmod -n newname oldname
此命令相当于修改 /etc/group 和 /etc/gshadow 中的组名为 newname。
usermod -md /home/newname newname
此命令相当于将 /etc/passwd 中的目录栏修改为 /home/newname ,
还有就是将原来的家目录修改为新用户家目录。
修改用户名
我们使用 usermod 来修改用户名。其语法为,
$ usermod -l new_username old_username
举个例子,假设我们有一个名叫 dan 的用户想要重命名为 susan,
那么在终端下执行下面命令:
$ sudo usermod -l susan dan
这只会更改用户名,而其他的东西,比如用户组,家目录,UID 等都保持不变。
注意:- 你需要从要改名的帐号中登出并杀掉该用户的所有进程,要杀掉该
用户的所有进程可以执行下面命令,
$ sudo pkill -u dan
$ sudo pkill -9 -u dan
修改家目录
要同时更改家目录,我们需要在执行 usermod 命令的同时加上 -d 选项,
$ sudo usermod -d /home/susan -m susan
更改用户 UID
执行下面命令修改用户 UID,
$ sudo usermod -u 2000 susan
这里 2000 就是用户的新 UID。
修改用户组名
要把用户组名从 dan 修改为 susan,我们需要使用 groupmod 命令。
使用下面命令来修改用户组名,
$ groupmod -n susan dan
做完修改后,可以使用 id 命令来检查,
$ id susan