目录
Linux用户管理--用户的添加
Linux用户管理--用户的删除
Linux用户管理--用户的修改
Linux用户管理--用户密码的设置和修改
Linux用户组管理--用户组的添加
Linux用户组管理--用户组的删除
Linux用户组管理--用户组的修改
Linux用户组管理--用户在所属的用户组之间切换
本实验需在root账户下开展。
Linux用户管理--用户的添加
语法:
useradd [-cdgGsu] 用户名
选项与参数:
-
-c 添加备注文字,将添加到passwd的备注栏位
-
-d 指定用户主目录,若该目录不存在,可以使用-m创建
-
-g 指定用户所属的用户组
-
-G 指定用户所属的附加组
-
-s 指定用户登录后使用的Shell
-
-u 指定用户的用户号
示例:
添加用户sam,并指定家目录为/home/sam
root@db2e7b5ec045:~/Desktop# useradd -d /home/sam -m sam root@db2e7b5ec045:~/Desktop# su sam sam@db2e7b5ec045:/headless/Desktop$ cd ~ sam@db2e7b5ec045:~$ pwd /home/sam sam@cg:~$ exit exit root@cg:~/Desktop#
useradd添加用户时,默认会为用户创建一个与用户同名的用户组。
-g 选项表示不为用户创建新组, 而使用 -g 后的指定用户组。
-G 后面跟一个用户组列表,使用户属于指定的多个用户组。
root@cg:~/Desktop# groupadd hadoop1
root@cg:~/Desktop# groupadd hadoop2
root@cg:~/Desktop# groupadd hadoop3
root@cg:~/Desktop# useradd -s /bin/bash -g hadoop1 -G hadoop2,hadoop3 tom
root@cg:~/Desktop# groups tom
tom : hadoop1 hadoop2 hadoop3
首先使用groupadd 创建了hadoop1、hadoop2、hadoop3三个组。然后,添加tom用户,将tom添加到这三个组中。
groups命令可查看某个用户属于哪些组。
Linux用户管理--用户的删除
语法:
userdel -r 用户名
选项与参数:
-
-r 将用户的主目录一并删除
此命令将删除该用户在系统文件中的记录,同时删除用户主目录。
示例:
root@cg:~/Desktop# useradd -s /bin/bash -d /home/lucy -m lucy
root@cg:~/Desktop# ls -l /home
total 8
drwxr-xr-x 2 lucy lucy 4096 Feb 17 12:17 lucy
drwxr-xr-x 2 sam sam 4096 Feb 17 12:10 sam
root@cg:~/Desktop# userdel lucy
root@cg:~/Desktop# userdel -r sam
userdel: sam mail spool (/var/mail/sam) not found
root@cg:~/Desktop# ls -l /home
total 4
drwxr-xr-x 2 1002 1004 4096 Feb 17 12:17 lucy
root@cg:~/Desktop#
Linux用户管理--用户的修改
修改用户的一些属性,如用户号、主目录、用户组、登录Shell等。
什么是登录shell?
一般Linux默认的用户shell都是bash ,也就是说你可以登录进去敲命令。
非登陆shell ,经典的 /bin/nologin 就是一个非登陆shell,也就是说如果一个用户默认的shell是它的话,这个用户即使登录进Linux也不无法使用Linux。
语法:
usermod [-cdgGsu] 用户名
选项与参数:
-
-l 用于重命名该用户 其余参数与useradd命令基本类似
示例:
root@cg:~/Desktop# useradd -s /bin/bash -d /home/test -g hadoop1 test root@cg:~/Desktop# id test uid=1002(test) gid=1001(hadoop1) groups=1001(hadoop1) root@cg:~/Desktop# cat /etc/passwd | grep test test:x:1002:1001::/home/test:/bin/bash root@cg:~/Desktop# mkdir /home/test_new root@cg:~/Desktop# usermod -s /bin/ksh -d /home/test_new -g hadoop2 test root@cg:~/Desktop# id test uid=1002(test) gid=1002(hadoop2) groups=1002(hadoop2) root@cg:~/Desktop# cat /etc/passwd | grep test test:x:1002:1002::/home/test_new:/bin/ksh root@cg:~/Desktop#
可以看到,使用usermod对test用户的默认shell、家目录、所归属的组都做了修改。
注意:/etc/passwd文件中存储了每个用户的基本信息。
Linux用户管理--用户密码的设置和修改
新用户被创建时没有密码,但是被系统锁定,不能使用,必须设置口令才能使用。
语法:
passwd [-ludf] 用户名
选项与参数:
-
-l 锁定用户
-
-u 解锁用户
-
-d 取消密码设置
示例:
创建新用户sam
root@cg:~/Desktop# useradd -d /home/sam -m sam root@cg:~/Desktop#
在root用户下可以设置其他用户的密码,如给sam用户设置为sam123456
root@cg:~/Desktop# passwd sam Enter new UNIX password: # 输入密码是是黑屏,不显示的 Retype new UNIX password: passwd: password updated successfully root@cg:~/Desktop#
切换到tom用户,使用tom切换到sam账户,输入密码:sam123456登录。
su 用户名 :切换用户
root@cg:~/Desktop# su tom
tom@cg:/headless/Desktop$ su sam
Password:
sam@cg:/headless/Desktop$
sam用户可修改自己的密码,将密码修改为helloworld。
用户修改自己的密码前需要先输入当前的密码:
sam@cg:/headless/Desktop$ passwd
Changing password for sam.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
sam@cg:/headless/Desktop$
连续输入两次exit命令切换回root用户,再将sam用户密码置为空, 置空后,无法登录。
sam@cg:/headless/Desktop$ exit exit tom@cg:/headless/Desktop$ exit exit root@cg:~/Desktop# passwd -d sam passwd: password expiry information changed. root@cg:~/Desktop# su tom tom@cg:/headless/Desktop$ su sam Password: su: Authentication failure tom@cg:/headless/Desktop$
重新为sam设置密码为:sam123456
root@cg:~/Desktop# passwd -u sam
passwd: unlocking the password would result in a passwordless account.
You should set a password with usermod -p to unlock the password of this account.
root@cg:~/Desktop# passwd sam
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@cg:~/Desktop# su tom
tom@cg:/headless/Desktop$ su sam
Password:
sam@cg:/headless/Desktop$
加 -l 可锁定某一用户,使其无法登录,使用 -l 锁定 sam
sam@cg:/headless/Desktop$ exit exit tom@cg:/headless/Desktop$ exit exit root@cg:~/Desktop# passwd -l sam passwd: password expiry information changed. root@cg:~/Desktop# su tom tom@cg:/headless/Desktop$ su sam Password: su: Authentication failure tom@cg:/headless/Desktop$
使用 -u 可对用户解锁,
tom@cg:/headless/Desktop$ exit exit root@cg:~/Desktop# passwd -u sam passwd: password expiry information changed. root@cg:~/Desktop# su tom tom@cg:/headless/Desktop$ su sam Password: sam@cg:/headless/Desktop$
Linux用户组管理--用户组的添加
语法:
groupadd [-go] 用户组名
选项与参数:
-
-g 指定新用户组的标识号
-
-o 使新用户组标示号可以与旧用户组的相同
示例:$ groupadd group1
$ groupadd -g 101 group2
Linux用户组管理--用户组的删除
cd是Change Directory的缩写,这是用来变换工作目录的命令。
语法:
groupdel 用户组名
示例:$ groupdel group1
Linux用户组管理--用户组的修改
语法:
groupmod [-gon] 目录名称
选项与参数:
-
-g 为用户组指定新的标识号。
-
-o 与-g选项同时使用,用户组的新标示号可以与系统已有用户组的标示号重复。
-
-n 修改用户组的名字
示例:$ groupmod -g 102 group2
$ groupmod -g 10000 -n group3 group2
Linux用户组管理--用户在所属的用户组之间切换
用户在登录之后,如果其他用户组中包含该用户,可使用newgrp命令切换到其他用户组,以获得其他用户组的权限
语法:
newgrp 其他用户组
- 实验任务--任务一
创建用户组homeworkgroup,并创建用户homeworkuser,使得该用户属于这个用户组(30分)。
- 实验任务--任务二
分别修改homeworkuser的用户名为newuser,主目录为/home/anotherhome,用户组为developer(先创建);并修改用户组homeworkgroup标示号为9000(50分)。
- 实验任务--任务三
删除任务一中创建的用户和用户组(20分)。
!!!求助啊,哪位大佬任务二会呀,我试了好多次都不对。呜呜呜~