摘要
Linux操作系统是多用户、多任务系统——允许多个用户同时登陆Linux系统并同时启动多个任务。用户账号和用户组是进行身份鉴别和权限控制的关键。
多用户系统
动态的Linux系统(多用户运行级别)允许多个已经注册的用户同时登录并使用计算机。 登陆方式:图形界面方式和字符界面方式,每种方式都有两种模式。见下图: 相较而言,字符界面可以完成全部功能且效率高,它的默认虚拟终端数有6个。图形界面可完成部分功能,默认虚拟终端数1个。Linux系统默认提供6个登陆屏幕(Ctrl+Shift+Fn进行切换),F1为图形界面,F2~F6为黑白字符界面。
用户
用户:可以理解为账号。使用Linux的用户,信息必须实现在Linux中登记。 用户分为三类:
- root用户的权力没有限制,UID和GID都是0 。超级用户的作用是管理系统,例如创建用户、给硬盘分区、配置网络。
- 系统用户的权限受到限制,系统用户在安装Linux或系统软件时自动创建,UID小于1000,系统用户不能登录。
- 普通用户由root用户创建并分配给Linux系统的使用者,权限有限制,UID一般大于等于1000.
登记信息如下所示: 登陆Shell:常用的登录Shell程序有Bash、tcsh、dash等,默认Bash,最为流行。还有一些特殊的Shell,如nologin、false,两个都执行立即退出系统。另外,用户编写的应用程序也可以作为登陆shell。 用户信息主要保存于文件 /etc/passwd 中,加密后的密码保存在 /etc/shadow 。 /etc/passwd 每一行对应一个用户,格式如下:
用户名:密码:UID:GID:备注:家目录:登陆Shell
liu:$6$87wjhhWS$j3fhTh_sQW:1000:500::/home/liu:/bin/bash
#密码的位置表示的为加密后的密文。此种加密算法不可逆推。 /etc/shadow每一行也对应一个用户,格式如下:
> 账号:密码:最后一次修改密码的日期:密码有效期最少天数:密码有效期最多天数:密码修改警告期:密码禁用期:账号过期日期:保留字段
#上一次更改密码的日期:具体表示为从1970年1月1日以来的天数 #密码有效期最少天数、最多天数,为0或为空都是没有限制。如果后者小于前者,那么用户不能修改密码。 #在密码禁用期用户上线时会被要求强行修改密码,过了禁用期未修改密码,账户将被冻结,解冻后才能正常使用。
这些参数的关系表示为下图: 例子如图所示:
组
组群概念如图所示: 登记一个组群需要三个信息:组群名、组群ID和改组群的成员用户。这些信息都保存在/etc/group中,每一行对应一个组群(组群名必须唯一,组号允许不唯一),格式如下:
组群名:密码:组号:组群用户成员
密码位置是一个x,加密后的密码放在/etc/gshadow文件中,对于组群的密码,实际意义不大。
用户与组管理
用户和组的管理包括创建、删除、修改属性、修改密码等。所有操作都需要root权限。采用命令方式时,Linux的命令用法格式:
<命令> <选项> <目标>
文件/etc/login.defs定义了组群和用户的默认参数,在创建时,若没有给出相应参数,就取默认值。利用 cat或tail或more /etc/login.defs 查看属性默认值吧。 图形界面上,可以采用文本编辑器浏览此文件内容。
用户管理
创建用户(useradd),以下一些示例:
useradd -m zsan
useradd -u 1005 -d /home/lisihome -g sales1 -s /bin/bash lisi
<参数> <设置对应值>
-u UID
-d 家目录
-g 主要组群
-G 附加组群
-s 登陆Shell
-e 用户有效日期(写年月日格式)
useradd -r -s /bin/false ldap
删除用户(userdel):只能删除已经存在的用户
userdel zsan1
userdel -r zsan
userdel -f -r zsan
修改用户属性(usermod)
usermod -l zsan2 zsan1
usermod -d /opt/zsan -s /bin/tcsh -g grade1 -G class2 -a -u 1020 -m zsan
用户密码管理(passwd)
passwd -l zsan
passwd -u zsan
passwd zsan
passwd -d zsan
passwd -n 10 -x 20 -w 3 -i 5 zsan
注意:root用户修改口令前不验证旧的口令,它不仅能修改自己的口令,还能强迫设置其他用户的口令。但是,超级用户无法读取得知其他用户的口令,这说明,普通用户忘记口令是,无法找回但可以请求root用户强设新口令。root用户的密码请小心修改。
id zsan
组管理
groupadd [-g GID] class1
groupadd -g 0 -o administrators
groupdel class1
groupmod -g 1650 -n class2 class1
cat /etc/group
用户登录过程
- 用户登陆成功后,自动执行Shell程序,此时Shell进程显示命令提示符:
“#”(超级用户命令符) “$” (普通用户) 注意操作权限,以免造成损失不可恢复。 - 用户输入exit才是彻底退出系统,不再占用系统内存。
- 若将代码写入一个以.sh为扩展名的文件并放于
/etc/profile. d 目录下,可以使所有用户登陆时都会执行这段代码。若指定用户执行,则需放入该用户家目录的~/.bash_profile 中。
用户变量设置
用户工作环境:登陆系统时,自动配置好。由一系列环境变量定义。 用户环境变量:命名同样是由大小写字母、下划线、数字组成,以字母开头。不建议用小写字母。若要含空格,则需要用引号括起来。
查看环境变量用命令env 或者echo $<指定环境变量名 >; (注意不带尖括号,$XXX表示引用变量XXX的值) 修改环境变量:export <变量名> = <值> ; 删除环境变量:unset <环境变量名>
另: Shell变量:每个Shell程序都拥有自己的一套Shell变量,使用命令set 定义变量,unset 删除变量。 注意:export和set命令定义的变量都是临时性的,用户注销和重启后都会消失。若要保持永久性,需要将命令加入到~/bash_profile 文件的末尾(特定用户),或者/etc/profile. d/alls.sh 文件中(全部用户)
用户切换
用户登陆后可以切换到另一个用户,普通用户需要知道被切换用户的密码,root用户不需要密码。
- sudo 命令
sudo -s
sudo poweroff
sudo -u moodisk ls /home/moodisk
注: 只有sudo组群(Ubantu) 和 wheel组群 (RedHat) 的成员才能使用该命令 2. su 命令
su -root
su moodick
记忆检查
- 写出命令序列:
创建用户wang,家目录为/var/home/wang,登陆shell是/bin/bash,归属组群为mail,同时附加组群users和fuse的成员,初始密码为1234567,并在用户首次登陆时提示修改密码,要求密码每隔90天修改一次密码。 - 解释:lisa:x:402:1001:BlackPink:/home/lisanome:bin/bash
|