目录
一、Linux系统的了解
Linux是一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响,例如某台linux服务器上有4个用户,分别是root、www、ftp和mysql,在同一时间内,root用户可能在查看系统日志,管理维护系统,www用户可能在修改自己的网页程序,ftp用户可能在上传软件到服务器,mysql用户可能在执行自己的SQL查询,每个用户互不干扰,有条不紊的进行着自己的工作,而每个用户之间不能越权访问,比如www用户不能执行mysql用户的SQL查询操作,ftp用户也不能修改www用户的网页程序,因此可知,不同用户具有不同的权限,每个用户是在权限允许的范围内完成不同的任务,linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。
二、Linux用户账号管理
1、用户与用户组文件
在Linux系统当中,默认情况下所有用户信息保存在/etc/passwd文件内(包括root用户),用户密码信息保存在/etc/shadow文件内;所有用户组信息保存在/etc/group文件内,用户组密码信息保存在/etc/gshadow文件内。这四个文件非常重要,不要轻易做变动。
文件 | 作用 |
/etc/passwd | 用户账户信息 |
/etc/shadow | 账户密码信息 |
//etc/group | 组账户信息 |
/etc/gshadow | 组账户密码信息 |
/etc/login.defs | 设置用户账号限制的文件,但配置对root用户无效 |
2.用户账号管理
- 增、删、改
- 更改用户所属用户组
- 管理用户的口令
- 增、删、改用户组
(二)用户操作
以root用户登录虚拟机
1、切换用户
由root用户切换到普通用户,无须输入密码,但是由普通用户切换到root用户或其它用户,就需要输入密码。
(1)语法格式
su <用户名>
(2)切换到普通用户
我们在安装CentOS时,创建普通用户 - howard
执行命令:su howard,切换到howard普通用户
现在就是howard普通用户操作环境了,提示符由#变成$符号
(3)切换到root用户
现在有两种方式切换到root用户,一个是执行exit命令,一个是执行su root
执行命令:su root,需要输入密码
现在的情况是root ⟹ \Longrightarrow⟹ howard ⟹ \Longrightarrow⟹ root,因此我们可以执行两次exit命令,返回到最开始的root用户环境。
(4)查看环境变量
执行命令:env,查看环境变量
切换到howard普通用户,再查看环境变量
退出howard用户
2、查看用户
(1)查看全部用户
执行命令:cat /etc/passwd
/etc/passwd文件是Linux中的重要系统文件之一,主要作用是存储系统用户的信息。文件中的每一行表示一个用户信息,有多少行就表示多少个用户信息。仔细观察其中的一行,可以清晰地看出,各内容之间通过“:”号划分成了多个字段,共7部分,这7部分分别定义了用户的不同属性。
以passwd文件中howard一行为例介绍各个字段作用
howard :x :1000 :1000 :howard :/home/howard :/bin/bash
用户名称 :用户密码 :用户UID :用户组GID :用户说明 :用户家目录 :shell解释器
(2)系统内置用户与新增用户
用户id在1000以前的都是系统内置用户,包括不能登录的伪用户(/sbin/nologin)。
root用户的用户id是0,bin用户的用户id是1,daemon用户的用户id是2……
执行命令:cat /etc/passwd | head -3
说明:|是管道命令,加上head -3,表示显示前3条记录
新增用户的id必然大于或等于1000
howard用户的用户id是1000,不是系统内置用户,而是新增用户
说明:|是管道命令,加上tail -3,表示显示末尾3条记录
(3)查看不能登录的伪用户
执行命令:cat /etc/passwd | grep nologin
|是 管道命令,grep是抓取命令 (可使用通配符*),合在一起就是抓取前一个命令的结果中满足条件的信息。
(4)查看指定某个用户信息
执行命令:cat /etc/passwd | grep howard
3、添加用户
(1)语法格式
useradd [选项] 用户名
(2)选项说明
参数 说明
-g 主组(group)
-G 附加组(Group)
-d 主目录(directory)
-s 指定用户登录后使用的shell,默认值是/bin/bash
-c 注释(comment)
-u 用户ID(user)
-p 密码(password)
(3)注意事项
添加用户,不设置主组,会默认创建同名的主组。
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件/etc/shadow,/etc/group等。
(4)案例演示
任务:创建用户mike
创建用户mike,主目录为/home/mike,用户id为1010,密码为12345,注释my workmate
执行命令:useradd -d /home/mike -u 1010 -p 12345 -c 'my workmate' mike
在四个文件中查看刚才创建的新用户信息
查看mike用户的主目录
4、修改用户
创建用户帐户后,在一些需要更改现有用户属性的场景中,例如更改用户的主目录、登录名、登录shell、密码到期日期等,在这种情况下使用usermod命令。
(1)语法格式
usermod [选项] 用户名
说明:mod是单词modify的前三个字母
(2)选项说明
参数 说明
-a –append ##把用户追加到某些组中,仅与-G选项一起使用
-c –comment ##修改/etc/passwd文件第五段comment
-d –home ##修改用户的家目录通常和-m选项一起使用
-e –expiredate ##指定用户帐号禁用的日期,格式YY-MM-DD
-f –inactive ##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
-g –gid ##修改用户的gid,改组一定存在
-G –groups ##把用户追加到某些组中,仅与-a选项一起使用
-l –login ##修改用户的登录名称
-L –lock ##锁定用户的密码
-m –move-home ##修改用户的家目录通常和-d选项一起使用
-s –shell ##修改用户的shell
-u –uid ##修改用户的uid,该uid必须唯一
-U –unlock ##解锁用户的密码
(3)案例演示
任务:修改用户mike
修改用户mike,主目录改为/home/dear-mike,密码改为903213,注释改为my friend
执行命令:usermod -m -d /home/dear-mike -p 903213 -c 'my friend' mike (注意一定要加-m,否则主目录名不会被修改)
在/etc/passwd和etc/shadow文件里查看更改后的用户信息
可以看到,mike用户的主目录、注释和密码都被修改了。
查看mike用户的主目录
5、删除用户
(1)语法格式
userdel [选项] 用户名
说明:del是单词delete的前三个字母
(2)选项说明
选项 说明
-f (forcible) 强制删除用户,即使用户当前已登录
-r (recursive) 删除用户的同时,删除与用户相关的所有文件
(3)案例演示
任务:强制彻底删除用户mike
执行命令:userdel -rf mike
查看是否还有mike用户
可以看到,四个文件里都没有mike的踪迹,该用户被彻底删除了。
再次执行删除mike的命令,会提示用户“mike”不存在。
因为是彻底删除,mike用户的主目录也被删除掉了的,/home目录里没有dear-mike目录